MIDI Channel Per-Note?

Discussions, advice, bug reports and much more about the "bach" environment.
Post Reply
kingumfufu
Posts: 11
Joined: Tue Dec 01, 2015 11:50 pm

MIDI Channel Per-Note?

Post by kingumfufu » Thu May 04, 2017 12:28 am

Hello,

Is there a way to assign a MIDI channel on a per-note basis instead of per staff? I'm guessing that the answer is no, as I didn't see it in the documentation, and that I should do this using slots. Basically I'm looking for a way to sequentially assign MIDI channel numbers between 2-16 (then wrapping back around) to all of the notes on my staves. I'd then like to sort them on the way out and send them to an MPE object.

Thanks!
B

danieleghisi
Site Admin
Posts: 1349
Joined: Fri Dec 03, 2010 1:25 pm

Re: MIDI Channel Per-Note?

Post by danieleghisi » Thu May 04, 2017 4:40 pm

Hi, you guess correctly! ;)
Nothing prevents you from using an integer slot as MIDI channel, then substitute the actual MIDI channel from the playout syntax with the value of that slot, so that you can even directly use bach.ezmidiplay after the substitutiom. It should be fairly easy.
Hope this makes sense...
d

kingumfufu
Posts: 11
Joined: Tue Dec 01, 2015 11:50 pm

Re: MIDI Channel Per-Note?

Post by kingumfufu » Thu May 04, 2017 8:12 pm

Okay thanks.
I'll look into it!

B

danieleghisi
Site Admin
Posts: 1349
Joined: Fri Dec 03, 2010 1:25 pm

Re: MIDI Channel Per-Note?

Post by danieleghisi » Thu May 04, 2017 9:39 pm

If you need a quick snippet, this is how you might do it

