keim http://www.yomogi.sakura.ne.jp/~si/index.html

Japanese stray game creator. blog; http://keim-at-si.blogspot.com/ exp.; http://wonderfl.net/user/keim_at_Si/codes

TETRIS on the beat !

Tetrision

SiON TETRISizer – wonderfl build flash online

This is new demonstration of my AS3 software synthesize ‘SiON’. This work may remind someone of ‘LUMINES’ (of cause this is one of my favorite games). The SiON can bring its feeling to your flash.
In this flash, I also use various libraries, betweenas3, froce55ing, minimalcomps and papervision3d.
I would like to say thank you for all authors of these useful libraries.

Enjoy !

AS3 software synthesizer SiON Development Center in spark project

AS3/Flash10 software synthesizer SiON goes to version 0.6

SiON goes to version 0.60

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.

SiON SoundObject Quartet

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.

SiON SoundObject's Effector connection arrow diagram

SiON SoundObject's Effector connection arrow diagram

The SiON’s SoundObject brings the simple interactive synthesizers to your flash contents. Enjoy it !

ActionScript3/Flash10 software synthesizer SiON released

SiON title

Hello all, I’m kei mesuda aka keim japanese free-game home brewer.

I just release completely new software synthesizer named “SiON” (pronounced as “scion”), so let me introduce my work.

The SiON library works on ActionScript3/Flash10. This provides a simple sound synchronization with DisplayObject and an easy dynamic sound generation. You can generate various sounds without any mp3 files and wave data. The musical sequence is represented as simple text data “Music Macro Language”. It makes your sounding SWF file very very small.

This library’s development center is here in spark project. You can get newest version’s swc file, asdoc and svn link.


- Demonstrations

You can use SiON in Wonderfl and I posted some demonstrations.

Other works using SiON are shown in tag [SiON] in Wonderfl. I plan to post some other works with SiON at wonderfl, please check my page if you want more.

And this is another demonstration for SiON. The MMLTalks is an MML hosting service powered by SiON. Here, you can listen many musics generated only by SiON software synthsizer without any mp3 files and wave data.


- Synthesizer specifications

The SiON software synthesizer is an extention of the sound chip YM2151s emulator. Currently, SiON includes 4 types of sound modules.

    • Extended Emulators of various Frequency Modulation synthesizing sound chips; The emulation code is based on the time-proven emulators, MAME, fmgen and x68sound.dll. And the outputs of various sound chips (OPM,OPNA,OPL3,OPX,MA3) are reproducible by giving same parameters of actual equipments.
      • Simulator of PSG and wave memory sound chips; The SiONs Extended FM synth can simulate various PSG chips (AY-3-8910, DCSG, 2A03, SSG) and wave memory sound chips(SCC, C15, GameBoy).
        • Physical Modeling Guitar synthesizer; SiON also includes Guitar Physical modeling synthesizer based on Karplus strong algorism.
          • PCM sound module; The SiON handles MP3 sound (Sound Class) as a PCM sound modules source wave. This means you can control the pitch of MP3 file by musical sequence.

            The SiON can modify the output from these sound modules by low-pass filter with ADSR envelop, ring modulation, pitch/amplitude modulation.


            - Sequencer specifications

            The SiON uses Music Macro Language (MML) as a musical score data. The MML is a simple powerful language to represent musical sequence. For example, “[ccggaag2 ffeeddc2 | [ggffeed2]]” represents “the ABC song” in MML. The reference manual is here, mml editor here, and you can refer MMLs of various great musics here in MMLTalks (and click rightmost button in song title).


            - Effector specifications

            SiON includes many sound effectors like reverb, chorus, delay, wave shaper, various filters, speaker simulator and so on. These effectors can be control from MML. Please see the discriptions in the MML reference manual.

            Now detail discription is under construction, please check my blog or development center. And if you have any questions or comments, please leave comment on this post or contact me by e-mail (but sorry for my poor English..).

            Sequencer specification.
            SiON uses Music Macro Language (MML) as a musical score data. The MML is a simple powerful language to represent musical sequence. For example, “[ccggaag2 ffeeddc2 | [ggffeed2]]” represents “the ABC song” in MML. Reference manual <a href=”http://mmltalks.appspot.com/document/siopm_mml_ref_05.html”>here</a> and you can try to play mml <a href=”http://mmltalks.appspot.com/labo/mmleditor.html”>here</a>.
            This site <a href=”http://mmltalks.appspot.com/”>MMLTalks</a> is the MML hosting service powered by SiON, you can refer many MMLs to represent grate musics.