ぐる式 (貳) より引っ越し作業中.未完.

2005年9月12日月曜日

Squeak でぶ; Mock TRIC その後 #9

という訳 で,けっきょく新たにクラスを三つ作るハメに.まぁ,「ループの最後のフレーズが何故か短くなるというシャレにならん不具合」は何とかなった訳だが.

  • SerialCompositeSound,とりあえず QueueSound のサブクラス.
  • ↑が内部的に保持する SerialArray というのは実にエエ加減な命名 orz.

同期機能を外して,読み込み先が空だったらそこで停止 (?).currentSound を nil 化せず,ランダム・アクセスを可能に.「とりあえず」とはいえ QueueSound のサブクラスとしたのは,使用者側に通知が必要なので以下のクラス・コメントに従ってみた結果.

You may want to keep track of the queue's position so that you can feed it at an appropriate rate. To do this in an event driven way, modify or subclass nextSound to notify you when appropriate. You could also poll by checking currentSound, but this is not recommended for most applications.

  • RepeatingSound のサブクラス.

iterationCount の初期値も保持して元に戻せるように.

その他,細々とした追加や修正. WaveEditor や EnvelopEditor を開けるようにしてみたり (笑).「使用者側に通知が必要」ってのは,反復回数が指定されている場合,次へ移動する際に表示の関係で通知する必要があるため.というわけで, "Mock SRD" も一応は可能.でも,「a musical process should happen extremely gradually」というか「flexible and gradually changing」が,あんまし slightly じゃない.不自然.

モノ・ミックスの方も iTunes で 50MB ほどを変換して再度インストールしたら,イメージのサイズは 71MB 弱になった.現在使用可能なサウンド数は 367 個.このうち Squeak 標準なのが FMSound (17 個), PluckedSound (1 個), SampledSound (13 個) の計 31 個.残りの 336 個も多過ぎるんで,一種類の楽器に付き数個等楽器別けされてる分はピッチを見て自動的に選択できるような仕組みがないと使い難い..

  | isSampledSound defaultSampleTable aSound compositeSound |  [aSound := M3Memo asFakeMonoSound: (M3inuSounds soundNamed: 'simedaiko01-04') copy.  (isSampledSound := aSound isKindOf: SampledSound)    ifTrue: [defaultSampleTable := SampledSound classPool at: #DefaultSampleTable.      SampledSound defaultSampleTable: aSound samples].  compositeSound := M3SerialCompositeSound new.  compositeSound    add: (M3ScoreMakerInC        repeatForever (M3ScoreMakerInC            noteSequenceOn: aSound            from: (M3ScoreMakerInC                produceSoundArraysFrom: M3PlayerReichy phrase08                on: #c4                volume: 100                tempo: 148                mmNote: 2)            pan: 0.3)).  compositeSound    add: (M3ScoreMakerInC        repeat: (M3ScoreMakerInC            noteSequenceOn: aSound            from: (M3ScoreMakerInC                produceSoundArraysFrom: M3PlayerReichy phrase06                on: #c4                volume: 100                tempo: 148                mmNote: 2)            pan: 0.3) count: 4).  compositeSound    add: (M3ScoreMakerInC        repeat: (M3ScoreMakerInC            noteSequenceOn: aSound            from: (M3ScoreMakerInC                produceSoundArraysFrom: M3PlayerReichy phrase07                on: #c4                volume: 100                tempo: 148                mmNote: 2)            pan: 0.3) count: 4).  compositeSound    add: (M3ScoreMakerInC        repeatForever (M3ScoreMakerInC            noteSequenceOn: aSound            from: (M3ScoreMakerInC                produceSoundArraysFrom: M3PlayerReichy phrase08                on: #c4                volume: 100                tempo: 150                mmNote: 2)            pan: 0.3))]    ensure: [isSampledSound        ifTrue: [SampledSound classPool at: #DefaultSampleTable put: defaultSampleTable]].  ^ compositeSound inspect

とかやって返ってきたのを self play でスタート, next で次へ移動,jump: index でランダム・アクセスってな感じ.頭とケツの無限ループはテンポが違うので同時にならすと「evolve gradually」ってか, 《ピアノ・フェイズ》のプロセスと構成(篠田大基) 風なのが.

下北沢 で可能なのはこの辺りまでかな〜.なんでパーカッション・アンサンブル版の "Mock TRIC" もできまっせ〜 (笑).でもまぁ,もうこの辺でやめとこ.やっぱちゃんとしたスケジューリング・システムが要るよ.

0 件のコメント:

コメントを投稿