音に関するクラス (*Sound) 群のメモ,その一. MIDI 派閥を除く.嘘言を書いてる場合がある.
- 大半が 'Sound-Synthesis' カテゴリにある. MIDI 系は 'Sound-Scores' カテゴリ. 'Sound-Interface' カテゴリにはモルフ系のクラス群がある. EnvelopeEditorMorph と WaveEditor は佳く使うかも.
- StreamingMP3Sound は 'Movies-Kernel' カテゴリにある.
クラス階層はこんな感じ.
- AbstractSound
- FMSound
- FMBassoonSound
- FMClarinetSound
- UnloadedSound
- M3HMMosnerFMSound
- LoopedSampledSound
- MixedSound *
- PluckedSound
- QueueSound *
- RepeatingSound *
- RestSound
- ReverbSound
- SampledSound
- ScorePlayer
- SequentialSound *
- StreamingMonoSound
- StreamingMP3Sound
- FMSound
他には.
- SoundPlayer: 再生を一手に担当.
- SoundCodec (ADPCMCodec, GSMCodec, MuLawCodec, WaveletCodec)
- Envelope (PitchEnvelope, RandomEnvelope, VolumeEnvelope)
- SoundBuffer: サンプリングの生データ.
- Sonogram, FWT, AIFFFileReader, SunAudioFileWriter, 等のユーティリティ.
- SoundRecorder (SoundInputStream): リアルタイムのサウンド入力.
AbstractSound 以下を三つに分ける.
- 自分自身で音データを持っているもの.
- FMSound とそのサブクラス群: FM 音源系.
- LoopedSampledSound: サンプル・テーブルにピッチ等を与えて作る.
- PluckedSound: 弦に特化した音源.
- RestSound: 音と測りあえるほどの沈黙,無音.高さ,強さは意味がないが,長さは意味がある.
- SampledSound: サンプリング音源系. Squeak 内蔵の効果音はコレ.モノラルの wav. aiff を読み込むと,これのインスタンスが生成される.
- 上の音データ・クラスを入れる器であるもの.器の中身は器自身であってもよい.
- MixedSound: 時間軸に対して横に配置する.
- SequentialSound: 時間軸に対して縦に配置する.
- QueueSound: SequentialSound と同様だが, SharedQueue を使っている.
- RepeatingSound: ループを作る.
- それ以外のもの,未詳のもの,使ったことのないもの.
- ReverbSound: リバーヴ (残響).常にオンのままで使ってる (笑).
- ScorePlayer: MIDI.
- StreamingMonoSound: .au, .aif ファイルの読み込みでしか使ってない.
- StreamingMP3Sound: .mp3 ファイルや動画ファイルの読み込みでしか使ってない.
クラス | メモ |
---|---|
MixedSound | [ <--- soundA ---> ] [ <--- soundB ---> ] [ <--- soundC ---> ] ----------------------------------> 時間 soundA, soundB, soundC が同時に再生される.
|
SequentialSound | [ <--- soundA ---> ][ <--- soundB ---> ][ <--- soundC ---> ] ----------------------------------> 時間 soundA, soundB, soundC が追加した順番で再生される.
|
QueueSound | |
RepeatingSound | [ <--- soundA ---> ] が終了すると頭に戻り,再生開始する.
|
再生と停止.
- aSound play で再生開始 (SoundPlayer playSound: aSound). -> SoundPlayer のクラス変数 ActiveSounds に追加される.
- SoundPlayer pauseSound: aSound で停止. -> SoundPlayer のクラス変数 ActiveSounds から削除される.
- 無限ループ (aRepeatingSound) を SoundPlayer pauseSound: aSound で停止すると,問答無用で停止. iterationCount: n で無限ループを解除すると, n 回ループしたあとループの最後まで行って止まる.その後にSoundPlayer pauseSound: aRepeatingSound で SoundPlayer のクラス変数 ActiveSounds から remove するべき.
- 全サウンド停止は SoundPlayer stopPlayingAll.再生プロセスも停止したいときは SoundPlayer stopPlayerProcess.捕まえ損なったサウンドやプロセスを停止するときは ProcessBrowser から terminate する.
という感じで,とりあえず概観.
0 件のコメント:
コメントを投稿