;; fv-controls.asm - fv10k1 package
;; Defines control GPRs for the fv10k1 package
;;
;; Copyright (C) 2001 Oleg Smirnov <smirnov@astron.nl>
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2 of the License, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program; if not, write to the Free Software
;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
;;
;; $Id: fv-controls.inc,v 1.1 2001/09/28 01:56:20 dbertrand Exp $
; debugging registers
;debug control #0,#0,#1
;debug2 control #0,#0,#1
;debug3 control #0,#0,#1
;debug4 control #0,#0,#1
; This delay is applied to the input before passing it through
; to the output. Note that this is independent of the room reflections
; or reverb delays, and mainly intended to compensate for pathlength
; differential in an environment where the speakers are not equidistant
; from the listening position (i.e. a car!). 1/Vsound is about 3 ms/m.
delay_r control &0,&0,&0.8
delay_l control &0,&0,&0.8
; high-frequency damping for room reflections
refldamp control #0,#0,#1
; delay for start of reverbrations. Note that this control is ignored
; when using input patches with a room reflection engine -- there we use
; a constant revdelay instead.
revdelay control &.002,&0,&1
; gains for "wet" reverbrations
revgain control #0.10,#0,#1
; room size parameter, 0-1. Bigger values produce deeper reverb.
roomsize control #.90,#0,#1
; room dampening 0-1
damp control #.2,#0,#1
; allpass filter feedback -- normally constant at .5
allpassfeed control #.2,#0,#1
; "wet1" level controls the amount of left/right reverb intermixing:
; L = L*(1-wet1) + R*wet1
; R = R*(1-wet1) + L*wet1
; (original Freeverb uses wet1 and wet2, computed from "wet" and "width":
; wet1 = wet*(width+1)/2
; wet2 = wet*(1-width)/2 )
wet1 control #0,#0,#1
; "dry" reverb level:
; output = reverb + input*dry
; Note that this is somewhat different from the "passthru" level, since
; reverb bass/treble [and predelay, if any] are applied to the dry signal,
; but not to the passthru signal
dry control #0,#0,#1
; bass and treble controls for the reverb engine
revbass control #0,#0,#1
revtreble control #0,#0,#1
; set to 1 to skip reverb bass/treble filters
revdefeat control #1,#0,#1
; fractional levels of reflections for F and R speakers
refl_f control #0,#0,#1
refl_r control #0,#0,#1
; additional integer gains for rear reflections
refl_rgain control #0,#0,#1
; fractional levels of reverbs for F and R speakers
reverb_f control #0.8,#0,#1
reverb_r control #0.0,#0,#1
; additional integer gains for rear reverbs
reverb_rgain control #0,#0,#1
; passthru controls (separate for front/rear)
; output = input*passthru + reverbs + reflections
ptf_level control #1,#0,#1
ptr_level control #0,#0,#1
; additional integer gains for rear passthru
ptr_gain control #0,#0,#1
; separate bass/treble controls are available for the rear passthrus
ptr_bass control #0,#0,#1
ptr_treble control #0,#0,#1
ptr_defeat control #0,#0,1
; Max output level meters. Output patches update these GPRs with the
; maximum output level encountered.
maxlev_fr control #1,#0,#1
maxlev_fl control #1,#0,#1
maxlev_rr control #.0,#0,#1
maxlev_rl control #.0,#0,#1
; interval at which level meters are reset. For an interval of 2N samples,
; it should be set to (2^N-1)*$800.
; The DBAC register is ANDed by this value, and if the result is 0,
; the meters are reset. $800 corresponds to 1 sample.
; $0efff00 is 4096 samples
; $0fffE00 is 8192 samples
; $1fffC00 is 16384 samples
; $3fff800 is 32768 samples
; $7fff800 is 65536 samples
level_interval control $1fffC00,$0,$8000000
END