online now

We have 113 guests and no members online



master controls

The final output of the system is the master control. The master control controls consist of 3 mixers ( 1 per bank + master ), and global settings. In addition to each individual DCO having an envelope generator, amplitude controls, and built-in moudlations, the bank mixers also have some of these properties. The master mixer also has an amplitude control that can be used as a global volume output for the entire system.

feature function description

bank mixer functions

Each bank mixer has an overall volume setting that can be sepcified via setAmplitude(). In addition to providing volume, it also provides phase; a negative value for this function will invert the phase the output. All DCOs patched into the bank mixer will have this amplitude applied.
amplitude ramp
Each bank mixer can internally sweep amplitude as a specified rate. Amplitude ramping can be useful to set a basis for tremolo as a musical instrument. All DCOs patched into the bank mixer will have this ramping applied.
amplitude target
Amplitude target allows the DCO to linearly transition amplitude from its current value to a target value. The function setAmpTarget() allows a way to avoid instaneous volume changes or the need to ramp up (or down) volume with continous function calls. All DCOs patched into the bank mixer will have this function applied.
Each bank maintains its own ADSR (attack, decay, sustain, release) envelope curve to shape the volume output automatically over time. This envelope is applied to all DCOs patched into the bank.
The ADSR envelope generator is initialized through the use of the trigger() function. Each time trigger() is called, the ADSR begins automating the volume envelope, even if it is already in the process of running the evelope, allowing retriggering.
The ADSR envelope generator decay is triggered through the use of the release() function. The ADSR, once triggered, will stage through its attack and deay stages, and will hold on its sustain stage until the release() method is called, at which point it will process through its release stage and terminate. The release() method can be called at any time after trigger(); if it is called before the sustain stage is reached it will simple being the release stage at that time.
pitch bend
Each mixer bank can set all DCOs that are patched to it ( and have pitch bend enabled ) to perform pitch bending. The rate at which the bend moves from frequency to frequency is specified via the setBendFreq() function.

master functions

master amplitude
Master amplitude controls the final output volume of the system. As with other amplitude settings, this value can be positive or negate to allow complete waveform inversion. This amplitude must be set to something other than zero or no sound will be heard. In addition to this software volume control, the GinSing board also has a hardware volume control located on the edge of the board.
user output
The Soundgin IC has a programmable output that is accessible through a contact pad located on the circuit board. This output (Q) can be turned on or off through the enableUserOutput() function call. The output can be used for a variety of output applications, but is limited to a 40 mA current limit.