« 本学で情報処理学会デジタルコンテンツクリエーション研究会を開催 | トップページ | 専門演習「CGアニメーション」の紹介:モーションキャプチャシステムの利用 »

琉球音階キーボードの作成

|

みなさん、こんにちは、

 
メディア学部のメディア専門演習の1つに「音・音声インタフェース」があります。この演習では、信号処理ソフトMATLABを使って、シンセサイザやボコーダを作ります。第6回目はキーボードの作成でした。MATLABは信号処理以外に優れた描画機能やインタフェース作成機能があります。押しボタンやスライダーを配置してグラフィカルユーザーインタフェース(GUI)を簡単に作ることができます。
MATLABと類似したフリーの信号処理ソフトScilabでも同じようなことができますので、今日は、「音・音声インタフェース」で作成したキーボード作成技法で、琉球音階のキーボードを作成してみましょう。
琉球音階はドレミファソラシからレとラを除いた、ドミファソシの5音による音階です。ただ、レの音が入った音楽もあるので、今日は、レもいれたものをつくってみましょう。
Scilabホームページ  から、ソフトをダウンロードして以下を打ち込んでみてください。
 
f =  [  523 , 587 , 659 , 698 , 784 , 987 , 1046 ] ;
n = [ 'ド' , 'レ' , 'ミ' , 'ファ' , 'ソ' , 'シ' , 'ド' ] ;
for i = 1 : 7 ;
pb = strcat( [ 'sound( sin( 2*%pi*'  string( f(i) )  '*( 0 : 1/22050 : 1) ) )' ] ) ;
uicontrol(  'position' , [ 40+60*i , 100 , 60 , 200 ] ,  ...
'string' , n(i) , 'callback' , pb ) ;
end ;
 
f で指定した周波数がドレミファソシドの周波数です。
音は7つありますから、次の for から end までで1番から7番のキーを作成します。
実は、キーはプッシュボタンなのです。
positionは4つの値で、キーを配置する場所、
「 左からの位置、下からの位置、横幅、高さ 」を指定します。
callbackというのは、キーが押されたときにpbで書かれた文字列を実行することを指定します。
pbの中身は、各周波数の正弦波を1秒作成して sound 命令で音を鳴らす、という内容です。なお、Scilabの標準サンプリング周波数は22050Hzですので、sound 命令では、特に指定していません。

これをScilabで実行すると、以下の図1のようなパネルが出てきます。キーを押してください。沖縄の音楽が演奏できます。

Photo

                    図1 琉球音階キーボード

 

なお、実際の演習では、音の長さを調節するスライダーなども作成しますが、今回はできるだけ短時間で体験していただけるように、とても簡単なものにしました。

相川 清明

授業紹介」カテゴリの記事

高校生向け」カテゴリの記事

« 本学で情報処理学会デジタルコンテンツクリエーション研究会を開催 | トップページ | 専門演習「CGアニメーション」の紹介:モーションキャプチャシステムの利用 »