Lines Matching defs:tracks
76 static struct smf_track *tracks;
267 * Empty tracks won't be written to the file. */
271 tracks = calloc(num_tracks, sizeof(struct smf_track));
272 check_mem(tracks);
274 tracks[i].cur_buf = &tracks[i].first_buf;
439 /* put port numbers into all tracks */
445 var_value(&tracks[i], 0);
446 add_byte(&tracks[i], 0xff);
447 add_byte(&tracks[i], 0x21);
448 var_value(&tracks[i], 1);
450 add_byte(&tracks[i], i / TRACKS_PER_PORT);
452 add_byte(&tracks[i], i);
479 track = &tracks[i];
607 var_value(&tracks[0], tick - tracks[0].last_tick);
608 add_byte(&tracks[0], 0xff);
609 add_byte(&tracks[0], 0x2f);
610 var_value(&tracks[0], 0);
612 /* finish other tracks */
614 var_value(&tracks[i], 0);
615 add_byte(&tracks[i], 0xff);
616 add_byte(&tracks[i], 0x2f);
617 var_value(&tracks[i], 0);
628 used_tracks += !!tracks[i].used;
635 /* number of tracks */
646 if (!tracks[i].used)
651 fputc((tracks[i].size >> 24) & 0xff, file);
652 fputc((tracks[i].size >> 16) & 0xff, file);
653 fputc((tracks[i].size >> 8) & 0xff, file);
654 fputc(tracks[i].size & 0xff, file);
656 for (buf = &tracks[i].first_buf; buf; buf = buf->next)
657 fwrite(buf->buf, 1, buf == tracks[i].cur_buf
658 ? tracks[i].cur_buf_size : BUFFER_SIZE, file);
849 var_value(&tracks[0], 0); /* delta time */
850 add_byte(&tracks[0], 0xff);
851 add_byte(&tracks[0], 0x51);
852 var_value(&tracks[0], 3);
853 add_byte(&tracks[0], usecs_per_quarter >> 16);
854 add_byte(&tracks[0], usecs_per_quarter >> 8);
855 add_byte(&tracks[0], usecs_per_quarter);
858 var_value(&tracks[0], 0); /* delta time */
859 add_byte(&tracks[0], 0xff);
860 add_byte(&tracks[0], 0x58);
861 var_value(&tracks[0], 4);
862 add_byte(&tracks[0], ts_num);
863 add_byte(&tracks[0], ts_dd);
864 add_byte(&tracks[0], 24); /* MIDI clocks per metronome click */
865 add_byte(&tracks[0], 8); /* notated 32nd-notes per MIDI quarter note */
869 tracks[0].used = 1;