NOTE: Although the older path-trajectory subcommands
may be used in this instrument
(path, cpath, param, cparam,
see the
MMOVE
documentation for a description of these), it is intended for this information
to be specified in the "DIST-XPOS" and "ANGLE-YPOS" pfield parameters.
DMOVE
p0 = output start time (seconds) p1 = input start time (seconds) p2 = duration (or endtime if negative) (seconds) p3 = amplitude multiplier (relative multiplier of input signal) p4 = distance (feet) to sound source, or x-coordinate (feet) of sound source p5 = angle to sound source (degrees; 0 degrees is straight in front), or y-coordinate (feet) of sound source p6 = distance between 'mics' (stereo receivers) in the room (feet) NOTE: if p6 is negative, p4/p5 will be interpreted as x- and y- coordinates, otherwise p4/p5 will set polar coordinates for the sound source location p7 = input channel [optional, default is 0] p3 (amplitude) can receive dynamic updates from a table or real-time control source.
p0 = output start time (seconds) p1 = input start time (seconds) p2 = duration (or endtime if negative) (seconds) p3 = amplitude multiplier (relative multiplier of input signal) p3 (amplitude) can receive dynamic updates from a table or real-time control source. NOTE: this associated instrument is required for MPLACE to function
p0 = distance to front wall of room (feet) p1 = distance to right-hand wall of room (feet) p2 = distance to back wall of room (feet) [< 0.0] p3 = distance to left-hand wall of room (feet) [< 0.0] p4 = distance to ceiling of room (feet) p5 = wall absorption factor (0-10; 0 == more 'dead', 10 == more 'live') p6 = reverberation time (seconds) NOTE: this subcommand is required for MPLACE to function
p0 = time interval (seconds) for trajectory updates NOTE: this subcommand is optional for MMOVE to function (the default is the size of the buffers set in rtsetparams)
p0 = microphone angle (degrees, 0 degrees is straight in front) p1 = microphone pattern (0-1; 0 == omnidirectional, 1 == highly directional) NOTE: this subcommand is optional for MPLACE to function (the default is "mikes_off")
no pfields, this defeats the microphone angle and pattern settings for binaural simulation NOTE: this subcommand is optional for MPLACE to function
p0 = minimum distance (feet) p1 = maximum distance (feet) p2 = distance attentuation exponent NOTE: this subcommand is optional for MPLACE to function
p0 = total matrix gain (relative multiplier of input signal) p1-p145 = 12 x 12 matrix amp/feedback coefficients [optional; defaults to internal matrix] NOTE: this subcommand is optional for MPLACE to function
The only semi-tricky thing to know about DMOVE is that the interpretation of the pfield data coming through p4 and p5 ("DIST-XPOS", "ANGLE-YPOS") depends on whether or not p6 ("dist_mikes") is positive or negative. The distance to the mikes (p6) will be interpreted as a positive number in any case, but if it is negative it will cause p4 and p5 to be interpreted as cartesian coordinates on a coordinate plane where the center of the listener is located at [0, 0]. The default interpretation is to use polar coordinates for the sound source information (distance to sound, angle to sound).
When using maketable and other pfield-control parameters be aware that the "nonorm" optional parameter should probably be set, otherwise the data coming through the pfield will be normalized between 0.0 and 1.0 (or -1.0 and 1.0).
The RVB subinstrument needs to be configured with
the appropriate
bus_config
setup. MPLACE/RVB requires stereo output.
Sample Scores
basic use:
rtsetparams(44100, 2, 256) load("DMOVE") bus_config("DMOVE", "in 0", "aux 0-1 out") bus_config("RVB", "aux 0-1 in", "out 0-1") rtinput("mysoundfile.aif") mikes(45, 0.5) dist_front = 100 dist_right = 100 dist_rear = -100 dist_left = -100 height = 100 rvbtime = 3 abs_fac = 1 space(dist_front, dist_right, dist_rear, dist_left, height, abs_fac, rvbtime) insk = 0 outsk = 0 amp = 1 dur = 60 dist_mikes = 2 inchan = 0 xpos = makeconnection("mouse", "x", min=dist_left, max=dist_right, dflt=10, lag=90, "x pos", "feet", 2) ypos = makeconnection("mouse", "y", min=dist_rear, max=dist_front, dflt=10, lag=90, "y pos", "feet", 2) mindist = 10 maxdist = 100 set_attenuation_params(mindist, maxdist, 1.0) threshold(0.0005) DMOVE(outsk, insk, dur, amp, xpos, ypos, -dist_mikes, inchan) RVB(0, 0, dur+rvbtime+0.5, 0.1)