aboutsummaryrefslogtreecommitdiff
path: root/dssi/src/dssi~.c
diff options
context:
space:
mode:
Diffstat (limited to 'dssi/src/dssi~.c')
-rw-r--r--dssi/src/dssi~.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/dssi/src/dssi~.c b/dssi/src/dssi~.c
index 9dd6af4..f50989c 100644
--- a/dssi/src/dssi~.c
+++ b/dssi/src/dssi~.c
@@ -1250,6 +1250,16 @@ static void MIDIbuf(int type, int chan, int param, int val, t_dssi_tilde *x){
x->midiEventBuf[x->bufWriteIndex].data.control.param = 0;
x->midiEventBuf[x->bufWriteIndex].data.control.value = val;
break;
+ case SND_SEQ_EVENT_CHANPRESS:
+ x->midiEventBuf[x->bufWriteIndex].data.control.channel = chan;
+ x->midiEventBuf[x->bufWriteIndex].data.control.param = 0;
+ x->midiEventBuf[x->bufWriteIndex].data.control.value = val;
+ break;
+ case SND_SEQ_EVENT_KEYPRESS:
+ x->midiEventBuf[x->bufWriteIndex].data.note.channel = chan;
+ x->midiEventBuf[x->bufWriteIndex].data.note.note = param;
+ x->midiEventBuf[x->bufWriteIndex].data.note.velocity = val;
+ break;
case SND_SEQ_EVENT_PGMCHANGE:
x->instances[chan].pendingBankMSB = (param - 1) / 128;
x->instances[chan].pendingBankLSB = (param - 1) % 128;
@@ -1295,6 +1305,10 @@ static void dssi_tilde_list(t_dssi_tilde *x, t_symbol *s, int argc, t_atom *argv
break;
case ASCII_b: ev_type = SND_SEQ_EVENT_PITCHBEND;
break;
+ case ASCII_t: ev_type = SND_SEQ_EVENT_CHANPRESS;
+ break;
+ case ASCII_a: ev_type = SND_SEQ_EVENT_KEYPRESS;
+ break;
}
#if DEBUG
post("initial midi NOTE:, arg1 = %d, arg2 = %d, arg3 = %d, arg4 = %d",ev_type,chan,param,val);