From 96ccdda9f580661852f25dc0a79a2a4d9afedb86 Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Tue, 17 Feb 2026 09:12:08 -0600 Subject: [PATCH] fix syntax --- examples/player.ce | 3 ++- midi.c | 4 ++-- midi.cm | 39 ++++++++++++++++++--------------------- 3 files changed, 22 insertions(+), 24 deletions(-) diff --git a/examples/player.ce b/examples/player.ce index fda8c88..f8a036c 100644 --- a/examples/player.ce +++ b/examples/player.ce @@ -65,8 +65,9 @@ player.play() function pump() { // Push audio when buffer has room var expect = audio.expect() + var rendered = null while (expect >= BUFFER_FRAMES) { - var rendered = player.render(BUFFER_FRAMES) + rendered = player.render(BUFFER_FRAMES) if (rendered) { audio.push(rendered) } diff --git a/midi.c b/midi.c index d595f1a..5c29725 100644 --- a/midi.c +++ b/midi.c @@ -43,7 +43,7 @@ JSC_CCALL(soundfont_set_output, if (!sf) return JS_NULL; int sample_rate = 44100; - float gain_db = 0.0f; + double gain_db = 0.0f; if (argc > 1) JS_ToInt32(js, &sample_rate, argv[1]); if (argc > 2) JS_ToFloat64(js, &gain_db, argv[2]); @@ -275,7 +275,7 @@ JSC_CCALL(midi_parse, continue; } - JS_SetPropertyUint32(js, events, idx++, evt); + JS_SetPropertyNumber(js, events, idx++, evt); } JS_SetPropertyStr(js, result, "events", events); diff --git a/midi.cm b/midi.cm index 35232b3..7c5744b 100644 --- a/midi.cm +++ b/midi.cm @@ -104,27 +104,22 @@ function Player(soundfont, song) { // Process events up to current time function process_events(time_ms) { + var evt = null while (event_index < length(events) && events[event_index].time <= time_ms) { - var evt = events[event_index] - - switch (evt.type) { - case 'note_on': - soundfont.note_on(evt.channel, evt.key, evt.velocity / 127.0) - break - case 'note_off': - soundfont.note_off(evt.channel, evt.key) - break - case 'control': - soundfont.control(evt.channel, evt.control, evt.value) - break - case 'program': - soundfont.set_preset(evt.channel, evt.program, evt.channel == 9) - break - case 'pitch_bend': - soundfont.pitch_bend(evt.channel, evt.pitch_bend) - break + evt = events[event_index] + + if (evt.type == 'note_on') { + soundfont.note_on(evt.channel, evt.key, evt.velocity / 127.0) + } else if (evt.type == 'note_off') { + soundfont.note_off(evt.channel, evt.key) + } else if (evt.type == 'control') { + soundfont.control(evt.channel, evt.control, evt.value) + } else if (evt.type == 'program') { + soundfont.set_preset(evt.channel, evt.program, evt.channel == 9) + } else if (evt.type == 'pitch_bend') { + soundfont.pitch_bend(evt.channel, evt.pitch_bend) } - + event_index++ } } @@ -176,8 +171,10 @@ function Player(soundfont, song) { // Fast-forward events to current time (for program changes etc) // but don't trigger note_on events - for (var i = 0; i < length(events) && events[i].time <= time_ms; i++) { - var evt = events[i] + var i = 0 + var evt = null + for (i = 0; i < length(events) && events[i].time <= time_ms; i++) { + evt = events[i] if (evt.type == 'program') { soundfont.set_preset(evt.channel, evt.program, evt.channel == 9) } else if (evt.type == 'control') {