音声音楽スポンサーリンクMIDIで楽曲を演奏するにあたって今までは全ての音をノート番号で指定していました。人が演奏するときには音についてもう少し理解して演奏しています。音階について調性はほとんどの曲で意識されるものです。ハ長調、Cメジャーの曲であれば使う音はC、D、E、F、G、A、Bです。簡単な曲であればこの7つの音で表現できます。scaleといいます。この例は長音階、ダイアトニックスケール、アイオニアン(イオニアン)スケールなどと呼ばれています。intervalと呼ばれて「度」で表現します。最初の音を「一度」ここではCを指します。ハ長調では以下のようになります。音程差は基本となるCからの半音の数になります。11ここでも0ベースか1ベースかの違いが出てきます。音楽用語では同じ音程を一度からつまり1から数え始めます。実際のところ基準となる音からの音程差は0です。この数の数え方の違いがいろいろ混乱を起こします。数の数え方:0ベースと1ベースプログラムを書くときには音楽用語の数え方に反しますが0ベースにします。このインターバルをプログラムで書くと以下のようになります。11};for文で繰り返すと音階を作ることがきます。中央のドはノート番号60なのでこれを使って実際のMIDIノートを出力します。interval);}実行結果は以下の通りです。60626465676971この値をシーケンスに設定していくと音階を演奏することができます。音階よりももっと複雑なメロディを作ることもできるようになるでしょう。通常のシーケンスアプリケーションでは演奏された結果と等しい音を並べていくだけですがプログラムを使うことによって演奏する前の楽曲の考え方の部分まで踏み込むことができます。ここからしばらくは少し楽曲の構造に近い部分をJavaを使って実装していきたいと思います。Canonを演奏したいと思います。前回繰り返しについて日常の例をあげて分類しました。実際に繰り返しを行うコードを書いてみます...記事を読む楽器の音色を決める(1)前回では楽器のためのインタフェースを決めました。これを実装したクラスを作って音色のコントロールはこのクラスで行うようにします。楽器クラスが実...記事を読む連想配列から選択させるユーティリティーを作る連想配列のなかからユーザーに一つ選択してもらうようなユーティリティーを作ります。通常のプログラムは処理は順番通り行われます。ある一つの処理を待っている場合に他の処理を平行でしたい場合はどうすれば良いでしょうか。Ja...記事を読むクラスとはオブジェクトの雛形オブジェクトを扱うにはそのオブジェクトがどういうものかを決めておく必要があります。銀行口座であれば人によって残高は違うでしょうが引き出...記事を読むJavaで三角波のWavファイルを作成する矩形波、サイン波のオシレータができたので今度は三角波のオシレータを作ります。典型的な三角波は0から始まり最初の1/4の時点で最大音量になりま...記事を読むFM音源を利用した楽器の作成ここまでに作ったFM音源とエンベロープ・ジェネレーターを使って楽器を作りたいと思います。Javaで数字を扱うときによく使われるのがint型と呼ばれるデータ型です。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。外国語としてのJavaと音楽%d人のブロガーが「いいね」をつけました。