う」
@gorry5 今の生活空間には、電子音があふれ ています。ゲームは言うに及ばず、ケータ イでメールが届いたって、電子レンジで 食品を温め終わったって電子音が鳴り 響きます。
ああ、まず「電子音」とは何か、を考え ておきましょう。電気的に作られた「自然 界にない音」のことです。もっとも、今はコ ンピュータによる複雑な演算で「電気的 に自然界の音を復元する」ようなことも できてしまいますが、ここではそこまで考 えずに……昔のゲームサウンドとしてよ く挙げられた「ピコピコ音」とその仲間、く らいで考えておくといいでしょう。
電子音 の正体
電子音の生まれは、電気回路です。音 を電気信号に変える装置として「マイク」
があり、その電気信号を音に変える装置 として「スピーカー」がありますが、マイク なしで電気信号を作り出すことで生み出 された音が「電子音」です。
このような電子音は、機械の状態を人 間に通知するための手段として生まれま した。人間に伝わりさえすればどんな音 でもいいのですから、そのための機構は できるだけ簡単なものが求められます。
もっとも簡単な電気信号といえば「オ ン」と「オフ」ですが、スピーカーに送る電 源のオンオフを秒間数百回繰り返すと、
それだけで「くけい矩形は波」と呼ばれる種類の 音が鳴ります。
簡単な機構で作れる音には、他にも「
せいげん
正弦波(サイン波)」「のこぎり鋸 波」「三角波」な どがあります。
■ 電子音 を 創 り 出 せる シ ステム
「SiON」
電気回路で簡単に作れる「電子音」は、
既存の音との調和の難しさと、その音の あまりの「素っ気なさ」からか、一般的な 音楽の素材として使われることはあまり ありません。また、これらの電子音が鳴る 機械といえば、家電であったり、コン シューマゲーム機であったり、おもちゃで あったりします。
これらは個人では制御が難しいため、
電子音が鳴る機械に囲まれて生活して いたとしても、「その音を作る」という機会 はめったにありません。ですが、簡単な電 気回路がこれらの音を作り出せるのであ れば、もちろんコンピュータでも簡単に作 り出すことができます。
ここでは、簡単に電子音を創り出せる システム「SiON」を紹介します。どれくら い簡単かというと……?
■たった1文 字 で 電子音 を 鳴ら す !?
まず、SiONの Webサイトを開いてみ ましょう。
http://www.libspark.org/wiki/keim /SiON
いろいろ書いてあります。「こんなの分 からない」……わからなくても全然問題 ありません。本当に必要なのは、そこから のリンク先にある「MMLエディタ」です。
http://yomogi.sakura.ne.jp/~si/Soli dImage/sion/mmleditor.html
なんとも素っ気ない画面が開いたは ずです。「SiOPM Workbench」という タイトル、「MML Editor」というサブタイ トル、[File]/[Edit]などのメニュー、そし て広大な入力エリアとプレイボタンが1つ だけ。
ここで、入力する1文字をお教えしま しょう……それは、"a"です。"a"の1文字 を入力エリアに入れ、プレイボタンをク リックしてみてください。うそ嘘じゃなかった でしょう?
■10 文 字程度 に 増 やしてみよう
種明かしをしましょう。"a"は「"ラ"の音 を出せ」というMML命令です。たった1 文字でも立派な命令なのです。
さてここで「MMLって何?」という疑 問が出ると思います。MMLとは「Music Macro Language」……音楽記述言語 とでも訳すればよいでしょうか。
なぜ"a"という文字が"ラ"なのか……
ここで音楽の授業を思い出した人は正 解です。音楽の授業では、「ドレミファソラ シ」の7つの階名と、「イロハニホヘト」の 7つの音名があり、音名は「ABCDEFG」
とも習ったかと思います。(ハ長調のとき は)「ラ="A"」だというのが、その答えに なるのです。
"a"が"ラ"なら、"b"は"シ"なのか……そ の通りです。"cdefgab"の7文字は、それ ぞれ「ドレミファソラシ」の7つの音階に対 応しているのです。
「"ドレミファソラシ"と来たら、オクター ブ上の"ド"を鳴らしたい」かと思います。
SiONでは、オクターブを移動する命令 として"<"と">"の2つの文字を使うことが できます。"<"と">"のどちらが上下への 移動になるかは(歴史上の理由により)一 定していないのですが、SiONの初期設 定では"<"が「上げ」と定められています。
さて、やっとMMLを打ち込む段階で す。
cdefgab<c
の9文字を打ち込み、プレイボタンをク リックしてみてください。「ドレミファソラシ ド」の音階を9文字の入力で鳴らすこと ができました。
■ 音楽 にしてみよう
「機械の状態を人間に通知するため の手段として生まれた」電子音なら、せ いぜい音階が鳴らせるだけで十分です。
しかし、人間が聞く音としては何らかの 感情に結びつく「音楽」であると便利だ、
というのは自然な思いです。
ただの音を音楽という「表現」に持ち 上げるには、リズムが必要です。リズムの 要素とは「どの長さの音をどんな順序で 並べるか」ということなので、電子音に
「音の長さ」を指定する命令があれば、
電子音で音楽という「表現」を行えると
いうことになります。
SiONで音に長さを与えるには、先ほ どの"cdefgab"の発声命令の後に、長さ を意味する文字を付け加えます。以下の ように入力してみましょう。
c4d4e4f4g4a4b4<c4
"4"が長さを意味する「音長命令」です。
「さっきと同じじゃないか」というあなたは 正解……次はこうしてみましょう。
c8d8e8f8g8a8b8<c8
さっきの倍の早さで演奏されました。
いえ、実際は「倍の早さ」でなくて「半分 の音長」で演奏されたのです。
さて、ここでまた音楽の授業に戻りま す。「4分音符」とか「8分音符」とかいう 単語は覚えているでしょうか。この項で 書き足された"4"や"8"の文字は、まさしく そのまま「4分音符」や「8分音符」を意味 するものなのです。
それでは、もうちょっと音楽っぽくした MMLを入力してみましょう。
c8d8e2d8c8r8 c8d8e8d8c8d1
新しい記述が2つほど出てきました。ひ とつは"r"命令、もうひとつは空白です。
"r"は「Rest」の略で、休符を意味します。
空白はこのMML文字列を読みやすく するためのもので、音には何の影響も与 えません。
l8o6 cegr cegr eeddc4
また新しい記述が2つほど出てきまし た。ひとつは"l"命令、もうひとつは"o"命
令です。
"l"は「Length」の略で、音長を意味し ます。この項の始めの「さっきと同じ音」
だったMMLを覚えていますでしょうか。
4分音符を意味する"4"があってもなくて も同じ長さで音が演奏されたのは、「音 長を省略したときは"4"とみなす」という 初期設定を SiONが持っているからで す。"l"命令は、この設定を変更するため のもので、ここでは「音長を省略したら8 分音符とみなす」ように指示したことにな ります。
もうひとつの"o"は、オクターブの直接 指定を行う命令です。先ほど"<"と">"で オクターブを移動する命令を紹介しまし たが、"o"はオクターブの位置を直接指 定できる点が異なります。
■ 和音 にしてみよう
SiONは単音だけでなく、複数トラック による和音の表現も可能です。";"(セミコ ロン)で区切ることで、第2トラック・第3ト ラック……と順次増やしていくことがで きます。次のMMLは、ドミソの和音を鳴 らします。
c;
e;
g;
最後に、新しい命令をもう少し覚えて、
現実の電子音を真似してみましょう。
"t"は「Tempo」の略で、演奏の速度を 指定する命令です。ここでは90 という
値を指定することで、「1分間に4分音符 を90回演奏する速度」という意味にな ります。
"+"は、音名の直後に付けることで、半 音上げて演奏することを示します。"f+"は、
ファを半音上げた「F#」を鳴らすことにな ります。
t90
l8o6 f+d>a<d ea4>a< ef+e>a< d2;
l8o6 d4 d4 c+2> a4 a4 f+2;
いらっしゃいませ、MMLの世界へよう こそ!
■そして MM LT A LK S へ
ここまでで、MMLという道具を使って
「電子音を創る」ことができるようになり ました。たったこれだけのことでも、この 世界の電子音の大半と同様のものを創 り出せるようになるのです。
ですが、ここで学んだことは、MMLに よる音楽の世界のほんの入口でしかあり ません。SiONには「MMLTALKS」とい う楽曲データ収集サイトがあり、SiONを 使った素晴らしい音楽をMML付きで 鑑賞することができます。
http://mmltalks.appspot.com/
SiONのMMLには、まだ数多くの命 令があります。ここから先へ進むために は、このリファレンスマニュアルを読んで おくのが便利でしょう。
http://mmltalks.appspot.com/docu
ment/siopm_mml_ref_05.html
OS とゲームの切っても切 OS とゲームの切っても切 れない関係
れない関係
@117Florian
OS、その見え ざ る 者
普段パソコンやゲーム機を使っていて OS を気にすることはあまりありません。
でも意識するにせよ、しないにせよOS というものはコンピュータに深く関わって きます。
ここでは、ゲームそのものからちょっと 離れてもう少し専門的な「コンピュータ」
というものについて考えていきたいと思 います。
この中に、「Java+Swing はじめの一 歩」にあったちょっとした疑問に対する答 えも入っていますので、そこで不思議に 思った人は最後まで読むとちょっといい 気分になれるかも知れません。
コン ピ ュータってそもそも何?
またか、と思われるかも知れませんが、
ゲームよりもずっと手前から考えていき たいと思います。
コンピュータって、そもそもなんなのか、
と。
現代のコンピュータの祖先が生まれた のは 1949年のEDSAC だと言われて います。このとき、これの元になった論文 のうち、数学的な部分はフォン・ノイマン
が、実際の構築はエッカートとモークリー が行いました。このため、現代のコン ピュータは「ノイマン・エッカート・モーク リー型ディジタルコンピュータ」と呼ばれ ます。もしくは、もっと略して数学的裏付 けをつけたノイマンさんの名前を冠して
「ノイマン型コンピュータ」とも呼びます。
ノイマン型コンピュータはそれ以前の コンピュータに比べて、こんな特徴があり ました。
•
プログラムを組むと大概どんな計 算もできる•
プログラムは命令を順番に実行し ていく•
プログラムとデータはひっくるめ て一つのメモリにいれるここで、おや、と思うことがあります。
そう、「それ以前の」ってどういう事だ ね、と。コンピュータの始祖がEDSAC な らばそれ以前も何もないだろう、と。
実際には計算をする機械というのは かなり古い歴史があります。だいたい紀 元前2 世紀ぐらいにはギヤを組み合わ せて星の動きを計算する計算機は作ら れていましたし、18世紀には「解析機 関」という機械式コンピュータは作られ ており、これはプログラムを組むことで 様々な計算ができた……といわれていま す。微妙に歯切れが悪いのは、特に解析 機関はほんとに出来たかどうか微妙に 怪しかったりするので、たぶん、作られて、