示例#1
0
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");
    }
}
示例#2
0
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]);
}