Lines Matching refs:ev
215 snd_seq_event_t ev;
216 snd_seq_ev_clear(&ev);
217 snd_seq_ev_set_note(&ev, metronome_channel, note, metronome_velocity, 1);
218 snd_seq_ev_schedule_tick(&ev, queue, 0, tick);
219 snd_seq_ev_set_source(&ev, port_count);
220 snd_seq_ev_set_subs(&ev);
221 snd_seq_event_output(seq, &ev);
226 snd_seq_event_t ev;
227 snd_seq_ev_clear(&ev);
228 ev.type = SND_SEQ_EVENT_USR0;
229 snd_seq_ev_schedule_tick(&ev, queue, 0, tick);
230 snd_seq_ev_set_source(&ev, port_count);
231 snd_seq_ev_set_dest(&ev, client, port_count);
232 snd_seq_event_output(seq, &ev);
251 snd_seq_event_t ev;
253 snd_seq_ev_clear(&ev);
254 snd_seq_ev_set_pgmchange(&ev, metronome_channel, metronome_program);
255 snd_seq_ev_set_source(&ev, port_count);
256 snd_seq_ev_set_subs(&ev);
257 snd_seq_event_output(seq, &ev);
422 static void delta_time(struct smf_track *track, const snd_seq_event_t *ev)
424 int diff = ev->time.tick - track->last_tick;
428 track->last_tick = ev->time.tick;
456 static void record_event(const snd_seq_event_t *ev)
462 if (ev->queue != queue || !snd_seq_ev_is_tick(ev))
466 i = ev->dest.port;
468 if (ev->type == SND_SEQ_EVENT_USR0)
469 metronome_pattern(ev->time.tick);
474 if (snd_seq_ev_is_channel_type(ev))
475 i += 1 + (ev->data.note.channel & 0xf);
481 switch (ev->type) {
483 delta_time(track, ev);
484 command(track, MIDI_CMD_NOTE_ON | (ev->data.note.channel & 0xf));
485 add_byte(track, ev->data.note.note & 0x7f);
486 add_byte(track, ev->data.note.velocity & 0x7f);
489 delta_time(track, ev);
490 command(track, MIDI_CMD_NOTE_OFF | (ev->data.note.channel & 0xf));
491 add_byte(track, ev->data.note.note & 0x7f);
492 add_byte(track, ev->data.note.velocity & 0x7f);
495 delta_time(track, ev);
496 command(track, MIDI_CMD_NOTE_PRESSURE | (ev->data.note.channel & 0xf));
497 add_byte(track, ev->data.note.note & 0x7f);
498 add_byte(track, ev->data.note.velocity & 0x7f);
501 delta_time(track, ev);
502 command(track, MIDI_CMD_CONTROL | (ev->data.control.channel & 0xf));
503 add_byte(track, ev->data.control.param & 0x7f);
504 add_byte(track, ev->data.control.value & 0x7f);
507 delta_time(track, ev);
508 command(track, MIDI_CMD_PGM_CHANGE | (ev->data.control.channel & 0xf));
509 add_byte(track, ev->data.control.value & 0x7f);
512 delta_time(track, ev);
513 command(track, MIDI_CMD_CHANNEL_PRESSURE | (ev->data.control.channel & 0xf));
514 add_byte(track, ev->data.control.value & 0x7f);
517 delta_time(track, ev);
518 command(track, MIDI_CMD_BENDER | (ev->data.control.channel & 0xf));
519 add_byte(track, (ev->data.control.value + 8192) & 0x7f);
520 add_byte(track, ((ev->data.control.value + 8192) >> 7) & 0x7f);
524 delta_time(track, ev);
525 command(track, MIDI_CMD_CONTROL | (ev->data.control.channel & 0xf));
526 add_byte(track, ev->data.control.param & 0x7f);
527 add_byte(track, (ev->data.control.value >> 7) & 0x7f);
528 if ((ev->data.control.param & 0x7f) < 0x20) {
529 delta_time(track, ev);
531 add_byte(track, (ev->data.control.param & 0x7f) + 0x20);
532 add_byte(track, ev->data.control.value & 0x7f);
536 delta_time(track, ev);
537 command(track, MIDI_CMD_CONTROL | (ev->data.control.channel & 0xf));
539 add_byte(track, ev->data.control.param & 0x7f);
540 delta_time(track, ev);
542 add_byte(track, (ev->data.control.param >> 7) & 0x7f);
543 delta_time(track, ev);
545 add_byte(track, (ev->data.control.value >> 7) & 0x7f);
546 delta_time(track, ev);
548 add_byte(track, ev->data.control.value & 0x7f);
551 delta_time(track, ev);
552 command(track, MIDI_CMD_CONTROL | (ev->data.control.channel & 0xf));
554 add_byte(track, ev->data.control.param & 0x7f);
555 delta_time(track, ev);
557 add_byte(track, (ev->data.control.param >> 7) & 0x7f);
558 delta_time(track, ev);
560 add_byte(track, (ev->data.control.value >> 7) & 0x7f);
561 delta_time(track, ev);
563 add_byte(track, ev->data.control.value & 0x7f);
578 if (ev->data.ext.len == 0)
580 delta_time(track, ev);
581 if (*(unsigned char*)ev->data.ext.ptr == 0xf0)
585 var_value(track, ev->data.ext.len - i);
586 for (; i < (int)ev->data.ext.len; ++i)
587 add_byte(track, ((unsigned char*)ev->data.ext.ptr)[i]);