teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

誤記訂正

2018/01/22 10:57

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -4,15 +4,15 @@
4
4
 
5
5
  MIDIEvent_GetTime (pNoteOnEvent);
6
6
 
7
- で曲の頭からの発音タイミングが得られそうです。それに基づき適当にX座標を決めるようにすればよいのではないでしょうか。なお、自分はお使いのライブラリーの仕様を知らないのですがMIDIの規格についていえば各MIDIイベントに記録されているのは絶対時間ではなく「ある可変の単位時間」によるカウント値が格納されているはずです。ですので、
7
+ で曲の頭からの発音タイミングが得られそうです。それに基づき適当にX座標を決めるようにすればよいのではないでしょうか。なお、自分はお使いのライブラリーの仕様を知らないのですがMIDIの規格についていえば各MIDIイベントに記録されているのは絶対時間ではなく「ある可変の単位時間」によるカウント値はずです。ですので、
8
8
 
9
9
  MIDIEvent_GetTime (pNoteOnEvent);
10
10
 
11
11
  の仕様を調べたり実験したりして適当な係数によりX座標を決めてやればよいでしょう。
12
12
 
13
13
  ---
14
- 捕捉
14
+ 補足
15
15
 
16
- PineMatsuさんがコメントしておられるように、MIDI規格はプログラマーが誰でも知っているような規格ではないと思います。自分が知る限りではここteratailでMIDIプログラミングの経験がおありだろうと気づいた方はおひとりでした。実際にはご存知の方もう少しいらっしゃるかも知れませんがマイナーな分野であるのは間違いないと思います。
16
+ PineMatsuさんがコメントしておられるように、MIDI規格はプログラマーが誰でも知っているような規格ではないと思います。自分が知る限りではここteratailでMIDIプログラミングの経験がおありだろうと気づいた方はおひとりでした。実際にはご存知の方もう少しいらっしゃるかも知れませんがマイナーな分野であるのは間違いないと思います。
17
17
 
18
18
  こういうものについて取り組む場合はなるべく自分自身で解決方法を探れるよう「仕様書を探しそれを見て内容を把握する」というプロセスは不可欠だと思います。そういう心構えもしておいたほうがよいのではないでしょうか?

1

誤記訂正

2018/01/22 10:56

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -1,10 +1,10 @@
1
1
  MIDIのトラックからMIDIイベント情報を拾ってきてそれで音符を描画というプログラムのようですが、「どの時点で発音するか」について考慮されておらず単純に「順番に一定の時間で発音する」という前提でコードを書いておられるのでご質問のような譜面になってしまいます。
2
2
 
3
- ポイントは「そのノートが何時発音するべきものか」によってX座標を決めることです。
3
+ ポイントは「そのノートが何時発音するべきものか」によってX座標を決めることです。ちょっと調べてみたところ
4
4
 
5
5
  MIDIEvent_GetTime (pNoteOnEvent);
6
6
 
7
- で曲の頭からの発音タイミングが得られと思います。それに基づき適当にX座標を決めるようにすればよいと思ます。お使いのライブラリーの仕様を自分は知らないのですがMIDIの規格からすると各MIDIイベントに記録されているのは絶対時間ではなく「ある可変の単位時間」によるカウント値が格納されていす。
7
+ で曲の頭からの発音タイミングが得られそうです。それに基づき適当にX座標を決めるようにすればよいのではなでしょうか、自分はお使いのライブラリーの仕様を知らないのですがMIDIの規格についていえば各MIDIイベントに記録されているのは絶対時間ではなく「ある可変の単位時間」によるカウント値が格納されているはずです。ですので、
8
8
 
9
9
  MIDIEvent_GetTime (pNoteOnEvent);
10
10