実装スポンサーリンク以前作った拍子を管理するクラスTimeSignは「何小節目の何拍目」かを入力すると「開始から何拍目」であることを返すように作られていました。入力の「小節」はint型、入出力の「拍」はdouble値です。拍子の設定と位置の取得このようなユースケースもありましたので転記します。小節数は0ベースになっています。31MIDIで使うための機能追加MIDIイベントに使うためには「開始から何ティック目」であるかが必要なためTimeSignで戻される拍数に解像度を掛け合わせれば良いことになります。解像度を480として上のユースケースの前半部にティック情報を追加します。9120今回はTimeSignクラスを継承しその機能を利用するMidiTimeSignクラスを作ることにします。実装クラスの宣言とコンストラクタです。解像度と初期の拍数設定を引数に取ります。解像度はこのクラスで保持して初期の拍数はTimeSignに渡します。}小節と拍を入力すると開始からの時間位置をティックで返すメソッドを作ります。TimeSignクラスで持っていた拍数を返すメソッドを内部で実行してそれに解像度を掛け合わせて小数点を丸めて返しています。確認用のコードを書いてユースケース通りになるかを確認します。途中で3拍子に変更する設定をして0小節目から5小節目までを出力します。0));}以下が出力結果です。ユースケース通りになっていることが確認できました。tick=9120ソース今回のソースになります。ミナ・ベルジェJavaとMIDI:時間情報を管理する(1)JavaとMIDI:トラックの編集ツールを作る(1)関連記事サインオシレーターを使ってサイン波の音声ファイルを作成する前回作ったサインオシレーターを使って音声ファイルを作ります。以前矩形波の音声ファイルを作成したのでこのロジックを流用したいと思います。Inp...記事を読むJavaとMIDI:入出力先デバイスの取得MIDI情報の読み込み先や書き出し先はMidiSystem.getMidiDeviceInfoというスタティックメソッドで取得できます。...記事を読むIIRローパスフィルタの作成(1)フィルタのうち一番手軽に使えそうなIIRローパスフィルターをJavaで実装します。前回説明したがIIRローパスフィルターはIIRという方式で...記事を読むタイムラインのオプティマイズ(2)前回TimeLineクラスを分離してモノラルでも利用できうる抽象クラスを作りましたのでそれを利用して楽器で「演奏された音」クラス、Playe...記事を読む標準入力からint型整数を取得するユーティリティを作る前回は入力を求めるメッセージを出力し文字列の入力を取得するところまで作りました。今回は文字列ではなくint型整数を取得したいと思います。おそ...記事を読むモノラルからステレオに変換する(1)パンを設定するにあたって時間によってパンの位置を変えたいため設定を保持するクラスをまず作ります。以前周波数を時間で変化させるための周波数マッ...記事を読むテキストファイルの読み込みをメソッドにする以前テキストファイルの読み込み処理を作りました。main関数に直接書いただけであったのでメソッドにして再利用できるようにしたいと思いま...記事を読むオブジェクトの比較オブジェクトの大小を判定することを比較と言います。英語ではcompareという単語を当てています。基本データ型と違いオブジェクトはそのデータ...記事を読むオブジェクトとはプログラムのために対象化されるもののことJavaにはオブジェクトという用語があります。「Javaはオブジェクト指向言語だ」などといわれますが、それを理解するのは私には時間がかかりま...記事を読むJavaのパッケージについて作っているシステムが大きくなりクラスの量が増えてくると雑然としてきます。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。外国語としてのJavaと音楽%d人のブロガーが「いいね」をつけました。