実装スポンサーリンクバッハのチェロ組曲のシーケンス作りをしましたがまだコードが煩雑であるのでツールをさらに追加していきたいと思います。結果として楽曲作成に集中できるコーディングができるようにします。JavaとMIDI:バッハ・チェロ組曲の一部(4)シーケンスエディターの作成Javaの実装では一つのシーケンスに複数のトラックを作成できるようになっています。ここまででトラックの編集ツールは作りましたがシーケンスについてはありません。このためシーケンスの初期化に様々な記述が必要になっています。以下に抜き書きしました。解像度を指定してシーケンスを初期化、コンダクタートラックにテンポを設定、拍子情報を四拍子で作成しています。4.0);またシーケンス中でテンポを設定するところもコードが冗長です。0)));このあたりの記述をスッキリできるようにしたいと思います。だいたいの方針としては以下のように考えています。シーケンスを直接触らずエディタークラスを介して操作する(トラックエディターと同じ)拍子情報やトラックの初期化はエディタークラスで行うテンポ設定などコンダクタートラックへの操作はエディタークラスを介して行う実装まずクラスの宣言とフィールド変数です。拍子情報とシーケンスと複数のトラックを保持します。トラックはコンダクタートラックと演奏用のトラックと分けてあります。演奏用のトラックはトラックエディターでラップしたものを保持します。解像度は480固定で定数にしておきます。trackEditors;コンストラクターでは演奏用のトラックの数と初期用の拍子、初期用のテンポを取るようにします。拍子情報のインスタンスを生成しシーケンスを作成します。コンダクタートラックを作成したあと指定のトラック数だけトラックを作成してトラックエディターにラップします。最後にテンポを設定します。今の所は一つのトラックが一つのチャンネルに対応するようにしてありますが将来的に必要であれば見直すようにします。チャンネルは16までなのでトラック数を17以上にすると例外を投げるようになっています。65);}getterメソッドを作ります。timeSign;}コンダクタートラックに設定するメソッドを追加します。今の所はテンポの設定のみです。コンストラクターでも呼び出しているのでサブクラスが変更することのないようにfinalにしておきます。}}このトラックエディターを使う形でシーケンス編集のコードを修正しました。演奏される内容は同じですが記述が前よりスッキリしました。次回は演奏情報を記述しているところをもう少し簡略にしたいと思います。ミナ・ベルジェサン=テグジュペリとプログラムJavaとMIDI:曲の構造と表現の分離(1)関連記事Javaによる録音:外部の音を録音する(1)録音に必要な技術は前に書いたもので揃いました。Javaでの簡単スレッド...記事を読むJavaとMIDI:フォリア(1)では簡単なフォリアを作ります。コルレリのバージョンの提示部の単純化したものを主旋律とします。1小節目と2小節目でリズムが...記事を読むFM音源:フィードバックの導入(2)前回オシレーターをフィードバック対応にしたので今回はそれを読み込む側の修正を行います。Generatorを作りたいと思います。エンベロープ・ジェネレーター...記事を読むモノラルからステレオに変換する(1)パンを設定するにあたって時間によってパンの位置を変えたいため設定を保持するクラスをまず作ります。以前周波数を時間で変化させるための周波数マッ...記事を読むファイルを選択するユーティリティーを作る(2)前回再帰的なメソッドの呼び出しを利用してディレクトリの階層のどこかにあるファイルを選択するメソッドを作成しました。欲しい機能が二つあ...記事を読むJavaとMIDI:フォリア(2)次にフレーズを作っていきたいと思います。前の譜例では16小節そのまま書いてありましたが以下のように繰り返しを使ってコー...記事を読むJavaとMIDI:音を鳴らす(1)MIDIの環境がわかったところでまずは音を鳴らして見たいと思います。スタンダードMIDIファイルをJavaで演奏します。前回は以下の3以降を実装しました。SM...記事を読むJavaで矩形波のオシレーターを作る前回サイン波のオシレーターをつくりました。矩形波もファイルは作りましたがファイル作成ロジックとオシレータ部分が混ざった状態で作っていました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。外国語としてのJavaと音楽%d人のブロガーが「いいね」をつけました。