0.SiON 概要
SiONをWonderflにライブラリとして登録していただいて以来,様々な方に試していただき本当にありがとうございます(Wonderf以前から試して貰ってる超ヘビー級ギークもいますが).
折角,Wonderflというすばらしい試用環境ができたのに,現状spark project wikiのしょっぼいドキュメントしか無く手探りで試して頂いている状況なので,ブログでちょこちょこと推敲中の解説エントリを書いていこうかなと思います.最終的にはどこか(多分SparkProject)にまとまった文章として置くつもりでいます.以下,予定タイトルですが随時変更していきます.また,このエントリをインデックスとして利用する予定です.
0. SiON 概要
1. SiON の主なクラス
2. SiON で音を鳴らす
3. SiON と DisplayObject の連携
4. 音と映像とインターフェイスの連携
5. SiON エフェクタ
6. SiON で Sound Class の操作/再生
7. Arpeggiator で演奏
8. inside SiON
SiON 概要
SiON(サイオン)は ActionScript3/Flash10用ソフトウェアシンセサイザーSiOPM を中核とした統合サウンドライブラリです.
mp3データを用意しなくても様々な音を簡単に演奏する事ができ,音楽と DisplayObject の連携や,動的な音楽生成が,シンプルに実装できます.もちろんmp3データにも対応しており,SoundクラスをPCM音源波形として取り込む事で内蔵音源と連動し,スライシング/ループ再生,ピッチ/エンベープ/モジュレーション/フィルタ操作やエフェクタによる加工,mp3自体を1つの音色とした演奏などが可能です.
また,楽譜や音源の設定は Music Macro Language (MML) によって記述する事ができるため,非常に軽量なテキストデータによって音楽や効果音を表現できます.
(一応 SiOPM と SiON は別物ですが,製作者本人もソフトウェアシンセを指して SiON と呼んだりしてるので SiOPM の名前は忘れて下さい.読めないし.以降"SiON の音源部"みたいに表現します.)
SiON のエンジンは大分すると3つのユニットに分かれており,これらが連携して最終的な出力を合成します.それぞれ SiONDriver クラスのプロパティとして提供されています.
音源仕様
YAMAHA 製 FM 音源チップ YM2151(OPM) エミュレータを ActionScript3 で実装し,様々な拡張を施しています.現バージョンの SiON は大分すると4種類の音源を内蔵しています.
FM音源チップのエミュレータ(OPM/OPNA/OPL3/OPX/MA3...).
PCで実績のあるエミュレータ MAME, fmgen, x68sound.dll のソースを元に実装しており,OPM,OPNA,OPL3,OPX,MA3 はチップと同じパラメータを与えると実機に近い出力を再現できます.DX7についてはパラメータ互換性は無くエンベロープなど完全再現はできませんが,全32アルゴリズムと多段フィードバックは表現できるように拡張されています(DX7は6オペなので2チャンネル使用).また TSS のように各チャンネルの出力をFM接続する事も可能です.
PSG/波形メモリ音源チップのシミュレータ(SN76489/2A03/SCC...).
FM音源エミュレータに独自拡張を施し PSG(AY-3-8910, DCSG, 2A03, SSG 等)や波形メモリ音源(SCC, C15, GameBoy, PCEngine等)のシミュレーションを行います.実装にあたっては MAME, VirturaNES のソースを参考にしています.基本的にFM音源ベースなので,出力にADSRエンベロープ等を掛ける事ができます.また,エンベロープテーブルを使う事でより実機に近い音を再現する事も可能です.
撥弦モデル物理音源
Karplus strong アルゴリズムに基づいたギター物理音源に独自拡張を施しています.FM音源出力やmp3ファイルを Plunk noize として用いる事が可能で,より柔軟な音作りが行えます.