<pre><code>
----------begin_max5_patcher----------
2069.3oc6bszaiaCD9ryuBCcpEHcAI06dpEnW1C8WvhBCZI5XtQlTPhNIdK5
+8xGRxTRTt1NIdcy5DDKmY3iY93vwyLxT+8cy7VxegT6M+Wm+k4yl822Mall
jhvrl+el2F7KYE3Zcy7Xjm4K+p28FVBxKBM4k3r0eh7sMzbZYAdWKe11MTVA
Qn6q+dh7shVpnFp0hcED8X014RrHaMk8vhJRlvHiAAoeBb+bTRr5Rp9UD5Sf
4+USeLCrXWIwzA4fM2ixjcusEzb8jHUheAB8Tz9m6tS8x8uNDnbdMQrPA.Yq
wLFoXAtdQcAW3DKfNwB34fEAZT.FhNBvvIJ.5MIjpFcuQ4m4shVPdhTUS4LK
gblGtrzh7LqtnPrux0CT78cjnLCI+NRUjmns8G0QEWIUUgTO2VY.gWhB71OL
7bREaKUKJFhx0t6ZGvVzAnPC8KQA5KAIf8PibM9gBd1iDML.ZIxKILJqrhTS
XBrnQx5XmSVg2VHVrhyD0zuoENnB1cveENiLYmY3MFM62qn3hVcy6gJZNmoD
hd3rhb6z8E4BsY41VYzsfgKczY4JrDSlfYsTI2VuDWoVFVZL4ZWG7DbdQeVc
8qfrRzvtjJs06ihBd4zLqnOr9.8cIWxbygFaMm5EaYFtKj6KEKpwO0GsE3hh
lMp8G9WvL5FrfHnlk.DniIggkJ555rJdQQO80v4IGbxkVvYjmo4h05Ix1XP1
bZYqQjW2pbN8ARsnOMA9g59TF4BPRZ6xlcnKDjMR2rhAMnmyb6si1tz5Q+Pt
1b3fWJA0y8s46xA+zN1lPylvAWndeKBpuDGNz81+gKtgt4h7ZIq822323cBn
djrqdNiKHyYaKJl+aORHkygSBbvIAN+yG3fwA5KQGKxcu4ukX1CShhAWbTDN
+2jcJmTJVOGcFHH5bPPDBpwNeCRF5e7P3AgO+KI7IcQhydTYEdFvV54.avvD
MdALvF3HgsUEbrnMPs6G++1+0RZJDF8VhvZfZRvC715tKUiclfU76d8L81kX
OYY7MaHLwHgfxxIuXEG0aBlYjwyvhCbNfVf1GGJEc.TyBVRe0vx9ftJnro9z
Vsfp36Fup4aqxZWBMFsxvT6IyxnGDTVWHneo08gLl1dsaMMOmvFBe4zZU.Kl
PmNp01SUhCFIItk3nqFI1+DjXzUgDmbjRbv4fw1dUpxMI8A+tpFn2J038Y0H
5HUizqp8nvKnDO+utyNabOURY4KLIft.KDUzkaEFWl1kW3jRTRl09RbQSZPc
oQenrl1mZ0c6k2SrjO5voz494pVNQMDaJFhj2RigXLHEj1URG7pUVejQXWoX
TAskwKL0FwtvElfn5WOGSfeleZElm3xTPUXQyP68SpHj948E6Y4Cp5P0qpEc
IpN3CgSrGyZY7iTUzrcxEL1Rbj8zzL6RW4n1GMyeiz0YQ54tLJdkT0haNUTI
ijt0dVkF0dEpfyKcxvUxPQZAGpiEMDY9OjULBdSVQloyQx0e8B72a4yxvKjh
CcIsfJ1MzbnoZPpfysvlAZicQ5ZEomWyKHKT1hKxwB7BP2OMCgwLswHPM1T1
JdKAXKCs9Ju9me9O9bS8JMFMsMPqz6i2dOCYRYpKY8oZVqjuYwKM+p1yrPGI
eTPGQkmFUhAwnnTeTPxw2gnjj3vPTuIUpckG8jB5KujdU4qGul0lyafMkB53
0qzv3fPTRuwXMQUjL06vaE79BWFub2yqIr5RoYk2vYGmI2NVaTPbNlk+bEUP
5OBqjFH7mUVdqkswdH5ZCZnYhxNZ9psrrwnUqghatFqEv4aq.NGap2cSDUAW
6SYmpDqCri3avT1ERQMS1qPc6LbU0VjWgG3O36tMouSaRo6oBZsXReWiYdAs
HS..XTRZzUnSKoUTRZRPLH36p2K36gkRfauWJcXZakIX+A0+0+q9Ht2Eijvo
bmbRgAcyMxGW2HQS6F4.tPt493GB2GwNMNz2+Em1Fi43xz3CQxCIt22PKHG3
Secx8M.hR.Hne3.2Se2sdRcBQ0kS4YYLmKoikHH.BQfKgikq8jPf.mqbEEES
T9jwb9vtuGBchMPnajgwYjqOj4cY6Nzc8TfnaHi6r5g92PF2YwBCtgLtScCF
dCYbmxBL5Fx3NdcX7Mjwc35vjaHi6nzgo+viLnQQAmuS9NZVsanwM2lajXt2
qCf.I9.v018OaTnvE6plDdlp1.dEde.u0hihEFWInYaKzYCNABcflz.U3WIT
E6m3GcssMaTvwVM2oGHWba.n0eDAH2wHitEiLxcLxnawHibGiL5VLxH2wHit
EiLxcLxnawHibGiL5VLx9tqTrO3GZjwdp1rQND0i+lIxED6qVcYMuJu2aruo
BladT60IwQGeG2tPSn+kdBCtzSX3kbBs+x3w2VNHsfM3pGIUCIt+v4WO151J
Gi1uxr641ZQOlyOcT6GgHTLz2OTcSRz2UxXDXeoWNx6kYDHFDmDb7c.FkhfQ
lSjm8WIX6ccPa.EL35QJdxLCfA.PnejYZCgogAnSU6PAoomh1gBQgQoQGT6P
uAZGJPpLQw.jQ6PRUMMJ3D0tvnHH7ZbsSJTRyJoxkpmVeXbTTT7opcIovv2Z
sy+MP6LyleXT.v+jMHgAwgWka2.QwI99wIFmI9IxMdwu6KYu5saf9mJkgmjg
L9Vln6LhXcJcz8n+wszbncFdfnZN5NiNHTpmvI6OgSSbJnz2m58MZzQfZ7we
ZzgH5nkG6i64ThC3LEGCZM3YyhRRF7LYYvyikwOKVl94vxvmAKxY9et6eA.y
E0FK
-----------end_max5_patcher-----------
</code></pre>

kingumfufu
Posts: 11
Joined: Tue Dec 01, 2015 11:50 pm

Re: MIDI Channel Per-Note?

Post by kingumfufu » Fri May 05, 2017 4:49 pm

This is amazing, THANK YOU!

The only other aspect I need to figure out is if there's an easy way to set the slot 1 values for existing notes in a sequential, programmatic way, so going from 2 to 16 and wrapping back around (channel 1 is avoided using MPE). Is the smartest way to do this using "addslot"? Maybe "addslot (1 $1)" with a counter attached? Or is there a better way of doing it by using "changeslotvalue 1 1 (1plus)" kind of thing?

I know that I don't quite have the answer but I'm circling around it ;)

Regardless, thanks again!
Really helpful.

B

kingumfufu
Posts: 11
Joined: Tue Dec 01, 2015 11:50 pm

Re: MIDI Channel Per-Note?

Post by kingumfufu » Fri May 05, 2017 5:45 pm

