AS3/Flash10 software synthesizer SiON goes to version 0.6
Now, the ActionScript software synthesizer “SiON” is updated to version 0.6. You can get the newest version from following link.
SiON Development Center in spark project
SiON version 0.60 ASDoc
In the SiON version 0.6, the interfaces are basically same as previous, but it suggests one new feature “SoundObject”. Here’s the example on wonderfl.
The Arpeggiator, BassSequencer, ChordPad and DrumMachine are the inheritances of SiON SoundObject. The SoundObject brings an feeling of ‘DisplayObject’ to the operations of SiON’s synthesizer.
Let us explore a tidbit of sample’s source code. The concept of SiON SoundObject consists of 4 modules, the SiONDriver, SoundObjects, Synthesizers and Effectors (shown in line 16~54).
The SiONDriver is the centeral processing unit of all SiON’s sound, you have to create one new SiONDriver and call play() method. And you might access some SiONDriver’s properties and methods to set up general settings (BPM, effector and so on) (shown in line 76~83).
driver = new SiONDriver(); (line 65)
...
driver.autoStop = true; // set auto stop after fade out
driver.bpm = 132; // BPM = 132
driver.effector.slot0 = [equaliser]; // The equaliser is applied to slot0 (master effector)
driver.effector.slot1 = [delay]; // The delay effector is applied to slot1 (global effector)
driver.effector.slot2 = [chorus]; // The chorus effector is applied to slot2 (global effector)
driver.addEventListener(SiONTrackEvent.BEAT, _onBeat); // handler for each beat
driver.addEventListener(SiONEvent.STREAM_START, _onStartStream); // handler when streaming starts
driver.addEventListener(SiONEvent.STREAM_STOP, _onStopStream); // handler when streaming stopped
...
driver.play(null, false); (line 193)
The SoundObjects provides a sequence controler. You can control the sounding patterns in real time by properties (following code is from Arpeggiator’s setting line 91~101). In this exapmle, you can feel the SoundObject’s sound controling especially in the Arpeggiator’s large square pad. All SoundObject classes belong to org.si.sound package.
Ar = new Arpeggiator();
Ar.scaleName = "o6Emp"; // scaled in E minor pentatonic on octave 6
Ar.pattern = [0,1,2,3,4,2,3,1]; // basic pattern is "egababg" in MML
Ar.noteLength = 1; // note langth = 16th
Ar.gateTime = 0.2; // gate time = 0.2
Ar.effectors = [autopan]; // apply auto-panning effector to Arpeggiator (local effector)
Ar.volume = 0.3; // dry volume = 0.3
Ar.effectSend1 = Ar.volume * 0.4; // effect send for slot1 = 0.3 * 0.4 = 0.12
Ar.effectSend2 = Ar.volume * 0.5; // effect send for slot2 = 0.3 * 0.4 = 0.15
...
Ar.play(); (line 198)
The Synthesizers provides a voice controler. This class simplifys the SiONVoice’s settings, and supports a real-time voice charactor chagings on a SoundObject. In this example, some components are connected to the synthesizer’s properties (especially in BassSequencer’s envelop controls) and you may feel the voice character changing on it. (following code is from Arpeggiator’s WaveTableSynth line 106~109). All synthesizer classes belong to org.si.sound.synthesizers package.
waveTableSynth = new WaveTableSynth();
waveTableSynth.color = 0x1203acff; // wavecolor value
waveTableSynth.releaseTime = 0.2; // release time
Ar.synthesizer = waveTableSynth; // apply synthesizer
The Effectors represents the sound effector units. You can apply effectors to the SoundObject like filters to the DisplayObject (please refer above code).
One remarkable point on effectors is that there are 3 types of connections, master, global and local effector. The master effector preocesses the final output of all SiON’s sound, the global effector preocesses the effect send pipe and the local effector processes only one SoundObject’s output. The arrow diagram of effector connection is as shown in below figure. All effector classes belong to org.si.sion.effector package.
The SiON’s SoundObject brings the simple interactive synthesizers to your flash contents. Enjoy it !


1 Comment
[...] SiON (AS3 library) | Examples [...]