━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 名代本場手打ち風シンセサイザ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ プログラム名:SYNTH.BAS F-BASIC386メインプログラム SYNTH.REX F-BASIC386用マシン語サブル−チン ANALOG.ASM F-BASIC386用マシン語サブル−チンソース 対応機種 :FM TOWNS 要RAM:2M 作者 :EAST ●口上  マウスで描いたグラフィックが音になってしまう? PCM音源ならではの技を活 かした,おもしろいプログラムをご紹介しましょう。 今までは耳から聴くだけだった 「音」に,マウスを通じて実際にさわってみることができるのです。操作も簡単。ぜ ひ動かしてお楽しみください。 なお,このプログラムは◎h!FM'90年6月号掲載の ものを,作者のEAST氏および◎h!FM編集部のご好意で収録したものです。 ●PCMを活かそう  TOWNSにはせっかくPCM音源があるというのに,ただ富士通提供のサウンドデ ータライブラリを使うだけだったり,サンプリングした音をそのまま使っているだけ, というのはなんとももったいない感じがしませんか? だってPCM音源ですよ,音 量値を適当に並べていくだけで音になるのですから,理論的にはたいていの音が作れ てしまうはずでしょ? もっと積極的にPCM音源を使ってみましょうよ,というわ けで作ってみたのがこの手書き入力可能なシンセサイザ(というにはおこがましい気 もしますが……)です。  特徴はなんといっても「基本波形がマウスで手書き入力ができる」ことと,「エン ベローブパターンが手書き入力できる」ことでしょう。話によると昔,RolandのS- 50という高価なサンプリングシンセサイザがマウスパッドに描いた波形で音を入力で きる機能をもっていたそうですが,今ではコンピュータが本体のみでこんなこともで きるようになったのですね。この「名代本場手打ち風シンセサイザ」は,このほかに ビブラートとトレモロもかけることができます。ちょうど,アナログシンセサイザの ころのような雰囲気の音を作るのが得意なように感じられますね。 ●音の描き方  さてさて音作りにはいろいろとコツがいるものですが,簡単に説明してみたいと思 います。  まず音色の基本となるのが「基本波形」です。はじめは基本波形の入力エリアには サイン波(正弦波)が表示されていますが,これに手を加えていって音色を作ります。 基本的にはサイン波に近いほど特徴のない単調な音になります。これになるべく強い 2倍,3倍,4倍の周期をもった高周波を乗せていく(きっちり演算した合成波形より, 基本のサイン波の上に短い周期の小さなサイン波で適当にデコボコを作っていったほ うが味わいのある音ができます)と金属的な鋭い音になっていきます。しかし,高周 波をかけすぎると,今度は焦点がぼけた音程がわからないような音になります。フル ートのような音からパイプオルガンのような音になっていくわけですね。  また,エンベロープ(これは時間経過で波形全体の音量がどう変化していくかを表 すものです)も音の印象を変えます。立ち上がりが速く,減衰も速くすると,打楽器 的な音になりますし,減衰をなくすとオルガンのような感じになります。基本的には この基本波形とエンベローブで音は決まります。  あと,トレモロとビブラートは音に味わいを出す,という感じでしょうか。バイオ リンのような弦楽器にはビブラートがいりますね。トレモロは長めの音にゆっくりめ にかけてやるといい感じに音が揺れます(言葉では分かりにくいかな……実際に試し てください)。  そういえば昔,富田勲が筑波科学万博の音とかいってパビリオンのシルエットを波 形として入力してるのを見たことがあります。うーん,ああいう有名な人もこんなこ とをしてたんですね。TOWNSのシルエットの音なんて変でいいかもしれない……。 ●起動  SYNTH.BASがBASICのメインル−チン,SYNTH.REXがマシン語サブルーチンのリス トです。ワ−クディスクにコピ−して, 同じディスクの同じディレクトリに入れてお いてください。F-BASIC386(L20以降)を立ち上げたらSYNTH.BASを読み込んで実行 します。するとマシン語を読み込み,画面や内部の設定をしますのでしばらく待って ください。マウスカーソルが出たら設定終了で,いよいよ音作りにとりかかれます。 ●使い方  それでは使い方です。マウスで操作できるのは,   「基本波形のグラフ」   「基本波形のクリア」   「エンベロープパターンのグラフ」   「エンベロープパターンのクリア」   「トレモロの周期」   「トレモロの大きさ」   「ビブラートの周期」   「ビブラートの大きさ」   「PCMデータを保存する」   「PCMデータを計算する」   「PCM音源を鳴らす」   「終了」 の各機能です。マウスで直接描画する「基本波形のグラフ」と「エンベロープパター ンのグラフ」を除いて,表示されている機能名の所へマウスを持っていき,左右どち らでも好きなほうのボタンを押せば実行されます。  「基本波形のグラフ」と「エンベロープパターンのグラフ」は同じ操作ができます。 グラフ上にカーソルを持っていって左ボタンを押しながらマウスを動かすと,そのと うりに波形が描けます。このとき,マウスの横方向の移動量が通常の4分の1になりま す。これは,BASICの処理速度の限界で,取りこぼしを起こすのをなるべく防ぐた めです。それでも,なるべくマウスはゆっくり動かすようにしてください。また,逆 に速く動かしてわざと取りこぼしをおこしてノイズっぽい音にすることもできます。 右のボタンを押すと,今度は押した点からマウスカーソルまでラインが引かれます。 マウスカーソルを動かして右ボタンをはなすと, この2点の間が直線補完して描かれ ます。基本的には右ボタンで大体の形を作って左ボタンで修正する,という使い方が いいでしょう。  「基本波形のクリア」というのは基本波形のデータを元のサイン波に戻します。ま た,「エンベロープパターンのクリア」というのはエンベロープパターンを直線的に 減少するパターンに置き換えます。これは音を作っていて,どうしようもなく変な音 になってしまったときに使ってください。  「トレモロの周期」「トレモロの大きさ」「ビブラートの周期」「ビブラートの大 きさ」というのは,まあ働きは読んでの通りですね。スライド型のダイアログの上で, 設定したい位置にマウスカーソルをもっていって左ボタンを押すとその位置に設定さ れます。押したまま動かしてもついてきてくれます。  「PCMデータを計算する」というのは,今上のようなパラメ−タで決められた音 を64Kバイト分の.SNDデータに展開し,PCM音源のウェーブRAM上に設定します。 本当ならパラメ−タを変更したらリアルタイムで音を変化させたいところですが,64 Kバイトに展開するには3秒ほどかかるのでこういう仕様にしました。  「PCM音源を鳴らす」というのは「PCMデータを計算する」で設定した音を.P MBデータに変換し,PLAY文で演奏します。「PCM音源を鳴らす」で左ボタンを 押すと,サMML <シと聞いてくるのでキーボードからMMLを入力してください。 入力するMMLは1チャンネル分だけです。  「PCMデータを保存する」というのは「PCMデータを計算する」で計算した音 をファイルに落とします。サFILE NAME <シと聞いてくるのでセーブするファイルネ ームを入力してください。F-BASIC386には.PMBファイルをセーブする命令がな いので,.SNDデータとしてセーブします。ですから,実際に使う時には.SNDデータ として読み込んでVOICE SET命令で.PMB形式の音色にするようにしてください。 なお,残念ながらサウンドデータのロードはできません。もともと,この「シンセ」 は 1周期の波形分だけのPCMデータを扱うという特殊なもので,既製品のサウンド データをエディットできるようには作られていませんので。問題になるのは,一度こ の「シンセ」で作った音を手直ししたい,といった場合でしょう。しかし音の波形は, ちょっとぐらい形が違っただけでは,聴いてわかるほどの音色の違いがでることはま ずないので,おおよその形を紙に描き写しておくだけでも充分でしょう。再入力はマ ウスですぐ描きあげてしまうことができるわけですから。  「終了」でプログラムを終了します。  これが操作のすべてです。必要最小限の機能しかありませんが,これだけあればい ろいろな音が作れるでしょう。 ●終わり  うーん,特徴のある音を作り出すのはけっこう難しいですね(私は基本的にグラフ ィックの人なので,音には詳しくないのです(^_^;)……)。どのような形がどんな音 になるかをつかめないうちは,なかなか思いどおりの音は作れないかもしれませんね。 TownsSOUNDやオシロスコープを持っている方は実際に色々な音の波形を観察して, それを元に波形を描くと面白いかもしれません。  とにかく,カットアンドトライで試してみるのがいいのではないでしょうか。この 世に存在しがたい音(聞くに耐えない音とか……)ができたとしても,まあそれも一 興というものでしょう。そんな変な音が作れるのもPCM音源の特徴なのですから。 ● 著作権・再配布について このプログラムの著作権は作者が保持しておりますが,著作権法の定める「個人的 な利用」の範疇であれば自由に利用してくださってけっこうです。また,転載・配布 についても事前の許諾なしに自由に行ってくださってかまいません。ただし配布時に, 1. 「EAST」がプログラミングしたものであること 2. Oh!FM'90年7月号に掲載されたものであること 3. 作者の自由転載許可に基づいて転載・配布したものであること の旨を,説明用のテキストに明記してください。