PS: Assigning random MIDI channel values could work as well, though as far as I can tell "random" is not one of the available commands (along with plus, minus, times, div).

kingumfufu
Posts: 11
Joined: Tue Dec 01, 2015 11:50 pm

Re: MIDI Channel Per-Note?

Post by kingumfufu » Sat May 06, 2017 12:07 am

Actually I think I've hobbled together something that works. Not sure it's the most elegant, but...

<pre><code>
----------begin_max5_patcher----------
2745.3oc6bs0aihjE94jeEHq8gtkxFU2Alm5UZeYdXj12asxBapXyzXvBJ2c
ROZ9uu0E.ykBavASXGMIJFmpfpNmuy8hB9iGeX0lzW44qb9Emu57vC+wiO7f
tIUCOT7+Or5PvqaiCx0m1psoGNvSDqdxzmf+pP2d1ojjnjcNh8Yom1s2IIUH
G3hyJ4zgnjXtPODvhFyEuEy0Wa4ocLPrcubPVmw2JLDEAxdF7jCg7L8IGHAo
9GD3Yfy+87PmdRTN1fhVeIMQjG8S8vCUWjo4nP87kt42+mDP0rlwykbTfHJM
o9LC70yLTMy.0W0Sq5Z9yGeT8wSuSHS1ezNMn8a+5+9Wc1tOHIgGOAfFBPTz
KDnwtoD0v9WA0P.pZx78J.raG0R3+PNic.sS+LprMCGHd6H2L2q1Djra0SmO
FIA85r7Y3DMF3jpUDv9Ps9floPndASrETCuZBUa9ORjO2423SfdBVyKtZ9Cp
k3NX7nTSPDqpIvUSmDO33QdRnSPbbuB9djxiBLfdFwrm11gwthXF1kqQ92BW
u4jPjlbYc5If8JThgZCSsTS+4H3N5DJSENaj+Fd5vwbdrjFkNQbLeavF2MtX
UCEW+zgUTjw8o+UTEHVhtPlPvZSv18OeJ4Xv1uohp1KB8RbZfnzu2Sc++5+U
1zDfVHLvDhFafK7UfK+tvE7lrbjC6FdV+NEd5Fsd1FjHTAi2wqedVcYn4UJU
mi.8ZQFPVBc1iwFD5cFwyBNvE7r07jfMFREb4fvPF8YWIE4g0Zv0IroSq7mw
Nw7jKh9SQv2RLF5pvXr+.w35NtPSss31zXkqFmuHmXGwXiJguA1m3AMwnwiO
rDwchcbG4r4pdoK7uLUQuHXbsLZukbvfSIJrM8ThzhzA5.o8BEs751exnza.
IbMe5N9PSvaJYzCxbNC1w6fDxft5R8b9GRrXrVBixQ.QVFipFPS9Yt9i2P3d
nAfleM.DzjuNAdqp.joTCHHLLONU37InTG3y2UUfRN2n7aTDFmJ.dpCEv+4g
nvniwAucwHg8K5GUz.pG8YpqTxCUNA07uu63iHBmxxyNJSbWrVgBEKfw5f70
JMh6Z0Z0QBrqIQcS95iSg.BZLIxzIM.PABHK1MJl+cdVdyb0dPUUZslen1kn
fseOUOPtOU0TThoIbUSY7uGUd8maMHSxpBIedJy.BuxHqNOLog7rjSQZRwzn
T.9X4.VhNXpVqfh0GXl3kDuZq.jTXuKNc623g0xmTJqjkZGkzNA0ptC4uDbJ
Vr19BE0r+WB1x68hSjozp4t+UVTPYc8OrZWVTXZhhHZf0plKmNYJQTiztNyn
OijfiVtXoTVhK8zYtjIOkuIHSIJJRtFU1oHMMtYWUWWL+EQQ2GijJ8MQQQ5w
96LKZ29KbsaRkcd3Ristm70xBB08tVZfJVmG78lnsHHNtvhs4v+ZPRzg.AWD
YDAHPUmlBL1muMSlfaC90zy2szSnTKdK+GQgh85Iptxf7ziNVpDspRJGFsim
KZ1lHXWdyV53FP1zoMEVoqE7CRmthVmPiUyttIYceaMZ+R93r3tWRA4N3582
u2sd802C60mmNSxtP8AWZaWb86lqsqN1pxl0N9K7cbm.puweK2jXXxo3Xmu7
MN+XUBhWnhw10LzaXhaADgtl0EmMDTDaGEIyNJBc9h7hB4GE6cPWEAuGnGBY
p9zrPOPJd.vGxN7gmS3qyZlM8qa1DgvPpmo9VCBCFBB6aGgQSIBqYqa0cG3V
PBycNxjwBt5yw6syq97TdqTZO+QIg7WqkK0jfYFZa0jpePL053iFLr.rCK9u
aX4bRWwQI8EsUyBp9siW4omx1VpAUHsbZxMxrGDQIUof90RuusOu8Qgg7j1b
bXTtJgkv1smlEZRweXB76EaflJ1.bWXC1.YC+agMtKTrRu.9+cT7PvX1hghw
ifhQKBJVYlwF.EimHL1b6UppHekpnrv0lBPWGHDYQaNILtLquDCipPIYU6aB
hKJCppL5KU0z4Rqd7L8N1aRsJcJcsemWTGSJXlet7sApm+ZdyA9dprNRECUD
RY0mTmymOeBa1oVUohdg1WCIVQixheS+QdZbZ86VldFxkoDFolW0nTTUPyEL
xbZ0WuH8noVsj5iVtH3kWpEBjVMFGiTBmvHQV48P7qpaVopv4xSINM8XMRn9
VywxZmXOiQnotPc9RTjYq9bgM4i2f2jOUqiuAwabAU02up2kww.WGNIZvBEK
VVw8rUs1X9kK7fNq8sRgUVSHo3CXMV5G6Si4qUJhqCCDAqAU+T.yFczBkGE0
Gk7RZYCvxNzzs7nZeWUrpkFksxSPqAeNc+ycHqHScXayVMBZ4WV+ZwuJCl05
BIXjpFUtYTY26hX9XDwa3W.yyykRQMlTI2cbvSJnI8xarDeM5qXY5tIt47nX
VPngOF9TWBE0bL1yUKUl5aAmDoUTY0IfZKN02GhWNkrsKWUJPs2qQpBtcYJ3
8gV2IQ4apU8r5+9bK4b5gfnjYhAMS16fMqzmTK7WZVPK60qopfsppHstiixE
8Z52syYTQwC.fLOe1xzl2y2i3BHytMOwtMuZJ5WT1S2+E0pejBSvrKCo8YLN
pXv+sQ3GlQHqeivKX.92FeKAiOWqxN85laUz0sGaRt4fx8rq0EEyufmeq8NA
bfG.AwzV1dWiC7sxAxJR6g561ybZ0vf.nrfx4vp4clcGDXEXiii6ortt87Qo
TCgVIcHzNgmjlvWHDt8pufnEOgauV.HdwS31y8ERV7Dt8D9TabxENgaOQGHa
wS31ixCcW7Dt8f7pmFhENgaO1NzeoS3nNwNCeS9sns4iixWEt58Q6.OL.LRZ
uSvy32x5kx6KS1UwqleTuSzyfLQz1Sw5jiFKzG7NY.WrGlMRFnSTT01rYOOH
bjz99O.Z2dfTzhOPJxdfTzhOPJxdfTzhOPJxdfTzhOPJxdfTzhOPJxdfTzhO
PJ1dQnXvRlvOeVp8BVPRXd26Upd6Sd9XsKYeZVXiuTuZeyhtTdrW1zxcyall
P7bOgj4dBoy4Ddt2cYomN1JGlCAYeim0twyOzP4Epbm67SCRsG6RHtEKHmKB
bt9gAtLdLfKv0iL7K.x7QPlYu5VeeFT2vgTGS.sNNPxiv7TYCqlQJzmRPikw
PtT5XXLDEQYp6zwEXLHXB3LeLCYlQHA3yHijwnLFDN0RLHbBXLJC5h0SIF5x
XL2wxYd9P5jyYnIfyLSGlxH.7nUDgD2omqvS.WgjVXTCm4QwL26t7ZPlXSgy
CnmqpHG4TRv9LHfNZYlu2j6UTuLfSgLiY3LJBicwi1eOgN4dOPSiWQngu7ID
lKaz7kOCO070EMx.M2cls2Yd5GP9p8p4D97luMlGjU6E+y87UN.077hQbu0m
2bHq9SZs95Z9XSXPh1ar4B7nyFZVu.tmm9A7LRzcmL2cWL2QvLTxAiG.4.wy
F8.GD83NazCBMT7gLT5oTcuwC.xsSfzgnOMeJT5oBeE5A4OuzC5ZBv4kbfWS
b4Nuzy0Tevym8eKMiOZw0fL+0vC7VM+QuO+kCAuz5Sv4w+c8mWm9Deix5uMd
AmA+4PuONJjLjDDZwF2UIp6.7X4NujyU8mylO5gsnbX4tnnlAEbY9x0cQgMp
WaQCvSz7QOCwyM383WDzoNpVuAlTjVq27RsdqK08MtT+uskZ+lVRNy+4i+Ov
tOm+9
-----------end_max5_patcher-----------
</code></pre>

Post Reply