envelope.dsp
to the amplitude of another instrument. You can connect instruments together to mix sounds, such as combining a sawtooth instrument and a sampled sound instrument in a submixer. And you can connect instruments to a mixer so their audio signals are fed to the DAC, a necessary step if the instrument is to be heard at all.
When an output of one instrument is connected to a knob of a second, the second instrument usually acts according to the incoming signal from the first instrument. For example, a slowly oscillating triangle wave generator connected to the frequency knob of a sawtooth generator causes the sawtooth generator to create a sawtooth wave that moves up and down in pitch.
To connect an output of one instrument to an input or knob of a second instrument, use this call:
Err ConnectInstruments( Item SrcIns, char *SrcName, Item DstIns, char *DstName )
SrcIns
, is the item number of the source instrument (the first instrument). The second, *SrcName
, is a pointer to a string containing the name of the source instrument's output used for connection. The third, DstIns
, is the item number of the destination instrument (the second instrument). And the fourth, *DstName
, is a pointer to a string containing the name of the destination instrument's input or knob used for connection.
When setting the parameter values for ConnectInstruments()
,
the names for each of an instrument's outputs, inputs, and knobs are
listed in Instrument Templates, in the 3DO Music and Audio Programmer's Reference.
When ConnectInstruments()
executes, it connects the specified output of the source instrument to the specified input or knob of the destination instrument. If successful, it returns 0. If unsuccessful, it returns a negative value (an error code).
Note that if you connect a source instrument's output to a knob of the destination instrument, that knob is no longer available for tweaking by a task (using TweakKnob()
or StartInstrument()
tag arguments, both described in Playing Instruments) until the source instrument is disconnected.
Disconnecting One Instrument From Another
To disconnect a source instrument's output from a destination instrument's input or knob, use this call:
Err DisconnectInstruments( Item SrcIns, char *SrcName, Item DstIns, char *DstName )
ConnectInstruments()
accepts. They specify an output on the source instrument and an input or knob on the destination instrument.
When it executes, DisconnectInstruments()
breaks the specified connection. It returns 0 if successful, and a negative value (an error code) if unsuccessful.
Once the connection to a knob is broken, the knob is unavailable for tweaking.