static void dump_notes(int do_beams) { int f; int p; int v; fprintf(stderr, "Now write parts...\n"); for (p = 0; p < n_part; p++) { if (ONLY != -1 && p != ONLY) { fprintf(stderr, "Skip staff %d, do only staff %d\n", p, ONLY); continue; } fprintf(stderr, " ........ part %d, ", p); for (f = 0; f < part[p].n_staff; f++) { fprintf(stderr, "staff %d, ", f); for (v = 0; v < part[p].staff[f].n_voice; v++) { fprintf(stderr, "voice %d ", v); VPRINTF("Now dump part %d staff %d voice %d", p, f, v); voice_reset(); fprintf(lily_out, "%s = {", part_name(p, f, v)); indup(); dumpVoice(&part[p].staff[f].voice[v], do_beams); indown(); fprintf(lily_out, "}"); newline(); newline(); } } fprintf(stderr, "\n"); } }
void synth_note_on (synth_t *synth, int midi_note) { int idx = get_free_voice_index(synth); if (idx < 0 || idx >= NUM_VOICES) { return; } voice_reset (&synth->a_voices[idx]); voice_set_midi_note (&synth->a_voices[idx], midi_note); voice_note_on (&synth->a_voices[idx]); }