みなさん、こんにちは、
メディア専門演習は20種類もの専門的な演習から好きなものを2種選んで履修できるメディア学部独特の演習です。その中の1つ「音・音声インタフェース」の13回目ではシーケンサを作りました。12回までで、楽器音を発音するしくみであるシンセサイザや人の声好みの高さで発声させることができるボコーダを作ってきました。これらは、すべてプログラムで作るのです。そして、楽譜に合わせてそのような音や音声を合成するプログラムを動かしてメロディを奏でる部分がシーケンサです。
1つのパートの時系列をトラックと言います。演習ではメロディと伴奏が演奏できるように、2つのトラックを扱えるものを作りました。このトラック情報を記録するため「構造体」と呼ばれるデータ表現を用います。構造体は
親変数名.子変数名
の形式で表され、複数の子変数を親変数に所属させることができます。
から信号処理のフリーソフトをダウンロード・インストールして試してみてください。
例えば、猫の名前と年齢を一緒に管理したいとします。1匹目の猫は名前が「ミケ」で2歳、2匹目の猫は名前が「たま」で5歳とします。
--> neko.name = 'ミケ'
--> neko(1).age = 2
--> neko(2).name = 'たま'
--> neko(2).age = 5
のようにすると、nekoという親変数の配列ができます。親変数の各要素には name と age という2つの子変数がついていて、neko(1)には1匹目の猫の名前と年、neko(2)には2匹目の猫の名前と年がはいります。
中身はscilabのコンソールから変数名を打ち込むの表示されます。例えば、次のようになります。
--> neko.name
ans =
ans(1)
ミケ
ans(2)
たま
--> neko.age
ans =
ans(1)
2.
ans(2)
5.
この例では1匹の猫のデータは名前と年齢だけですが、好きな食べ物や、毛の特徴などいろいろあっても neko(1) で扱えて便利ですね。