質問編集履歴
2
MIDIデータ構造の追加
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -41,4 +41,62 @@ | |
| 41 41 |  | 
| 42 42 | 
             
            	/* */
         | 
| 43 43 | 
             
            	long lRet;
         | 
| 44 | 
            +
            ```
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            MIDIデータ自体は、プログラムで作りました。フリーなどでダウンロードできるものではありません。TIMEが同じ時にその音が二つ鳴ります。チャンネルの42はハイハット。36はバスドラム。38はスネアドラムです。
         | 
| 47 | 
            +
            ```ここに言語を入力
         | 
| 48 | 
            +
            #include <stdio.h>
         | 
| 49 | 
            +
            #include <MIDIData.h>
         | 
| 50 | 
            +
            int main() {
         | 
| 51 | 
            +
                MIDIData* pMIDIData;
         | 
| 52 | 
            +
                MIDITrack* pMIDITrack;
         | 
| 53 | 
            +
                /* MIDIデータの生成(フォーマット0,トラック数1,TPQNベース,120) */
         | 
| 54 | 
            +
                pMIDIData = MIDIData_Create(MIDIDATA_FORMAT0, 1, MIDIDATA_TPQNBASE, 120);
         | 
| 55 | 
            +
                if (pMIDIData == NULL) {
         | 
| 56 | 
            +
                    printf("MIDIデータの生成に失敗しました。\n");
         | 
| 57 | 
            +
                    return 0;
         | 
| 58 | 
            +
                }
         | 
| 59 | 
            +
                /* 最初のトラックへのポインタを取得 */
         | 
| 60 | 
            +
                pMIDITrack = MIDIData_GetFirstTrack(pMIDIData);
         | 
| 61 | 
            +
                /* イベントを挿入 */
         | 
| 62 | 
            +
                MIDITrack_InsertTrackName(pMIDITrack, 0, "ちょうちょ"); /* タイトル */
         | 
| 63 | 
            +
                MIDITrack_InsertTempo(pMIDITrack, 0, 60000000 / 120); /* 120BPM */
         | 
| 64 | 
            +
                MIDITrack_InsertProgramChange(pMIDITrack, 0, 9, 0); /* Piano1 */
         | 
| 65 | 
            +
               /* ノートイベントを挿入            Time  ch  key  vel  dur */
         | 
| 66 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 0, 9, 42, 100, 120); 
         | 
| 67 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 0, 9, 36, 100, 120);
         | 
| 68 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 120, 9, 42, 100, 120);
         | 
| 69 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 240, 9, 42, 100, 120);
         | 
| 70 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 240, 9, 38, 100, 120);
         | 
| 71 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 360, 9, 42, 100, 120);
         | 
| 72 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 480, 9, 42, 100, 120);
         | 
| 73 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 480, 9, 36, 100, 120);
         | 
| 74 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 600, 9, 42, 100, 120);
         | 
| 75 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 600, 9, 36, 100, 120);
         | 
| 76 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 720, 9, 42, 100, 120);
         | 
| 77 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 720, 9, 38, 100, 120);
         | 
| 78 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 840, 9, 42, 100, 120);
         | 
| 79 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 960, 9, 42, 100, 120);
         | 
| 80 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 960, 9, 36, 100, 120);
         | 
| 81 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1080, 9, 42, 100, 120);
         | 
| 82 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1200, 9, 42, 100, 120);
         | 
| 83 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1200, 9, 38, 100, 120);
         | 
| 84 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1320, 9, 42, 100, 120);
         | 
| 85 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1440, 9, 42, 100, 120);
         | 
| 86 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1440, 9, 36, 100, 120);
         | 
| 87 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1560, 9, 42, 100, 120);
         | 
| 88 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1560, 9, 36, 100, 120);
         | 
| 89 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1680, 9, 42, 100, 120);
         | 
| 90 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1680, 9, 38, 100, 120);
         | 
| 91 | 
            +
                MIDITrack_InsertNote(pMIDITrack, 1800, 9, 42, 100, 120);
         | 
| 92 | 
            +
             | 
| 93 | 
            +
                                                                         /* エンドオブトラックイベントを挿入 */
         | 
| 94 | 
            +
                MIDITrack_InsertEndofTrack(pMIDITrack, 1920);
         | 
| 95 | 
            +
                /* MIDIデータを保存 */
         | 
| 96 | 
            +
                MIDIData_SaveAsSMF(pMIDIData, "eightbeat.mid");
         | 
| 97 | 
            +
                /* MIDIデータをメモリ上から削除 */
         | 
| 98 | 
            +
                MIDIData_Delete(pMIDIData);
         | 
| 99 | 
            +
                pMIDIData = NULL;
         | 
| 100 | 
            +
                return 1;
         | 
| 101 | 
            +
            }
         | 
| 44 102 | 
             
            ```
         | 
1
文章途中で投稿したため、追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ドラムのmidiファイルを読み込ませ、それを楽譜に表示させようとしています。
         | 
| 2 2 | 
             
            現段階で表示自体はできているのですが、ハイハットとバスドラムの音が同時に鳴っている場合、ハイハットしか表示されない。ハイハットとスネアドラムの音が同時に鳴っている場合、ハイハットしか表示されない状態になっています。(下記の図のようになります。)
         | 
| 3 3 | 
             
            
         | 
| 4 | 
            -
            元々のコードが単音のみしか表示させるようになっていないので、二つ同時に表示させるように変更したいのですが、どうしたらいいですか? | 
| 4 | 
            +
            元々のコードが単音のみしか表示させるようになっていないので、二つ同時に表示させるように変更したいのですが、どうしたらいいですか?アドバイスお願いします!
         | 
| 5 5 | 
             
            ```c++
         | 
| 6 6 | 
             
            /***** 楽譜の描画 *****/
         | 
| 7 7 | 
             
            	forEachTrack(pMIDIData, pMIDITrack) {
         | 
