Sound-Synthesis Unit Reference

Add

Outputs the sum of two inputs.

This unit replicates MUSIC-V's “two-input adder” as described on page 128 of The Technology of Computer Music.

Arguments:

  1. Output

    The sum. The output must be a signal if one or more inputs are contours or signals. Otherwise the output must be a variable.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Input1

    The augend.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Input2

    The addend.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

Add3

Outputs the sum of three inputs.

This unit replicates MUSIC-V's “three-input adder” as described on page 128 of The Technology of Computer Music.

Arguments:

  1. Output

    The sum. The output must be a signal if one or more inputs are contours or signals. Otherwise the output must be a variable.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Input1

    The augend.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Input2

    The first addend.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Input3

    The second addend.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

AllPass

Outputs a looped-back copy of its own output plus the input at the earlier time. The loop-back time (argument #3) is variable, subject to an allocated limit (argument #4).

This unit implements the allpass “filter” given by Victor Lazzarini in “Time-Domain Audio Programming” chapter 6 of The Audio Programming Book p. 494, but enhanced to use the variable delay line described on p. 495.

Arguments:

  1. Output

    The generated signal. The output must be a signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be processed.

    Allowed links: Contour, Instrument Signal, Voice Signal

  3. Loopback Duration

    The loop-back duration in seconds. This argument may be a signal but may never exceed argument #5.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Reverb Duration

    The reverb time in seconds. Lazzarini describes this argument as “the time it takes for [an impulse] to fall to 1/1,000 of its original amplitude (-60 dB).”

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  5. Max Delay Duration

    The maximum delay duration, used to size the sample-history array.

    Allowed links: Constant, System Variable, Parameter, Variable

Assign

Assigns the value(s) of an input to an output.

If you wish to initialize a signal to a constant value, use this unit. (N.B. voice-level signals are automatically initialized to zero.)

Arguments:

  1. Output

    The output. The output must be a signal if the input is a contour or a signal.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Input

    The input.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

Chorus

Processes the input signal (argument #2) through a delay line whose maximum delay duration is specified through argument #6. The delay line has N taps, where N is specified through argument #5. The delay duration associated with each tap varies randomly from zero to the maximum tap duration specified in argument #4. Each instantaneous tap delay is determined by interpolating between successive numbers ranging from zero to the maximum tap duration. The time period from one random selection to its successor is controlled through argument #3. Each tap is processed without gain adjustment, thus the signal output from a chorus unit with 4 taps will have 4 times the magnitude of the input signal.

This unit adapts a unit of similar purpose in Music11. It implements a 1978 design by Blesser and Kates which came to me by way of Dodge and Jerse, p. 305.

Arguments:

  1. Output

    The generated signal. The output must be a signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be processed.

    Allowed links: Contour, Instrument Signal, Voice Signal

  3. Resample Duration

    The time period between random samplings, in seconds.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Max Tap Duration

    Maximum instantaneous time delay for any tap, in seconds. This value should be positive but may never exceed argument #6.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  5. Max Delay Duration

    The maximum delay duration, used to size the sample-history array.

    Allowed links: Constant, System Variable, Parameter, Variable

Comb

Outputs a signal which mixes the input signal (argument #2) with a looped-back copy of itself. The loop-back time (argument #3) is variable, subject to an allocated limit (argument #4).

This unit implements the comb “filter” given by Victor Lazzarini in “Time-Domain Audio Programming” chapter 6 of The Audio Programming Book p. 493, but enhanced to use the variable delay line described on p. 495.

Arguments:

  1. Output

    The generated signal. The output must be a signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be processed.

    Allowed links: Contour, Instrument Signal, Voice Signal

  3. Loopback Duration

    The loop-back duration in seconds. This argument may be a signal but may never exceed argument #5.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Reverb Duration

    The reverb time in seconds. Lazzarini describes this argument as “the time it takes for [an impulse] to fall to 1/1,000 of its original amplitude (-60 dB).”

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  5. Max Delay Duration

    The maximum delay duration, used to size the sample-history array.

    Allowed links: Constant, System Variable, Parameter, Variable

Consume

Does nothing other than satisfy the compiler that an instrument variable or instrument signal has been consumed.

This unit is intended for troubleshooting purposes.

Arguments:

  1. Input

    The input. The input must be a writable conduit scoped within the current instrument..

    Allowed links: Variable, Instrument Signal

Delay

Outputs a signal which delays the input signal (argument #2) by a variable amount of time (argument #3), subject to an allocated limit (argument #4).

This unit implements the variable-delay routine given by Victor Lazzarini in “Time-Domain Audio Programming” chapter 6 of The Audio Programming Book p. 495.

Arguments:

  1. Output

    The delayed signal. The output must be a signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be delayed.

    Allowed links: Contour, Instrument Signal, Voice Signal

  3. Duration

    The delay duration, which may be variable but which may not exceed argument #4.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Max Delay Duration

    The maximum delay duration, used to size the sample-history array.

    Allowed links: Constant, System Variable, Parameter, Variable

Divide

Outputs the quotient of the dividend (argument #2) and divisor (argument #3).

This unit adapts a unit of similar purpose in Music11 except for Music11's imposition of a substitute when divisors near zero. Earlier implementations of the Sound engine also implemented such a feature, but this was identified as a source of signal discontinuities. Better simply to throw a divide-by-zero exception.

Arguments:

  1. Output

    The quotient. The output must be a signal if one or more inputs are contours or signals. Otherwise the output must be a variable.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Dividend

    The dividend (numerator).

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Denominator

    The divisor (denominator).

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

EnvAHDSR

Generates an envelope with linear attack, constant hold, exponential decay, constant sustain, and linear release segments. This envelope is generated in relative values, where zero indicates silence, where unity (1.0) indicates full amplitude, and where the sustain level (argument #6) is a proportion ranging from zero (exclusive) to unity. The resulting relative contour is then used to modulate the amplitude input (argument #3), which may be a signal.

The duration of the attack segment is provided by argument #2. The duration of the hold segment is provided by argument #4. The duration of the decay segment is provided by argument #5. THe duration of the release segment is provided by argument #7. The duration of the sustain segment is calculated by subtracting the other segment durations from the note duration.

During the attack segment, the amplitude normally rises linearly from zero to full amplitude (argument #3). The attack segment is skipped if the current note slurs from a predecessor.

During the hold segment, the amplitude holds at the full attack amplitude (argument #3). The hold segment is skipped if the current note slurs from a predecessor.

During the decay segment, the amplitude falls exponentially from full amplitude to the sustain level. If the current note slurs from a predecessor which did not decay completely to its sustain level, then the current decay segment is adjusted appropriately.

During the sustain segment, the envelope holds constant at the sustain level (argument #.

During the release segment, the envelope normally falls linearly from the sustain level to zero. The release segment is skipped if the current note slurs to a successor.

If the note slurs to a successor, the sustain level continues on through the release segment.

If the note slurs from a predecessor, the envelope level at the beginning of the attack phase is the final level of the preceding note's AHDSR envelope.

Arguments:

  1. Output

    The output control signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Attack Duration

    The duration of the attack segment.

    Allowed links: Constant, System Variable, Parameter, Variable

  3. Amplitude

    The amplitude at the end of the attack segment and the beginning of the decay segment.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Hold Duration

    The duration of the segment which holds full amplitude.

    Allowed links: Constant, System Variable, Parameter, Variable

  5. Decay Duration

    The duration of the segment which decays from full amplitude to the sustain amplitude. May not be shorter than one sample period.

    Allowed links: Constant, System Variable, Parameter, Variable

  6. Sustain Level

    The sustain level, expressed as a proportion between zero (exclusive) and unity (inclusive).

    Allowed links: Constant, System Variable, Parameter, Variable

  7. Release Duration

    The duration of the release segment.

    Allowed links: Constant, System Variable, Parameter, Variable

EnvExp

Generates an envelope with linear attack, constant hold, exponential decay, and linear release segments. This envelope is generated in relative values, where zero indicates silence and unity (1.0) indicates full amplitude. The resulting relative contour is then used to modulate the amplitude (argument #3), which may be a signal.

The attack duration is provided as argument #2, the hold duration is provided as argument #4, and the release duration is provided as argument #5. The duration of the decay segment is calculated by subtracting the other segment durations from the note duration.

During the attack segment, the amplitude normally rises linearly from zero to full amplitude.

During the decay segment, the amplitude falls away exponentially according to the rate provided by argument #4.

During the release segment, the amplitude normally falls linearly from the current amplitude value to zero.

If the note slurs to a successor, the release segment is skipped.

If the note slurs from a predecessor, the attack segment is skipped and the amplitude at the beginning of the decay segment carries over from the preceding note's envelope.

Arguments:

  1. Output

    The output control signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Attack Duration

    The duration of the attack segment.

    Allowed links: Constant, System Variable, Parameter, Variable

  3. Attack Amplitude

    The amplitude sustaining from the end of the attack segment, through the hold segment, to the beginning of the decay segment.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Hold Duration

    The duration of the segment which holds the attack amplitude.

    Allowed links: Constant, System Variable, Parameter, Variable

  5. Decay Rate

    The amplitude range, in decibels, by which the envelope drops away during one second. Guidance for setting this argument may be found here.

    Allowed links: Constant, System Variable, Parameter, Variable

  6. Release Duration

    The duration of the release segment.

    Allowed links: Constant, System Variable, Parameter, Variable

EnvSust

Generates an envelope with linear attack, sustain, and linear release segments. This envelope is generated in relative values, where zero indicates silence and unity (1.0) indicates full amplitude. The resulting relative contour is then used to modulate the amplitude (argument #3), which may be a signal.

This unit replicates MUSIC-V's “envelope generator” as described on pages 130-131 of The Technology of Computer Music.

The duration of the attack segment is provided as argument #2. The duration of the and release segment is provided as argument #4. The duration of the sustain segment is calculated by subtracting the other segment durations from the note duration.

During the attack segment, the amplitude normally rises linearly from zero to full amplitude.

During the sustain segment, the amplitude remains constant, or evolves as indicated by argument #3.

During the release segment, the amplitude normally falls linearly from full amplitude to zero.

If the note slurs to a successor, full amplitude continues on through the release segment.

If the note slurs from a predecessor, the amplitude at the beginning of the attack phase is the final amplitude of the preceding note's envelope.

Arguments:

  1. Output

    The output control signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Attack Duration

    The duration of the attack segment.

    Allowed links: Constant, System Variable, Parameter, Variable

  3. Amplitude

    The amplitude input.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Release Duration

    The duration of the release segment.

    Allowed links: Constant, System Variable, Parameter, Variable

Exp

Raises Euler's number e by the indicated exponent.

Arguments:

  1. Output

    The power obtain by raising Euler's number e to the indicated exponent. The output must be a signal if the power input is a contour or a signal. Otherwise the output must be a variable.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Exponent

    The exponent to be applied to Euler's number e.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

FilterBandPass2B

Band-pass filter (2nd-order Butterworth).

This unit employs the 2nd-order Butterworth band-pass coefficients detailed by Victor Lazzarini in “Time-Domain Audio Processing”, chapter 6 of The Audio Programming Book, page 484.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be filtered.

    Allowed links: Instrument Signal, Voice Signal

  3. Frequency

    The peak-gain frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Bandwidth

    The bandwidth around the peak-gain frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

FilterBandPass2

2nd order band-pass filter.

This unit implements the resonance filter described on page 76 of The Technology of Computer Music.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be filtered.

    Allowed links: Instrument Signal, Voice Signal

  3. Frequency

    The peak-gain frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Bandwidth

    The bandwidth around the peak-gain frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

FilterBandReject2

Band-reject filter (two-zero).

This unit implements the two-zero filter derived by Julius O. Smith III in Two_Zero.html.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be filtered.

    Allowed links: Instrument Signal, Voice Signal

  3. Frequency

    The peak-reject frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Bandwidth

    The bandwidth around the peak-reject frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

FilterBandReject2B

Band-reject filter (2nd-order Butterworth).

This unit is not presently functional.

This unit employs the 2nd-order Butterworth band-reject coefficients detailed by Victor Lazzarini in “Time-Domain Audio Processing”, chapter 6 of The Audio Programming Book, page 484.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be filtered.

    Allowed links: Instrument Signal, Voice Signal

  3. Frequency

    The peak-reject frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Bandwidth

    The bandwidth around the peak-reject frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

FilterHighPass1

High-pass filter (1st-order).

This unit employs the high-pass coefficients of the 1st-order IIR filter described by Victor Lazzarini in “Time-Domain Audio Processing”, chapter 6 of The Audio Programming Book, page 486

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be filtered.

    Allowed links: Instrument Signal, Voice Signal

  3. Frequency

    The low cutoff frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

FilterHighPass2B

High-pass filter (2nd-order Butterworth).

This unit is not presently functional.

This unit employs the 2nd-order Butterworth high-pass coefficients detailed by Victor Lazzarini in “Time-Domain Audio Processing”, chapter 6 of The Audio Programming Book, page 484.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be filtered.

    Allowed links: Instrument Signal, Voice Signal

  3. Frequency

    The low cutoff frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

FilterLowPass1

Low-pass filter (1st-order).

This unit employs the low-pass coefficients of the 1st-order IIR filter described by Victor Lazzarini in “Time-Domain Audio Processing”, chapter 6 of The Audio Programming Book, page 486.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be filtered.

    Allowed links: Instrument Signal, Voice Signal

  3. Frequency

    The high cutoff frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

FilterLowPass2B

Low-pass filter (2nd-order Butterworth).

This unit employs the 2nd-order Butterworth high-pass coefficients detailed by Victor Lazzarini in “Time-Domain Audio Processing”, chapter 6 of The Audio Programming Book, page 484.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be filtered.

    Allowed links: Instrument Signal, Voice Signal

  3. Frequency

    The low cutoff frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

Growth

Generates a control signal that evolves exponentially over a specified duration.

This unit adapts a unit of similar purpose in Music11. For some applications involving exponential control signals, a better solution might be to employ exponential contours.

If the duration is short of the note duration, the value will continue changing at the same rate.

If the the node slurs from a previous note, the goal of the previous note becomes the new note's origin (overriding the input).

Arguments:

  1. Output

    The output control signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Origin

    The starting value. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  3. Duration

    Time in seconds to reach goal. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  4. Goal

    The ending value. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

Growth3

Generates a control signal that evolves exponentially over a specified duration.

This unit adapts a unit of similar purpose in Music11. For some applications involving exponential control signals, a better solution might be to employ exponential contours.

If the duration is short of the note duration, the value will continue changing at the same rate.

If the the node slurs from a previous note, the goal of the previous note becomes the new note's origin (overriding the input).

Arguments:

  1. Output

    The output control signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Origin

    The starting value. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  3. Duration1

    Time in seconds to reach goal1. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  4. Goal1

    The ending value for segment 1. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  5. Duration2

    Time in seconds to reach goal2. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  6. Goal2

    The ending value for segment 2. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  7. Duration3

    Time in seconds to reach goal3. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  8. Goal3

    The ending value for segment 3. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

KarplusStrong

Outputs a signal which mixes the input signal (argument #2) with a looped-back, low-pass filtered copy of itself. The loop-back time (argument #3) is variable, subject to an allocated limit (argument #6).

This unit implements the model described in the Wikipedia article on KarplusÐStrong string synthesis, which interposes a low-pass within a comb filter. Rather than simply averaging consecutive samples as originally suggested, the present implementation exploits two enhancements taken from The Audio Programming Book the variable delay line described starting p. 495, and the 1st-order low-pass filter described starting page 486

Arguments:

  1. Output

    The generated signal. The output must be a signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The signal to be processed. For a plucked string this should be a short noise burst.

    Allowed links: Contour, Instrument Signal, Voice Signal

  3. Loopback Duration

    The loop-back duration in seconds. For string synthesis this argument will generally be calculated by inverting a frequency. The loop-back duration may be a signal; however it may never exceed argument #6.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Decay Rate

    “The time it takes for [an impulse] to fall to 1/1,000 of its original amplitude (-60 dB).”

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  5. Max Delay Duration

    The maximum delay duration, used to size the sample-history array.

    Allowed links: Constant, System Variable, Parameter, Variable

Line

Generates a control signal that evolves linearly over a specified duration.

This unit adapts a unit of similar purpose in Music11. For some applications involving linear control signals, a better solution might be to employ linear contours.

If the duration is short of the note duration, the value will continue changing at the same rate.

If the the node slurs from a previous note, the goal of the previous note becomes the new note's origin (overriding the input).

Arguments:

  1. Output

    The output control signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Origin

    The starting value.

    Allowed links: Constant, System Variable, Parameter, Variable

  3. Duration

    Time in seconds to reach goal. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  4. Goal

    The ending value.

    Allowed links: Constant, System Variable, Parameter, Variable

Line3

Generates a control signal that evolves linearly over three segments.

This unit adapts a unit of similar purpose in Music11. For some applications involving linear control signals, a better solution might be to employ linear contours.

If the final segment duration is short of the note duration, the value will continue changing at the same rate.

If the the node slurs from a previous note, the goal of the previous note becomes the new note's origin (overriding the input).

Arguments:

  1. Output

    The output control signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Origin

    The starting value.

    Allowed links: Constant, System Variable, Parameter, Variable

  3. Duration1

    Time in seconds to reach goal1. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  4. Goal1

    The ending value for segment 1.

    Allowed links: Constant, System Variable, Parameter, Variable

  5. Duration2

    Time in seconds to reach goal2. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  6. Goal2

    The ending value for segment 2.

    Allowed links: Constant, System Variable, Parameter, Variable

  7. Duration3

    Time in seconds to reach goal3. Must be positive.

    Allowed links: Constant, System Variable, Parameter, Variable

  8. Goal3

    The ending value for segment 3.

    Allowed links: Constant, System Variable, Parameter, Variable

LogA

Outputs the exponent necessary to raise the indicated base to the indicated power.

Arguments:

  1. Output

    The exponent to which the base (input #1) must be raised to obtain the power (input #2). The output must be a signal if either input is a contour or a signal. Otherwise the output must be a variable.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Base

    The value which is raised by the exponent (the output) to obtain the power (the other input).

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Power

    The power obtained by raising the base (the other input) to the exponent (the output).

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

LogE

Outputs the exponent necessary to raise Euler's number e to the indicated power.

Arguments:

  1. Output

    The exponent to which Euler's number e must be raised to obtain the indicated power. The output must be a signal if the power input is a contour or a signal. Otherwise the output must be a variable.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Power

    The power obtained by raising Euler's number e to the output of this unit.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

Multiply

Outputs the product of two inputs.

This unit adapts a unit of similar purpose in Music11.

Arguments:

  1. Output

    The product. The output must be a signal if one or more inputs are contours or signals. Otherwise the output must be a variable.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Input1

    The multiplicand.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Input2

    The multiplier.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

Multiply3

Outputs the product of three inputs.

This unit adapts a unit of similar purpose in Music11.

Arguments:

  1. Output

    The product. The output must be a signal if one or more inputs are contours or signals. Otherwise the output must be a variable.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Input1

    The multiplicand.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Input2

    The first multiplier.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Input3

    The second multiplier.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

Noise

Generates a signal by interpolates linearly between random values.

This unit replicates MUSIC-V's “Random Function Generator” as described on pages 128-129 of The Technology of Computer Music.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Amplitude

    The peak signal amplitude.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Frequency

    The frequency by which new random values are selected.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

NoiseB

Generates a signal by interpolates linearly between balanced-bit values.

This unit replicates MUSIC-V's “Random Function Generator” as described on pages 128-129 of The Technology of Computer Music except that a balanced-bit generator is substituted in place of the standard random generator.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Amplitude

    The peak signal amplitude.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Frequency

    The frequency by which new balance-bit values are selected.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

Oscillator

Generates an oscillating waveform.

This unit replicates MUSIC-V's digital oscillator as described on pages 127-128 of The Technology of Computer Music.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Amplitude

    The waveform amplitude.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Frequency

    The waveform frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Waveform

    The waveform identifier.

    Allowed links: Constant, System Variable, Parameter, Variable

Output

Directs an input signal to an output channel.

This unit replicates MUSIC-V's “output unit” as described on pages 126-127 of The Technology of Computer Music.

Arguments:

  1. Signal

    The signal to send to the channel. This input must be a signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Channel

    The channel to which the signal will be sent. For monaural output, this value must always be 0 (which value is returned by the MONO_OUTPUT system variable). For stereo output, the value may be either 0 (which value is returned by the STEREO_LEFT system variable) or 1 (which value is returned by the STEREO_RIGHT system variable).

    Allowed links: Constant, System Variable, Parameter, Variable

Power

Outputs the first input raised to the exponent brought in as the second input.

Arguments:

  1. Output

    The result. The output must be a signal if the inputs is a contour or a signal. Otherwise the output must be a variable.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Input1

    The base.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Input2

    The exponent.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

Read

Imports a sound from an external file.

Arguments:

  1. Output

    The generated signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Amplitude

    The waveform amplitude.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Frequency

    The waveform frequency.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. File Number

    The file identifier.

    Allowed links: Constant, System Variable, Parameter, Variable

  5. Channel

    The channel identifier.

    Allowed links: Constant, System Variable, Parameter, Variable

Rebalance

Adjusts the amplitude if a signal input (argument #2) by a multiplier (argument #3) and a divisor (argument #4).

This unit adapts a unit of similar purpose in Music11 except for Music11's imposition of a substitute when divisors near zero. Earlier implementations of the Sound engine also implemented such a feature, but this was identified as a source of signal discontinuities. Better simply to throw a divide-by-zero exception.

Most typically, this unit will be used to process an original signal (pre-filtering) and its derived consequent (post-filtering). The derived consequent feeds the signal input; the power envelope of the original signal feeds the multiplier input; and the power envelope of the derived consequent feeds the divisor input. Both power envelopes will typically have been extracted using the RMS unit.

Arguments:

  1. Output

    The rebalanced signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The unbalanced signal.

    Allowed links: Instrument Signal, Voice Signal

  3. Multiplier

    The multiplier (numerator).

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  4. Divisor

    The divisor (denominator).

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

RMS

Extracts the power envelope from a signal by the root-mean-square method.

This unit replicates the unit of the same name in Barry Vercoe's Music11 engine. This unit has carried through into Csound, which is Music11's successor. C++ code implementing Csound's version of the RMS unit is provided by John Ffitch in “Understanding an Opcode in Csound”, chapter 10 of The Audio Programming Book, page 591.

Arguments:

  1. Output

    The generated power envelope.

    Allowed links: Instrument Signal, Voice Signal

  2. Input

    The source signal.

    Allowed links: Instrument Signal, Voice Signal

  3. Frequency

    The low-pass frequency.

    Allowed links: Constant, System Variable, Parameter, Variable

    Suggested value: 32 Hz. for pitches higher than cello C (65.41 Hz.). Otherwise, half the fundamental frequency.

  4. Origin

    The initial value.

    Allowed links: Constant, System Variable, Parameter, Variable

    Comments: A sine wave with unit zero-to-peak amplitude produces a result of 0.708. A square wave with unit zero-to-peak amplitude produces a result of 0.836.

Stereo

Splits an input signal between two channels of the wavefile.

This unit replicates MUSIC-V's “stereophonic output box” as described on pages 131-132 of The Technology of Computer Music.

Arguments:

  1. Signal

    The signal to send to channels 0 and 1. This input must be a signal.

    Allowed links: Instrument Signal, Voice Signal

  2. Balance

    The proportion to be sent to channel 0. (1-balance) is sent to channel 1.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

Subtract

Outputs the difference between two inputs.

This unit adapts a unit of similar purpose in Music11.

Arguments:

  1. Output

    The remainder. The output must be a signal if one or more inputs are contours or signals. Otherwise the output must be a variable.

    Allowed links: Variable, Instrument Signal, Voice Signal

  2. Input1

    The minuend.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

  3. Input2

    The subtrahend.

    Allowed links: Constant, System Variable, Parameter, Variable, Contour, Instrument Signal, Voice Signal

© Charles Ames Page created: 2014-02-20 Last updated: 2015-07-12