Csound Csound-dev Csound-tekno Search About

[Csnd] More than 16 MIDI channels

Date2019-12-17 05:48
FromJosh Moore
Subject[Csnd] More than 16 MIDI channels
Is there a way to map more than one MIDI port to csound? Ie, channel 1-16 being one MIDI port and channel 17-32 being the second?
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-17 06:37
FromVictor Lazzarini
SubjectRe: [Csnd] More than 16 MIDI channels
Not possible, you can only have one port at a time.

Prof. Victor Lazzarini
Maynooth University
Ireland

On 17 Dec 2019, at 05:48, Josh Moore <kh405.7h30ry@gmail.com> wrote:

Is there a way to map more than one MIDI port to csound? Ie, channel 1-16 being one MIDI port and channel 17-32 being the second?
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-17 06:51
FromJosh Moore
SubjectRe: [Csnd] More than 16 MIDI channels
I guess if I have more than 16 instruments, OSC it is then. :P

On Mon, Dec 16, 2019 at 10:37 PM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Not possible, you can only have one port at a time.

Prof. Victor Lazzarini
Maynooth University
Ireland

On 17 Dec 2019, at 05:48, Josh Moore <kh405.7h30ry@gmail.com> wrote:

Is there a way to map more than one MIDI port to csound? Ie, channel 1-16 being one MIDI port and channel 17-32 being the second?
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-17 06:58
FromVictor Lazzarini
SubjectRe: [Csnd] More than 16 MIDI channels
yes, or straight UDP.

We discussed this situation before and Csound would require main surgery to allow for more than one port. We could look at it again for 7 if there is enough interest.

Prof. Victor Lazzarini
Maynooth University
Ireland

On 17 Dec 2019, at 06:52, Josh Moore <kh405.7h30ry@gmail.com> wrote:

I guess if I have more than 16 instruments, OSC it is then. 

On Mon, Dec 16, 2019 at 10:37 PM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Not possible, you can only have one port at a time.

Prof. Victor Lazzarini
Maynooth University
Ireland

On 17 Dec 2019, at 05:48, Josh Moore <kh405.7h30ry@gmail.com> wrote:

Is there a way to map more than one MIDI port to csound? Ie, channel 1-16 being one MIDI port and channel 17-32 being the second?
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-17 13:51
FromBernard Geyer
SubjectRe: [Csnd] More than 16 MIDI channels
I think it's not so much to have more than 16 channels, that to have access
to the midi device.
This is one thing I miss from supercollider:
	var port = MIDIIn.findPort(deviceName, portName)
This should really be implemented!

In the moment (because I need multiple devices, but not to much channels) I
use Midi Patchbay from Pete Yandell  to redirect multiple midi inputs to Iac
Driver, by assigning different devices to other channels.
There are equivalent programs for Windows and Linux.

Of course, that is not enough if we want to use f.e. some midi controllers +
Role Seaboard




--
Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2019-12-17 13:58
FromVictor Lazzarini
SubjectRe: [Csnd] More than 16 MIDI channels
That's something not possible with the current midi implementation in Csound. 

It's much higher level than that, but it has some benefits, for instance, the seamlessness of instantiation and de-instantiation.

I think we'll do well to have ports mapped to channels > 16, which will allow us to keep the very useful mechanisms we have in the system.

Prof. Victor Lazzarini
Maynooth University
Ireland

> On 17 Dec 2019, at 13:35, Bernard Geyer  wrote:
> 
> I think it's not so much to have more than 16 channels, that to have access
> to the midi device.
> This is one thing I miss from supercollider:
>    var port = MIDIIn.findPort(deviceName, portName)
> This should really be implemented!
> 
> In the moment (because I need multiple devices, but not to much channels) I
> use Midi Patchbay from Pete Yandell  to redirect multiple midi inputs to Iac
> Driver, by assigning different devices to other channels.
> There are equivalent programs for Windows and Linux.
> 
> Of course, that is not enough if we want to use f.e. some midi controllers +
> Role Seaboard
> 
> 
> 
> 
> --
> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
> 
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2019-12-17 17:06
FromBernard Geyer
SubjectRe: [Csnd] More than 16 MIDI channels
> I think we'll do well to have ports mapped to channels > 16, which will
allow us to keep the very useful mechanisms we have in the system. 

Yes, I understand, this system is very useful. In this case, it's just about
organizing code differently, for example putting channel offsets in global
variables.




--
Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2019-12-20 22:36
FromPartev Sarkissian <0000060b2ef1338e-dmarc-request@LISTSERV.HEANET.IE>
SubjectRe: [Csnd] More than 16 MIDI channels

Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels.
MIDI select pull-down menu on a DAW, would come up as an A & B selection.

Been a while since we used that function. You might want to check it out on the
Roland site, get some idea how they implemented that and try to do the equivalent
on Csound. Came in handy on a couple of film scores we did.


-PBS

==========================



-----Original Message-----
From: Bernard Geyer <micamusic2@GMAIL.COM>
To: CSOUND <CSOUND@LISTSERV.HEANET.IE>
Sent: Tue, Dec 17, 2019 8:49 am
Subject: Re: [Csnd] More than 16 MIDI channels

> I think we'll do well to have ports mapped to channels > 16, which will
allow us to keep the very useful mechanisms we have in the system.

Yes, I understand, this system is very useful. In this case, it's just about
organizing code differently, for example putting channel offsets in global
variables.
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-21 04:57
FromJosh Moore
SubjectRe: [Csnd] More than 16 MIDI channels
Yes, this works by setting --port=10000 as a flag in the csd.

Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer.

----------------------
Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation.

And now I'm wondering if live coding works in csound~ and I'm going to have to try that now. 

On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:

Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels.
MIDI select pull-down menu on a DAW, would come up as an A & B selection.

Been a while since we used that function. You might want to check it out on the
Roland site, get some idea how they implemented that and try to do the equivalent
on Csound. Came in handy on a couple of film scores we did.


-PBS

==========================



-----Original Message-----
From: Bernard Geyer <micamusic2@GMAIL.COM>
To: CSOUND <CSOUND@LISTSERV.HEANET.IE>
Sent: Tue, Dec 17, 2019 8:49 am
Subject: Re: [Csnd] More than 16 MIDI channels

> I think we'll do well to have ports mapped to channels > 16, which will
allow us to keep the very useful mechanisms we have in the system.

Yes, I understand, this system is very useful. In this case, it's just about
organizing code differently, for example putting channel offsets in global
variables.
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-21 10:00
FromVictor Lazzarini
SubjectRe: [Csnd] More than 16 MIDI channels
I had a look at the portmidi backend code and it appears we could map each device messages
to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’. 
I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here.  
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 21 Dec 2019, at 04:57, Josh Moore  wrote:
> 
> Yes, this works by setting --port=10000 as a flag in the csd.
> 
> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer. 
> 
> ----------------------
> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation. 
> 
> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now. 
> 
> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
> 
> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels. 
> MIDI select pull-down menu on a DAW, would come up as an A & B selection. 
> 
> Been a while since we used that function. You might want to check it out on the 
> Roland site, get some idea how they implemented that and try to do the equivalent 
> on Csound. Came in handy on a couple of film scores we did. 
> 
> 
> -PBS 
> 
> ==========================
> 
> 
> 
> -----Original Message-----
> From: Bernard Geyer 
> To: CSOUND 
> Sent: Tue, Dec 17, 2019 8:49 am
> Subject: Re: [Csnd] More than 16 MIDI channels
> 
> > I think we'll do well to have ports mapped to channels > 16, which will
> allow us to keep the very useful mechanisms we have in the system. 
> 
> Yes, I understand, this system is very useful. In this case, it's just about
> organizing code differently, for example putting channel offsets in global
> variables.
> 
> 
> 
> 
> 
> --
> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
> 
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>         https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2019-12-21 10:10
FromVictor Lazzarini
SubjectRe: [Csnd] More than 16 MIDI channels
I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
Csound 7.
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 21 Dec 2019, at 10:00, Victor Lazzarini  wrote:
> 
> I had a look at the portmidi backend code and it appears we could map each device messages
> to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’. 
> I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here.  
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
> 
>> On 21 Dec 2019, at 04:57, Josh Moore  wrote:
>> 
>> Yes, this works by setting --port=10000 as a flag in the csd.
>> 
>> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer. 
>> 
>> ----------------------
>> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation. 
>> 
>> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now. 
>> 
>> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
>> 
>> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels. 
>> MIDI select pull-down menu on a DAW, would come up as an A & B selection. 
>> 
>> Been a while since we used that function. You might want to check it out on the 
>> Roland site, get some idea how they implemented that and try to do the equivalent 
>> on Csound. Came in handy on a couple of film scores we did. 
>> 
>> 
>> -PBS 
>> 
>> ==========================
>> 
>> 
>> 
>> -----Original Message-----
>> From: Bernard Geyer 
>> To: CSOUND 
>> Sent: Tue, Dec 17, 2019 8:49 am
>> Subject: Re: [Csnd] More than 16 MIDI channels
>> 
>>> I think we'll do well to have ports mapped to channels > 16, which will
>> allow us to keep the very useful mechanisms we have in the system. 
>> 
>> Yes, I understand, this system is very useful. In this case, it's just about
>> organizing code differently, for example putting channel offsets in global
>> variables.
>> 
>> 
>> 
>> 
>> 
>> --
>> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
>> 
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>        https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> 
> 
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2019-12-21 11:59
FromJosh Moore
SubjectRe: [Csnd] More than 16 MIDI channels
Yeah in the meantime this seems to be a decent workaround, I can still see uses for it for some people but for my environment I'm pretty happy with it, if I need more than 16 instruments I can just spawn more instances with different port numbers and the multiple processes can be mixed on the same audio chain wrapped in that manner since they all talk to the same audio driver. I'm not too fond of JACK's performance so I usually use the raw sound card output with high priority.

It also works for Cabbage as well. I created a blank cabbage instrument with just csound console for GUI and 32 channels output, saved it as a VST, and I've got vim talking to it and I got raw MIDI going to it so I can live code in the DAW even. Pretty neat. 

On Sat, Dec 21, 2019 at 2:10 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
Csound 7.
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 21 Dec 2019, at 10:00, Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
>
> I had a look at the portmidi backend code and it appears we could map each device messages
> to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’.
> I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here. 
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
>
>> On 21 Dec 2019, at 04:57, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
>>
>> Yes, this works by setting --port=10000 as a flag in the csd.
>>
>> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer.
>>
>> ----------------------
>> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation.
>>
>> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now.
>>
>> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
>>
>> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels.
>> MIDI select pull-down menu on a DAW, would come up as an A & B selection.
>>
>> Been a while since we used that function. You might want to check it out on the
>> Roland site, get some idea how they implemented that and try to do the equivalent
>> on Csound. Came in handy on a couple of film scores we did.
>>
>>
>> -PBS
>>
>> ==========================
>>
>>
>>
>> -----Original Message-----
>> From: Bernard Geyer <micamusic2@GMAIL.COM>
>> To: CSOUND <CSOUND@LISTSERV.HEANET.IE>
>> Sent: Tue, Dec 17, 2019 8:49 am
>> Subject: Re: [Csnd] More than 16 MIDI channels
>>
>>> I think we'll do well to have ports mapped to channels > 16, which will
>> allow us to keep the very useful mechanisms we have in the system.
>>
>> Yes, I understand, this system is very useful. In this case, it's just about
>> organizing code differently, for example putting channel offsets in global
>> variables.
>>
>>
>>
>>
>>
>> --
>> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
>>
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>        https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-21 12:11
FromVictor Lazzarini
SubjectRe: [Csnd] More than 16 MIDI channels
Good. I am not quite sure how you’re making it work, but sounds interesting. How are you using the UDP server to
enable it?
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 21 Dec 2019, at 11:59, Josh Moore  wrote:
> 
> Yeah in the meantime this seems to be a decent workaround, I can still see uses for it for some people but for my environment I'm pretty happy with it, if I need more than 16 instruments I can just spawn more instances with different port numbers and the multiple processes can be mixed on the same audio chain wrapped in that manner since they all talk to the same audio driver. I'm not too fond of JACK's performance so I usually use the raw sound card output with high priority.
> 
> It also works for Cabbage as well. I created a blank cabbage instrument with just csound console for GUI and 32 channels output, saved it as a VST, and I've got vim talking to it and I got raw MIDI going to it so I can live code in the DAW even. Pretty neat. 
> 
> On Sat, Dec 21, 2019 at 2:10 AM Victor Lazzarini  wrote:
> I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
> We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
> Csound 7.
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
> 
> > On 21 Dec 2019, at 10:00, Victor Lazzarini  wrote:
> > 
> > I had a look at the portmidi backend code and it appears we could map each device messages
> > to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’. 
> > I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here.  
> > ========================
> > Prof. Victor Lazzarini
> > Maynooth University
> > Ireland
> > 
> >> On 21 Dec 2019, at 04:57, Josh Moore  wrote:
> >> 
> >> Yes, this works by setting --port=10000 as a flag in the csd.
> >> 
> >> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer. 
> >> 
> >> ----------------------
> >> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation. 
> >> 
> >> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now. 
> >> 
> >> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
> >> 
> >> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels. 
> >> MIDI select pull-down menu on a DAW, would come up as an A & B selection. 
> >> 
> >> Been a while since we used that function. You might want to check it out on the 
> >> Roland site, get some idea how they implemented that and try to do the equivalent 
> >> on Csound. Came in handy on a couple of film scores we did. 
> >> 
> >> 
> >> -PBS 
> >> 
> >> ==========================
> >> 
> >> 
> >> 
> >> -----Original Message-----
> >> From: Bernard Geyer 
> >> To: CSOUND 
> >> Sent: Tue, Dec 17, 2019 8:49 am
> >> Subject: Re: [Csnd] More than 16 MIDI channels
> >> 
> >>> I think we'll do well to have ports mapped to channels > 16, which will
> >> allow us to keep the very useful mechanisms we have in the system. 
> >> 
> >> Yes, I understand, this system is very useful. In this case, it's just about
> >> organizing code differently, for example putting channel offsets in global
> >> variables.
> >> 
> >> 
> >> 
> >> 
> >> 
> >> --
> >> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
> >> 
> >> Csound mailing list
> >> Csound@listserv.heanet.ie
> >> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> >> Send bugs reports to
> >>        https://github.com/csound/csound/issues
> >> Discussions of bugs and features can be posted here
> >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> > 
> > 
> > Csound mailing list
> > Csound@listserv.heanet.ie
> > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> > Send bugs reports to
> >        https://github.com/csound/csound/issues
> > Discussions of bugs and features can be posted here
> 
> 
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>         https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2019-12-21 12:46
FromJosh Moore
SubjectRe: [Csnd] More than 16 MIDI channels
Well, Steven Yi's Csound plugin uses port 10000, but he allows changing of it by :call Csound_set_port(n) per the documentation.

I use this template for live coding, and modify flags to suit my needs, I've included the copypasta from Cabbage but anyway...

It's a matter of just setting the flags in CsOptions to enable the UDP server. You just have to reflect the csd with the port vim is sending to is all. The worst that can happen is Csound won't bind to the port if it's already in use.

The first 16 instruments map to Csound's MIDI port channels 1-16, and I've got the rest always on in case I want to add effects sends/returns to the template using zak. 

Certainly not a documented thing. I tried it on a whim basically. in theory I might be able to use an include and hard link the cabbage plugin to the external csd so that when I save the coded csd and re-open the project it will re-call the instruments and settings. I also might be able to create some global cabbage controls to have higher precision automation for things that need it.
-------------------------------------------------------
<Cabbage>
form caption("Untitled") size(800, 600), colour(58, 110, 182), pluginid("def1")
csoundoutput bounds(0, 0, 800, 600)
</Cabbage>
<CsoundSynthesizer>
<CsOptions>
-+rtmidi=NULL -M0 --port=10000  
</CsOptions>

<CsInstruments>

ksmps = 16
nchnls = 32
0dbfs = 1

                                                                                             
instr 1

endin

instr 2

endin

instr 3

endin

instr 4

endin

instr 5

endin

instr 6

endin

instr 7

endin

instr 8

endin

instr 9

endin

instr 10

endin

instr 11

endin

instr 12

endin

instr 13

endin

instr 14

endin

instr 15

endin

instr 16

endin

instr 17

endin

instr 18

endin

instr 19

endin

instr 20

endin

instr 21

endin

instr 22

endin

instr 23

endin

instr 24

endin
</CsInstruments>

<CsScore>
 
i 17 0 z
i 18 0 z
i 19 0 z
i 20 0 z
i 21 0 z
i 22 0 z
i 23 0 z
i 24 0 z



</CsScore>
</CsoundSynthesizer>



On Sat, Dec 21, 2019 at 4:11 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Good. I am not quite sure how you’re making it work, but sounds interesting. How are you using the UDP server to
enable it?
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 21 Dec 2019, at 11:59, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
>
> Yeah in the meantime this seems to be a decent workaround, I can still see uses for it for some people but for my environment I'm pretty happy with it, if I need more than 16 instruments I can just spawn more instances with different port numbers and the multiple processes can be mixed on the same audio chain wrapped in that manner since they all talk to the same audio driver. I'm not too fond of JACK's performance so I usually use the raw sound card output with high priority.
>
> It also works for Cabbage as well. I created a blank cabbage instrument with just csound console for GUI and 32 channels output, saved it as a VST, and I've got vim talking to it and I got raw MIDI going to it so I can live code in the DAW even. Pretty neat.
>
> On Sat, Dec 21, 2019 at 2:10 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
> I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
> We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
> Csound 7.
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
>
> > On 21 Dec 2019, at 10:00, Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
> >
> > I had a look at the portmidi backend code and it appears we could map each device messages
> > to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’.
> > I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here. 
> > ========================
> > Prof. Victor Lazzarini
> > Maynooth University
> > Ireland
> >
> >> On 21 Dec 2019, at 04:57, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
> >>
> >> Yes, this works by setting --port=10000 as a flag in the csd.
> >>
> >> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer.
> >>
> >> ----------------------
> >> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation.
> >>
> >> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now.
> >>
> >> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
> >>
> >> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels.
> >> MIDI select pull-down menu on a DAW, would come up as an A & B selection.
> >>
> >> Been a while since we used that function. You might want to check it out on the
> >> Roland site, get some idea how they implemented that and try to do the equivalent
> >> on Csound. Came in handy on a couple of film scores we did.
> >>
> >>
> >> -PBS
> >>
> >> ==========================
> >>
> >>
> >>
> >> -----Original Message-----
> >> From: Bernard Geyer <micamusic2@GMAIL.COM>
> >> To: CSOUND <CSOUND@LISTSERV.HEANET.IE>
> >> Sent: Tue, Dec 17, 2019 8:49 am
> >> Subject: Re: [Csnd] More than 16 MIDI channels
> >>
> >>> I think we'll do well to have ports mapped to channels > 16, which will
> >> allow us to keep the very useful mechanisms we have in the system.
> >>
> >> Yes, I understand, this system is very useful. In this case, it's just about
> >> organizing code differently, for example putting channel offsets in global
> >> variables.
> >>
> >>
> >>
> >>
> >>
> >> --
> >> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
> >>
> >> Csound mailing list
> >> Csound@listserv.heanet.ie
> >> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> >> Send bugs reports to
> >>        https://github.com/csound/csound/issues
> >> Discussions of bugs and features can be posted here
> >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> >
> >
> > Csound mailing list
> > Csound@listserv.heanet.ie
> > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> > Send bugs reports to
> >        https://github.com/csound/csound/issues
> > Discussions of bugs and features can be posted here
>
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>         https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-21 14:55
FromVictor Lazzarini
SubjectRe: [Csnd] More than 16 MIDI channels
I see, good solution.

I actually think I've found a way of enabling mapping of multiple ports without breaking the API. 

Prof. Victor Lazzarini
Maynooth University
Ireland

On 21 Dec 2019, at 12:46, Josh Moore <kh405.7h30ry@gmail.com> wrote:

Well, Steven Yi's Csound plugin uses port 10000, but he allows changing of it by :call Csound_set_port(n) per the documentation.

I use this template for live coding, and modify flags to suit my needs, I've included the copypasta from Cabbage but anyway...

It's a matter of just setting the flags in CsOptions to enable the UDP server. You just have to reflect the csd with the port vim is sending to is all. The worst that can happen is Csound won't bind to the port if it's already in use.

The first 16 instruments map to Csound's MIDI port channels 1-16, and I've got the rest always on in case I want to add effects sends/returns to the template using zak. 

Certainly not a documented thing. I tried it on a whim basically. in theory I might be able to use an include and hard link the cabbage plugin to the external csd so that when I save the coded csd and re-open the project it will re-call the instruments and settings. I also might be able to create some global cabbage controls to have higher precision automation for things that need it.
-------------------------------------------------------
<Cabbage>
form caption("Untitled") size(800, 600), colour(58, 110, 182), pluginid("def1")
csoundoutput bounds(0, 0, 800, 600)
</Cabbage>
<CsoundSynthesizer>
<CsOptions>
-+rtmidi=NULL -M0 --port=10000  
</CsOptions>

<CsInstruments>

ksmps = 16
nchnls = 32
0dbfs = 1

                                                                                             
instr 1

endin

instr 2

endin

instr 3

endin

instr 4

endin

instr 5

endin

instr 6

endin

instr 7

endin

instr 8

endin

instr 9

endin

instr 10

endin

instr 11

endin

instr 12

endin

instr 13

endin

instr 14

endin

instr 15

endin

instr 16

endin

instr 17

endin

instr 18

endin

instr 19

endin

instr 20

endin

instr 21

endin

instr 22

endin

instr 23

endin

instr 24

endin
</CsInstruments>

<CsScore>
 
i 17 0 z
i 18 0 z
i 19 0 z
i 20 0 z
i 21 0 z
i 22 0 z
i 23 0 z
i 24 0 z



</CsScore>
</CsoundSynthesizer>



On Sat, Dec 21, 2019 at 4:11 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Good. I am not quite sure how you’re making it work, but sounds interesting. How are you using the UDP server to
enable it?
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 21 Dec 2019, at 11:59, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
>
> Yeah in the meantime this seems to be a decent workaround, I can still see uses for it for some people but for my environment I'm pretty happy with it, if I need more than 16 instruments I can just spawn more instances with different port numbers and the multiple processes can be mixed on the same audio chain wrapped in that manner since they all talk to the same audio driver. I'm not too fond of JACK's performance so I usually use the raw sound card output with high priority.
>
> It also works for Cabbage as well. I created a blank cabbage instrument with just csound console for GUI and 32 channels output, saved it as a VST, and I've got vim talking to it and I got raw MIDI going to it so I can live code in the DAW even. Pretty neat.
>
> On Sat, Dec 21, 2019 at 2:10 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
> I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
> We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
> Csound 7.
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
>
> > On 21 Dec 2019, at 10:00, Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
> >
> > I had a look at the portmidi backend code and it appears we could map each device messages
> > to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’.
> > I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here. 
> > ========================
> > Prof. Victor Lazzarini
> > Maynooth University
> > Ireland
> >
> >> On 21 Dec 2019, at 04:57, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
> >>
> >> Yes, this works by setting --port=10000 as a flag in the csd.
> >>
> >> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer.
> >>
> >> ----------------------
> >> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation.
> >>
> >> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now.
> >>
> >> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
> >>
> >> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels.
> >> MIDI select pull-down menu on a DAW, would come up as an A & B selection.
> >>
> >> Been a while since we used that function. You might want to check it out on the
> >> Roland site, get some idea how they implemented that and try to do the equivalent
> >> on Csound. Came in handy on a couple of film scores we did.
> >>
> >>
> >> -PBS
> >>
> >> ==========================
> >>
> >>
> >>
> >> -----Original Message-----
> >> From: Bernard Geyer <micamusic2@GMAIL.COM>
> >> To: CSOUND <CSOUND@LISTSERV.HEANET.IE>
> >> Sent: Tue, Dec 17, 2019 8:49 am
> >> Subject: Re: [Csnd] More than 16 MIDI channels
> >>
> >>> I think we'll do well to have ports mapped to channels > 16, which will
> >> allow us to keep the very useful mechanisms we have in the system.
> >>
> >> Yes, I understand, this system is very useful. In this case, it's just about
> >> organizing code differently, for example putting channel offsets in global
> >> variables.
> >>
> >>
> >>
> >>
> >>
> >> --
> >> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
> >>
> >> Csound mailing list
> >> Csound@listserv.heanet.ie
> >> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> >> Send bugs reports to
> >>        https://github.com/csound/csound/issues
> >> Discussions of bugs and features can be posted here
> >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> >
> >
> > Csound mailing list
> > Csound@listserv.heanet.ie
> > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> > Send bugs reports to
> >        https://github.com/csound/csound/issues
> > Discussions of bugs and features can be posted here
>
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>         https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-22 12:19
FromChristian Bacher <000005d2745f1ec0-dmarc-request@LISTSERV.HEANET.IE>
Subject[Csnd] OSC support was Re: [Csnd] More than 16 MIDI channels

I am using OSC to solve this problem. In implementing this some feature requests popped up:

- adding native string split S[],SS and join S,S[]S opcodes for processing osc paths - may be also useful for other things.

- a default parameter in chnget:
chnget "name" [, idefaultvalue] ; returns idefaultvalue if and only if the channel does not exist yet i.e no chn or chnset was called before.

this popped while implemeting a loose coupling of single valued osc control messages to i/krate parameters using the channel system by making
the channel name and the osc path equal i.e. in the instrument i can write
kfreq chnget "/instr1/freq" and the osc handler (based on OSCraw) calls ' chnset val, "/instr1/freq" ' anyway when it receives the osc message "/instr1/freq" val
note - this is a nice to have to avoid having a lot of chnset calls for setting defaults in the global space - i am working with up to 40 instruments each with 20+ parameters

however to go a step further i can imagine a native osc support similar to midi (tbd):

1. there is a default port listening to osc messages

2. whenever a message /instr1/note 1 <note> <vel>  is received the instrument named "instr1" is activated with (note=p4,vel=p5) and with /instr1/note 0 <note> <vel> it is turned off.
    here also further parameters mapped to p6,p7,p8 etc could be added.

3. an opcode "oscget" for single valued messages: kfreq oscget "/instr1/freq",5000 -- an opcode which does the same as my implementation with the channel system (see above) and providing a default value.

4. some configuration possibilities e.g. defining the noteon / noteoff path format

Btw. the more advanced thing i have encountered as i wanted to play an instrument with different parameter sets in parallel without copypaste the instrument.
An example would be having an analog synth which can make pads/basses/leads depending on the krate parameters.

Using the OSC stuff the solution here was to add a "variant" information to the control and noteon messages (p6 = variant). I wonder how to do in csound without that?


On 12/17/19 7:58 AM, Victor Lazzarini wrote:
yes, or straight UDP.

We discussed this situation before and Csound would require main surgery to allow for more than one port. We could look at it again for 7 if there is enough interest.

Prof. Victor Lazzarini
Maynooth University
Ireland

On 17 Dec 2019, at 06:52, Josh Moore <kh405.7h30ry@gmail.com> wrote:

I guess if I have more than 16 instruments, OSC it is then. 

On Mon, Dec 16, 2019 at 10:37 PM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Not possible, you can only have one port at a time.

Prof. Victor Lazzarini
Maynooth University
Ireland

On 17 Dec 2019, at 05:48, Josh Moore <kh405.7h30ry@gmail.com> wrote:

Is there a way to map more than one MIDI port to csound? Ie, channel 1-16 being one MIDI port and channel 17-32 being the second?
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-23 12:15
FromJosh Moore
SubjectRe: [Csnd] More than 16 MIDI channels
Nice, that might be interesting for headless stuff over network. 

Here is kind of a random track I threw together testing all of this in Cabbage. Pretty much all the synths except the 303 is Csound, plus the kick drum, the rest is just samples, and there's some re-sampling as well going on in the project.

I've got some ideas for Rory too like a standard vst (or object) that comes with cabbage in which you can load a .csd from within it, live code to it, write, and then the location could also possibly be saved with the project. I'll wait a couple of days to see if he sees this thread and then if not I'll just post to the Cabbage forum. 

On Sat, Dec 21, 2019 at 6:55 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
I see, good solution.

I actually think I've found a way of enabling mapping of multiple ports without breaking the API. 

Prof. Victor Lazzarini
Maynooth University
Ireland

On 21 Dec 2019, at 12:46, Josh Moore <kh405.7h30ry@gmail.com> wrote:

Well, Steven Yi's Csound plugin uses port 10000, but he allows changing of it by :call Csound_set_port(n) per the documentation.

I use this template for live coding, and modify flags to suit my needs, I've included the copypasta from Cabbage but anyway...

It's a matter of just setting the flags in CsOptions to enable the UDP server. You just have to reflect the csd with the port vim is sending to is all. The worst that can happen is Csound won't bind to the port if it's already in use.

The first 16 instruments map to Csound's MIDI port channels 1-16, and I've got the rest always on in case I want to add effects sends/returns to the template using zak. 

Certainly not a documented thing. I tried it on a whim basically. in theory I might be able to use an include and hard link the cabbage plugin to the external csd so that when I save the coded csd and re-open the project it will re-call the instruments and settings. I also might be able to create some global cabbage controls to have higher precision automation for things that need it.
-------------------------------------------------------
<Cabbage>
form caption("Untitled") size(800, 600), colour(58, 110, 182), pluginid("def1")
csoundoutput bounds(0, 0, 800, 600)
</Cabbage>
<CsoundSynthesizer>
<CsOptions>
-+rtmidi=NULL -M0 --port=10000  
</CsOptions>

<CsInstruments>

ksmps = 16
nchnls = 32
0dbfs = 1

                                                                                             
instr 1

endin

instr 2

endin

instr 3

endin

instr 4

endin

instr 5

endin

instr 6

endin

instr 7

endin

instr 8

endin

instr 9

endin

instr 10

endin

instr 11

endin

instr 12

endin

instr 13

endin

instr 14

endin

instr 15

endin

instr 16

endin

instr 17

endin

instr 18

endin

instr 19

endin

instr 20

endin

instr 21

endin

instr 22

endin

instr 23

endin

instr 24

endin
</CsInstruments>

<CsScore>
 
i 17 0 z
i 18 0 z
i 19 0 z
i 20 0 z
i 21 0 z
i 22 0 z
i 23 0 z
i 24 0 z



</CsScore>
</CsoundSynthesizer>



On Sat, Dec 21, 2019 at 4:11 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
Good. I am not quite sure how you’re making it work, but sounds interesting. How are you using the UDP server to
enable it?
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 21 Dec 2019, at 11:59, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
>
> Yeah in the meantime this seems to be a decent workaround, I can still see uses for it for some people but for my environment I'm pretty happy with it, if I need more than 16 instruments I can just spawn more instances with different port numbers and the multiple processes can be mixed on the same audio chain wrapped in that manner since they all talk to the same audio driver. I'm not too fond of JACK's performance so I usually use the raw sound card output with high priority.
>
> It also works for Cabbage as well. I created a blank cabbage instrument with just csound console for GUI and 32 channels output, saved it as a VST, and I've got vim talking to it and I got raw MIDI going to it so I can live code in the DAW even. Pretty neat.
>
> On Sat, Dec 21, 2019 at 2:10 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
> I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
> We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
> Csound 7.
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
>
> > On 21 Dec 2019, at 10:00, Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
> >
> > I had a look at the portmidi backend code and it appears we could map each device messages
> > to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’.
> > I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here. 
> > ========================
> > Prof. Victor Lazzarini
> > Maynooth University
> > Ireland
> >
> >> On 21 Dec 2019, at 04:57, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
> >>
> >> Yes, this works by setting --port=10000 as a flag in the csd.
> >>
> >> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer.
> >>
> >> ----------------------
> >> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation.
> >>
> >> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now.
> >>
> >> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
> >>
> >> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels.
> >> MIDI select pull-down menu on a DAW, would come up as an A & B selection.
> >>
> >> Been a while since we used that function. You might want to check it out on the
> >> Roland site, get some idea how they implemented that and try to do the equivalent
> >> on Csound. Came in handy on a couple of film scores we did.
> >>
> >>
> >> -PBS
> >>
> >> ==========================
> >>
> >>
> >>
> >> -----Original Message-----
> >> From: Bernard Geyer <micamusic2@GMAIL.COM>
> >> To: CSOUND <CSOUND@LISTSERV.HEANET.IE>
> >> Sent: Tue, Dec 17, 2019 8:49 am
> >> Subject: Re: [Csnd] More than 16 MIDI channels
> >>
> >>> I think we'll do well to have ports mapped to channels > 16, which will
> >> allow us to keep the very useful mechanisms we have in the system.
> >>
> >> Yes, I understand, this system is very useful. In this case, it's just about
> >> organizing code differently, for example putting channel offsets in global
> >> variables.
> >>
> >>
> >>
> >>
> >>
> >> --
> >> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
> >>
> >> Csound mailing list
> >> Csound@listserv.heanet.ie
> >> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> >> Send bugs reports to
> >>        https://github.com/csound/csound/issues
> >> Discussions of bugs and features can be posted here
> >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> >
> >
> > Csound mailing list
> > Csound@listserv.heanet.ie
> > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> > Send bugs reports to
> >        https://github.com/csound/csound/issues
> > Discussions of bugs and features can be posted here
>
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>         https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-23 17:11
FromVictor Lazzarini
SubjectRe: [Csnd] More than 16 MIDI channels
I’ve implemented a “m” device in the portmidi backend (-Mm) to map all existing ports into higher channels.
It seems to be OK with normal single port operation, so I don’t think I broke anything, but I need to test with
multiple ports.
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 23 Dec 2019, at 12:15, Josh Moore  wrote:
> 
> Nice, that might be interesting for headless stuff over network. 
> 
> Here is kind of a random track I threw together testing all of this in Cabbage. Pretty much all the synths except the 303 is Csound, plus the kick drum, the rest is just samples, and there's some re-sampling as well going on in the project.
> https://www.youtube.com/watch?v=9ibKwNzz6k8
> 
> I've got some ideas for Rory too like a standard vst (or object) that comes with cabbage in which you can load a .csd from within it, live code to it, write, and then the location could also possibly be saved with the project. I'll wait a couple of days to see if he sees this thread and then if not I'll just post to the Cabbage forum. 
> 
> On Sat, Dec 21, 2019 at 6:55 AM Victor Lazzarini  wrote:
> I see, good solution.
> 
> I actually think I've found a way of enabling mapping of multiple ports without breaking the API. 
> 
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
> 
> On 21 Dec 2019, at 12:46, Josh Moore  wrote:
> 
>> Well, Steven Yi's Csound plugin uses port 10000, but he allows changing of it by 
>> :call Csound_set_port(n) per the documentation.
>> 
>> 
>> 
>> I use this template for live coding, and modify flags to suit my needs, I've included the copypasta from Cabbage but anyway...
>> 
>> It's a matter of just setting the flags in CsOptions to enable the UDP server. You just have to reflect the csd with the port vim is sending to is all. The worst that can happen is Csound won't bind to the port if it's already in use.
>> 
>> The first 16 instruments map to Csound's MIDI port channels 1-16, and I've got the rest always on in case I want to add effects sends/returns to the template using zak. 
>> 
>> Certainly not a documented thing. I tried it on a whim basically. in theory I might be able to use an include and hard link the cabbage plugin to the external csd so that when I save the coded csd and re-open the project it will re-call the instruments and settings. I also might be able to create some global cabbage controls to have higher precision automation for things that need it.
>> -------------------------------------------------------
>> 
>> form caption("Untitled") size(800, 600), colour(58, 110, 182), pluginid("def1")
>> csoundoutput bounds(0, 0, 800, 600)
>> 
>> 
>> 
>> -+rtmidi=NULL -M0 --port=10000  
>> 
>> 
>> 
>> 
>> ksmps = 16
>> nchnls = 32
>> 0dbfs = 1
>> 
>>                                                                                               
>> instr 1 
>> 
>> endin
>> 
>> instr 2
>> 
>> endin
>> 
>> instr 3
>> 
>> endin
>> 
>> instr 4
>> 
>> endin
>> 
>> instr 5
>> 
>> endin
>> 
>> instr 6
>> 
>> endin
>> 
>> instr 7 
>> 
>> endin
>> 
>> instr 8
>> 
>> endin
>> 
>> instr 9
>> 
>> endin
>> 
>> instr 10
>> 
>> endin
>> 
>> instr 11
>> 
>> endin
>> 
>> instr 12
>> 
>> endin
>> 
>> instr 13
>> 
>> endin
>> 
>> instr 14
>> 
>> endin
>> 
>> instr 15
>> 
>> endin
>> 
>> instr 16
>> 
>> endin
>> 
>> instr 17
>> 
>> endin
>> 
>> instr 18
>> 
>> endin
>> 
>> instr 19
>> 
>> endin
>> 
>> instr 20
>> 
>> endin
>> 
>> instr 21
>> 
>> endin
>> 
>> instr 22
>> 
>> endin
>> 
>> instr 23
>> 
>> endin
>> 
>> instr 24
>> 
>> endin
>> 
>> 
>> 
>>  
>> i 17 0 z
>> i 18 0 z
>> i 19 0 z
>> i 20 0 z
>> i 21 0 z
>> i 22 0 z
>> i 23 0 z
>> i 24 0 z
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> On Sat, Dec 21, 2019 at 4:11 AM Victor Lazzarini  wrote:
>> Good. I am not quite sure how you’re making it work, but sounds interesting. How are you using the UDP server to
>> enable it?
>> ========================
>> Prof. Victor Lazzarini
>> Maynooth University
>> Ireland
>> 
>> > On 21 Dec 2019, at 11:59, Josh Moore  wrote:
>> > 
>> > Yeah in the meantime this seems to be a decent workaround, I can still see uses for it for some people but for my environment I'm pretty happy with it, if I need more than 16 instruments I can just spawn more instances with different port numbers and the multiple processes can be mixed on the same audio chain wrapped in that manner since they all talk to the same audio driver. I'm not too fond of JACK's performance so I usually use the raw sound card output with high priority.
>> > 
>> > It also works for Cabbage as well. I created a blank cabbage instrument with just csound console for GUI and 32 channels output, saved it as a VST, and I've got vim talking to it and I got raw MIDI going to it so I can live code in the DAW even. Pretty neat. 
>> > 
>> > On Sat, Dec 21, 2019 at 2:10 AM Victor Lazzarini  wrote:
>> > I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
>> > We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
>> > Csound 7.
>> > ========================
>> > Prof. Victor Lazzarini
>> > Maynooth University
>> > Ireland
>> > 
>> > > On 21 Dec 2019, at 10:00, Victor Lazzarini  wrote:
>> > > 
>> > > I had a look at the portmidi backend code and it appears we could map each device messages
>> > > to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’. 
>> > > I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here.  
>> > > ========================
>> > > Prof. Victor Lazzarini
>> > > Maynooth University
>> > > Ireland
>> > > 
>> > >> On 21 Dec 2019, at 04:57, Josh Moore  wrote:
>> > >> 
>> > >> Yes, this works by setting --port=10000 as a flag in the csd.
>> > >> 
>> > >> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer. 
>> > >> 
>> > >> ----------------------
>> > >> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation. 
>> > >> 
>> > >> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now. 
>> > >> 
>> > >> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
>> > >> 
>> > >> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels. 
>> > >> MIDI select pull-down menu on a DAW, would come up as an A & B selection. 
>> > >> 
>> > >> Been a while since we used that function. You might want to check it out on the 
>> > >> Roland site, get some idea how they implemented that and try to do the equivalent 
>> > >> on Csound. Came in handy on a couple of film scores we did. 
>> > >> 
>> > >> 
>> > >> -PBS 
>> > >> 
>> > >> ==========================
>> > >> 
>> > >> 
>> > >> 
>> > >> -----Original Message-----
>> > >> From: Bernard Geyer 
>> > >> To: CSOUND 
>> > >> Sent: Tue, Dec 17, 2019 8:49 am
>> > >> Subject: Re: [Csnd] More than 16 MIDI channels
>> > >> 
>> > >>> I think we'll do well to have ports mapped to channels > 16, which will
>> > >> allow us to keep the very useful mechanisms we have in the system. 
>> > >> 
>> > >> Yes, I understand, this system is very useful. In this case, it's just about
>> > >> organizing code differently, for example putting channel offsets in global
>> > >> variables.
>> > >> 
>> > >> 
>> > >> 
>> > >> 
>> > >> 
>> > >> --
>> > >> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
>> > >> 
>> > >> Csound mailing list
>> > >> Csound@listserv.heanet.ie
>> > >> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> > >> Send bugs reports to
>> > >>        https://github.com/csound/csound/issues
>> > >> Discussions of bugs and features can be posted here
>> > >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>> > >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>> > > 
>> > > 
>> > > Csound mailing list
>> > > Csound@listserv.heanet.ie
>> > > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> > > Send bugs reports to
>> > >        https://github.com/csound/csound/issues
>> > > Discussions of bugs and features can be posted here
>> > 
>> > 
>> > Csound mailing list
>> > Csound@listserv.heanet.ie
>> > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> > Send bugs reports to
>> >         https://github.com/csound/csound/issues
>> > Discussions of bugs and features can be posted here
>> > Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>> 
>> 
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>         https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2019-12-24 10:35
FromJosh Moore
SubjectRe: [Csnd] More than 16 MIDI channels
I've done those GUI object modifications and got 64 gui objects that I can call at will from a live code, giving me high resolution automation. Renoise has some really nice LFO controls and things like that. The demo of this in action is here... So everyone knows this also works. :) 

https://www.youtube.com/watch?v=rKr4HyDyGDs

On Mon, Dec 23, 2019 at 9:11 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
I’ve implemented a “m” device in the portmidi backend (-Mm) to map all existing ports into higher channels.
It seems to be OK with normal single port operation, so I don’t think I broke anything, but I need to test with
multiple ports.
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 23 Dec 2019, at 12:15, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
>
> Nice, that might be interesting for headless stuff over network.
>
> Here is kind of a random track I threw together testing all of this in Cabbage. Pretty much all the synths except the 303 is Csound, plus the kick drum, the rest is just samples, and there's some re-sampling as well going on in the project.
> https://www.youtube.com/watch?v=9ibKwNzz6k8
>
> I've got some ideas for Rory too like a standard vst (or object) that comes with cabbage in which you can load a .csd from within it, live code to it, write, and then the location could also possibly be saved with the project. I'll wait a couple of days to see if he sees this thread and then if not I'll just post to the Cabbage forum.
>
> On Sat, Dec 21, 2019 at 6:55 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
> I see, good solution.
>
> I actually think I've found a way of enabling mapping of multiple ports without breaking the API.
>
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
>
> On 21 Dec 2019, at 12:46, Josh Moore <kh405.7h30ry@gmail.com> wrote:
>
>> Well, Steven Yi's Csound plugin uses port 10000, but he allows changing of it by
>> :call Csound_set_port(n) per the documentation.
>>
>>
>>
>> I use this template for live coding, and modify flags to suit my needs, I've included the copypasta from Cabbage but anyway...
>>
>> It's a matter of just setting the flags in CsOptions to enable the UDP server. You just have to reflect the csd with the port vim is sending to is all. The worst that can happen is Csound won't bind to the port if it's already in use.
>>
>> The first 16 instruments map to Csound's MIDI port channels 1-16, and I've got the rest always on in case I want to add effects sends/returns to the template using zak.
>>
>> Certainly not a documented thing. I tried it on a whim basically. in theory I might be able to use an include and hard link the cabbage plugin to the external csd so that when I save the coded csd and re-open the project it will re-call the instruments and settings. I also might be able to create some global cabbage controls to have higher precision automation for things that need it.
>> -------------------------------------------------------
>> <Cabbage>
>> form caption("Untitled") size(800, 600), colour(58, 110, 182), pluginid("def1")
>> csoundoutput bounds(0, 0, 800, 600)
>> </Cabbage>
>> <CsoundSynthesizer>
>> <CsOptions>
>> -+rtmidi=NULL -M0 --port=10000 
>> </CsOptions>
>>
>> <CsInstruments>
>>
>> ksmps = 16
>> nchnls = 32
>> 0dbfs = 1
>>
>>                                                                                               
>> instr 1
>>
>> endin
>>
>> instr 2
>>
>> endin
>>
>> instr 3
>>
>> endin
>>
>> instr 4
>>
>> endin
>>
>> instr 5
>>
>> endin
>>
>> instr 6
>>
>> endin
>>
>> instr 7
>>
>> endin
>>
>> instr 8
>>
>> endin
>>
>> instr 9
>>
>> endin
>>
>> instr 10
>>
>> endin
>>
>> instr 11
>>
>> endin
>>
>> instr 12
>>
>> endin
>>
>> instr 13
>>
>> endin
>>
>> instr 14
>>
>> endin
>>
>> instr 15
>>
>> endin
>>
>> instr 16
>>
>> endin
>>
>> instr 17
>>
>> endin
>>
>> instr 18
>>
>> endin
>>
>> instr 19
>>
>> endin
>>
>> instr 20
>>
>> endin
>>
>> instr 21
>>
>> endin
>>
>> instr 22
>>
>> endin
>>
>> instr 23
>>
>> endin
>>
>> instr 24
>>
>> endin
>> </CsInstruments>
>>
>> <CsScore>
>> 
>> i 17 0 z
>> i 18 0 z
>> i 19 0 z
>> i 20 0 z
>> i 21 0 z
>> i 22 0 z
>> i 23 0 z
>> i 24 0 z
>>
>>
>>
>> </CsScore>
>> </CsoundSynthesizer>
>>
>>
>>
>>
>> On Sat, Dec 21, 2019 at 4:11 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
>> Good. I am not quite sure how you’re making it work, but sounds interesting. How are you using the UDP server to
>> enable it?
>> ========================
>> Prof. Victor Lazzarini
>> Maynooth University
>> Ireland
>>
>> > On 21 Dec 2019, at 11:59, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
>> >
>> > Yeah in the meantime this seems to be a decent workaround, I can still see uses for it for some people but for my environment I'm pretty happy with it, if I need more than 16 instruments I can just spawn more instances with different port numbers and the multiple processes can be mixed on the same audio chain wrapped in that manner since they all talk to the same audio driver. I'm not too fond of JACK's performance so I usually use the raw sound card output with high priority.
>> >
>> > It also works for Cabbage as well. I created a blank cabbage instrument with just csound console for GUI and 32 channels output, saved it as a VST, and I've got vim talking to it and I got raw MIDI going to it so I can live code in the DAW even. Pretty neat.
>> >
>> > On Sat, Dec 21, 2019 at 2:10 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
>> > I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
>> > We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
>> > Csound 7.
>> > ========================
>> > Prof. Victor Lazzarini
>> > Maynooth University
>> > Ireland
>> >
>> > > On 21 Dec 2019, at 10:00, Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
>> > >
>> > > I had a look at the portmidi backend code and it appears we could map each device messages
>> > > to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’.
>> > > I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here. 
>> > > ========================
>> > > Prof. Victor Lazzarini
>> > > Maynooth University
>> > > Ireland
>> > >
>> > >> On 21 Dec 2019, at 04:57, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
>> > >>
>> > >> Yes, this works by setting --port=10000 as a flag in the csd.
>> > >>
>> > >> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer.
>> > >>
>> > >> ----------------------
>> > >> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation.
>> > >>
>> > >> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now.
>> > >>
>> > >> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
>> > >>
>> > >> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels.
>> > >> MIDI select pull-down menu on a DAW, would come up as an A & B selection.
>> > >>
>> > >> Been a while since we used that function. You might want to check it out on the
>> > >> Roland site, get some idea how they implemented that and try to do the equivalent
>> > >> on Csound. Came in handy on a couple of film scores we did.
>> > >>
>> > >>
>> > >> -PBS
>> > >>
>> > >> ==========================
>> > >>
>> > >>
>> > >>
>> > >> -----Original Message-----
>> > >> From: Bernard Geyer <micamusic2@GMAIL.COM>
>> > >> To: CSOUND <CSOUND@LISTSERV.HEANET.IE>
>> > >> Sent: Tue, Dec 17, 2019 8:49 am
>> > >> Subject: Re: [Csnd] More than 16 MIDI channels
>> > >>
>> > >>> I think we'll do well to have ports mapped to channels > 16, which will
>> > >> allow us to keep the very useful mechanisms we have in the system.
>> > >>
>> > >> Yes, I understand, this system is very useful. In this case, it's just about
>> > >> organizing code differently, for example putting channel offsets in global
>> > >> variables.
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >> --
>> > >> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
>> > >>
>> > >> Csound mailing list
>> > >> Csound@listserv.heanet.ie
>> > >> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> > >> Send bugs reports to
>> > >>        https://github.com/csound/csound/issues
>> > >> Discussions of bugs and features can be posted here
>> > >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>> > >> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>> > >
>> > >
>> > > Csound mailing list
>> > > Csound@listserv.heanet.ie
>> > > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> > > Send bugs reports to
>> > >        https://github.com/csound/csound/issues
>> > > Discussions of bugs and features can be posted here
>> >
>> >
>> > Csound mailing list
>> > Csound@listserv.heanet.ie
>> > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> > Send bugs reports to
>> >         https://github.com/csound/csound/issues
>> > Discussions of bugs and features can be posted here
>> > Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>
>>
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>         https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-24 13:09
FromVictor Lazzarini
SubjectRe: [Csnd] More than 16 MIDI channels
I have added a portmidi device “m” which will allow all devices to be mapped to higher number channels, up to 64 separate
devices (1024 channels).

To use it all just pass -Mm to select the mapping mode, and the devices will be mapped in the order given by portmidi. For 
example

./csound -odac midiprint.csd -Mm
...

0: IAC Driver Bus 1 (portmidi)
1: Network Session 1 (portmidi)
2: VMPK Output (portmidi)
PortMIDI: Activated input device 0: 'IAC Driver Bus 1' (CoreMIDI)
Device mapped to channels 1 to 16 
PortMIDI: Activated input device 1: 'Network Session 1' (CoreMIDI)
Device mapped to channels 17 to 32 
PortMIDI: Activated input device 2: 'VMPK Output' (CoreMIDI)
Device mapped to channels 33 to 48 

MIDI channels in Csound then should work as usual but will not be limited to 16. 

I’ll write to devel list to give the details of the mechanism for anyone wanting to use it.
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 23 Dec 2019, at 17:11, Victor Lazzarini  wrote:
> 
> I’ve implemented a “m” device in the portmidi backend (-Mm) to map all existing ports into higher channels.
> It seems to be OK with normal single port operation, so I don’t think I broke anything, but I need to test with
> multiple ports.
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
> 
>> On 23 Dec 2019, at 12:15, Josh Moore  wrote:
>> 
>> Nice, that might be interesting for headless stuff over network. 
>> 
>> Here is kind of a random track I threw together testing all of this in Cabbage. Pretty much all the synths except the 303 is Csound, plus the kick drum, the rest is just samples, and there's some re-sampling as well going on in the project.
>> https://www.youtube.com/watch?v=9ibKwNzz6k8
>> 
>> I've got some ideas for Rory too like a standard vst (or object) that comes with cabbage in which you can load a .csd from within it, live code to it, write, and then the location could also possibly be saved with the project. I'll wait a couple of days to see if he sees this thread and then if not I'll just post to the Cabbage forum. 
>> 
>> On Sat, Dec 21, 2019 at 6:55 AM Victor Lazzarini  wrote:
>> I see, good solution.
>> 
>> I actually think I've found a way of enabling mapping of multiple ports without breaking the API. 
>> 
>> Prof. Victor Lazzarini
>> Maynooth University
>> Ireland
>> 
>> On 21 Dec 2019, at 12:46, Josh Moore  wrote:
>> 
>>> Well, Steven Yi's Csound plugin uses port 10000, but he allows changing of it by 
>>> :call Csound_set_port(n) per the documentation.
>>> 
>>> 
>>> 
>>> I use this template for live coding, and modify flags to suit my needs, I've included the copypasta from Cabbage but anyway...
>>> 
>>> It's a matter of just setting the flags in CsOptions to enable the UDP server. You just have to reflect the csd with the port vim is sending to is all. The worst that can happen is Csound won't bind to the port if it's already in use.
>>> 
>>> The first 16 instruments map to Csound's MIDI port channels 1-16, and I've got the rest always on in case I want to add effects sends/returns to the template using zak. 
>>> 
>>> Certainly not a documented thing. I tried it on a whim basically. in theory I might be able to use an include and hard link the cabbage plugin to the external csd so that when I save the coded csd and re-open the project it will re-call the instruments and settings. I also might be able to create some global cabbage controls to have higher precision automation for things that need it.
>>> -------------------------------------------------------
>>> 
>>> form caption("Untitled") size(800, 600), colour(58, 110, 182), pluginid("def1")
>>> csoundoutput bounds(0, 0, 800, 600)
>>> 
>>> 
>>> 
>>> -+rtmidi=NULL -M0 --port=10000  
>>> 
>>> 
>>> 
>>> 
>>> ksmps = 16
>>> nchnls = 32
>>> 0dbfs = 1
>>> 
>>> 
>>> instr 1 
>>> 
>>> endin
>>> 
>>> instr 2
>>> 
>>> endin
>>> 
>>> instr 3
>>> 
>>> endin
>>> 
>>> instr 4
>>> 
>>> endin
>>> 
>>> instr 5
>>> 
>>> endin
>>> 
>>> instr 6
>>> 
>>> endin
>>> 
>>> instr 7 
>>> 
>>> endin
>>> 
>>> instr 8
>>> 
>>> endin
>>> 
>>> instr 9
>>> 
>>> endin
>>> 
>>> instr 10
>>> 
>>> endin
>>> 
>>> instr 11
>>> 
>>> endin
>>> 
>>> instr 12
>>> 
>>> endin
>>> 
>>> instr 13
>>> 
>>> endin
>>> 
>>> instr 14
>>> 
>>> endin
>>> 
>>> instr 15
>>> 
>>> endin
>>> 
>>> instr 16
>>> 
>>> endin
>>> 
>>> instr 17
>>> 
>>> endin
>>> 
>>> instr 18
>>> 
>>> endin
>>> 
>>> instr 19
>>> 
>>> endin
>>> 
>>> instr 20
>>> 
>>> endin
>>> 
>>> instr 21
>>> 
>>> endin
>>> 
>>> instr 22
>>> 
>>> endin
>>> 
>>> instr 23
>>> 
>>> endin
>>> 
>>> instr 24
>>> 
>>> endin
>>> 
>>> 
>>> 
>>> 
>>> i 17 0 z
>>> i 18 0 z
>>> i 19 0 z
>>> i 20 0 z
>>> i 21 0 z
>>> i 22 0 z
>>> i 23 0 z
>>> i 24 0 z
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Sat, Dec 21, 2019 at 4:11 AM Victor Lazzarini  wrote:
>>> Good. I am not quite sure how you’re making it work, but sounds interesting. How are you using the UDP server to
>>> enable it?
>>> ========================
>>> Prof. Victor Lazzarini
>>> Maynooth University
>>> Ireland
>>> 
>>>> On 21 Dec 2019, at 11:59, Josh Moore  wrote:
>>>> 
>>>> Yeah in the meantime this seems to be a decent workaround, I can still see uses for it for some people but for my environment I'm pretty happy with it, if I need more than 16 instruments I can just spawn more instances with different port numbers and the multiple processes can be mixed on the same audio chain wrapped in that manner since they all talk to the same audio driver. I'm not too fond of JACK's performance so I usually use the raw sound card output with high priority.
>>>> 
>>>> It also works for Cabbage as well. I created a blank cabbage instrument with just csound console for GUI and 32 channels output, saved it as a VST, and I've got vim talking to it and I got raw MIDI going to it so I can live code in the DAW even. Pretty neat. 
>>>> 
>>>> On Sat, Dec 21, 2019 at 2:10 AM Victor Lazzarini  wrote:
>>>> I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
>>>> We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
>>>> Csound 7.
>>>> ========================
>>>> Prof. Victor Lazzarini
>>>> Maynooth University
>>>> Ireland
>>>> 
>>>>> On 21 Dec 2019, at 10:00, Victor Lazzarini  wrote:
>>>>> 
>>>>> I had a look at the portmidi backend code and it appears we could map each device messages
>>>>> to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’. 
>>>>> I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here.  
>>>>> ========================
>>>>> Prof. Victor Lazzarini
>>>>> Maynooth University
>>>>> Ireland
>>>>> 
>>>>>> On 21 Dec 2019, at 04:57, Josh Moore  wrote:
>>>>>> 
>>>>>> Yes, this works by setting --port=10000 as a flag in the csd.
>>>>>> 
>>>>>> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer. 
>>>>>> 
>>>>>> ----------------------
>>>>>> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation. 
>>>>>> 
>>>>>> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now. 
>>>>>> 
>>>>>> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
>>>>>> 
>>>>>> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels. 
>>>>>> MIDI select pull-down menu on a DAW, would come up as an A & B selection. 
>>>>>> 
>>>>>> Been a while since we used that function. You might want to check it out on the 
>>>>>> Roland site, get some idea how they implemented that and try to do the equivalent 
>>>>>> on Csound. Came in handy on a couple of film scores we did. 
>>>>>> 
>>>>>> 
>>>>>> -PBS 
>>>>>> 
>>>>>> ==========================
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> -----Original Message-----
>>>>>> From: Bernard Geyer 
>>>>>> To: CSOUND 
>>>>>> Sent: Tue, Dec 17, 2019 8:49 am
>>>>>> Subject: Re: [Csnd] More than 16 MIDI channels
>>>>>> 
>>>>>>> I think we'll do well to have ports mapped to channels > 16, which will
>>>>>> allow us to keep the very useful mechanisms we have in the system. 
>>>>>> 
>>>>>> Yes, I understand, this system is very useful. In this case, it's just about
>>>>>> organizing code differently, for example putting channel offsets in global
>>>>>> variables.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
>>>>>> 
>>>>>> Csound mailing list
>>>>>> Csound@listserv.heanet.ie
>>>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>>>> Send bugs reports to
>>>>>>       https://github.com/csound/csound/issues
>>>>>> Discussions of bugs and features can be posted here
>>>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>>>> 
>>>>> 
>>>>> Csound mailing list
>>>>> Csound@listserv.heanet.ie
>>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>>> Send bugs reports to
>>>>>       https://github.com/csound/csound/issues
>>>>> Discussions of bugs and features can be posted here
>>>> 
>>>> 
>>>> Csound mailing list
>>>> Csound@listserv.heanet.ie
>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>> Send bugs reports to
>>>>        https://github.com/csound/csound/issues
>>>> Discussions of bugs and features can be posted here
>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>> 
>>> 
>>> Csound mailing list
>>> Csound@listserv.heanet.ie
>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>> Send bugs reports to
>>>        https://github.com/csound/csound/issues
>>> Discussions of bugs and features can be posted here
>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
> 
> 
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2019-12-24 13:10
FromVictor Lazzarini
SubjectRe: [Csnd] More than 16 MIDI channels
This is in git develop now, btw.
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 24 Dec 2019, at 13:09, Victor Lazzarini  wrote:
> 
> I have added a portmidi device “m” which will allow all devices to be mapped to higher number channels, up to 64 separate
> devices (1024 channels).
> 
> To use it all just pass -Mm to select the mapping mode, and the devices will be mapped in the order given by portmidi. For 
> example
> 
> ./csound -odac midiprint.csd -Mm
> ...
> 
> 0: IAC Driver Bus 1 (portmidi)
> 1: Network Session 1 (portmidi)
> 2: VMPK Output (portmidi)
> PortMIDI: Activated input device 0: 'IAC Driver Bus 1' (CoreMIDI)
> Device mapped to channels 1 to 16 
> PortMIDI: Activated input device 1: 'Network Session 1' (CoreMIDI)
> Device mapped to channels 17 to 32 
> PortMIDI: Activated input device 2: 'VMPK Output' (CoreMIDI)
> Device mapped to channels 33 to 48 
> 
> MIDI channels in Csound then should work as usual but will not be limited to 16. 
> 
> I’ll write to devel list to give the details of the mechanism for anyone wanting to use it.
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
> 
>> On 23 Dec 2019, at 17:11, Victor Lazzarini  wrote:
>> 
>> I’ve implemented a “m” device in the portmidi backend (-Mm) to map all existing ports into higher channels.
>> It seems to be OK with normal single port operation, so I don’t think I broke anything, but I need to test with
>> multiple ports.
>> ========================
>> Prof. Victor Lazzarini
>> Maynooth University
>> Ireland
>> 
>>> On 23 Dec 2019, at 12:15, Josh Moore  wrote:
>>> 
>>> Nice, that might be interesting for headless stuff over network. 
>>> 
>>> Here is kind of a random track I threw together testing all of this in Cabbage. Pretty much all the synths except the 303 is Csound, plus the kick drum, the rest is just samples, and there's some re-sampling as well going on in the project.
>>> https://www.youtube.com/watch?v=9ibKwNzz6k8
>>> 
>>> I've got some ideas for Rory too like a standard vst (or object) that comes with cabbage in which you can load a .csd from within it, live code to it, write, and then the location could also possibly be saved with the project. I'll wait a couple of days to see if he sees this thread and then if not I'll just post to the Cabbage forum. 
>>> 
>>> On Sat, Dec 21, 2019 at 6:55 AM Victor Lazzarini  wrote:
>>> I see, good solution.
>>> 
>>> I actually think I've found a way of enabling mapping of multiple ports without breaking the API. 
>>> 
>>> Prof. Victor Lazzarini
>>> Maynooth University
>>> Ireland
>>> 
>>> On 21 Dec 2019, at 12:46, Josh Moore  wrote:
>>> 
>>>> Well, Steven Yi's Csound plugin uses port 10000, but he allows changing of it by 
>>>> :call Csound_set_port(n) per the documentation.
>>>> 
>>>> 
>>>> 
>>>> I use this template for live coding, and modify flags to suit my needs, I've included the copypasta from Cabbage but anyway...
>>>> 
>>>> It's a matter of just setting the flags in CsOptions to enable the UDP server. You just have to reflect the csd with the port vim is sending to is all. The worst that can happen is Csound won't bind to the port if it's already in use.
>>>> 
>>>> The first 16 instruments map to Csound's MIDI port channels 1-16, and I've got the rest always on in case I want to add effects sends/returns to the template using zak. 
>>>> 
>>>> Certainly not a documented thing. I tried it on a whim basically. in theory I might be able to use an include and hard link the cabbage plugin to the external csd so that when I save the coded csd and re-open the project it will re-call the instruments and settings. I also might be able to create some global cabbage controls to have higher precision automation for things that need it.
>>>> -------------------------------------------------------
>>>> 
>>>> form caption("Untitled") size(800, 600), colour(58, 110, 182), pluginid("def1")
>>>> csoundoutput bounds(0, 0, 800, 600)
>>>> 
>>>> 
>>>> 
>>>> -+rtmidi=NULL -M0 --port=10000  
>>>> 
>>>> 
>>>> 
>>>> 
>>>> ksmps = 16
>>>> nchnls = 32
>>>> 0dbfs = 1
>>>> 
>>>> 
>>>> instr 1 
>>>> 
>>>> endin
>>>> 
>>>> instr 2
>>>> 
>>>> endin
>>>> 
>>>> instr 3
>>>> 
>>>> endin
>>>> 
>>>> instr 4
>>>> 
>>>> endin
>>>> 
>>>> instr 5
>>>> 
>>>> endin
>>>> 
>>>> instr 6
>>>> 
>>>> endin
>>>> 
>>>> instr 7 
>>>> 
>>>> endin
>>>> 
>>>> instr 8
>>>> 
>>>> endin
>>>> 
>>>> instr 9
>>>> 
>>>> endin
>>>> 
>>>> instr 10
>>>> 
>>>> endin
>>>> 
>>>> instr 11
>>>> 
>>>> endin
>>>> 
>>>> instr 12
>>>> 
>>>> endin
>>>> 
>>>> instr 13
>>>> 
>>>> endin
>>>> 
>>>> instr 14
>>>> 
>>>> endin
>>>> 
>>>> instr 15
>>>> 
>>>> endin
>>>> 
>>>> instr 16
>>>> 
>>>> endin
>>>> 
>>>> instr 17
>>>> 
>>>> endin
>>>> 
>>>> instr 18
>>>> 
>>>> endin
>>>> 
>>>> instr 19
>>>> 
>>>> endin
>>>> 
>>>> instr 20
>>>> 
>>>> endin
>>>> 
>>>> instr 21
>>>> 
>>>> endin
>>>> 
>>>> instr 22
>>>> 
>>>> endin
>>>> 
>>>> instr 23
>>>> 
>>>> endin
>>>> 
>>>> instr 24
>>>> 
>>>> endin
>>>> 
>>>> 
>>>> 
>>>> 
>>>> i 17 0 z
>>>> i 18 0 z
>>>> i 19 0 z
>>>> i 20 0 z
>>>> i 21 0 z
>>>> i 22 0 z
>>>> i 23 0 z
>>>> i 24 0 z
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Sat, Dec 21, 2019 at 4:11 AM Victor Lazzarini  wrote:
>>>> Good. I am not quite sure how you’re making it work, but sounds interesting. How are you using the UDP server to
>>>> enable it?
>>>> ========================
>>>> Prof. Victor Lazzarini
>>>> Maynooth University
>>>> Ireland
>>>> 
>>>>> On 21 Dec 2019, at 11:59, Josh Moore  wrote:
>>>>> 
>>>>> Yeah in the meantime this seems to be a decent workaround, I can still see uses for it for some people but for my environment I'm pretty happy with it, if I need more than 16 instruments I can just spawn more instances with different port numbers and the multiple processes can be mixed on the same audio chain wrapped in that manner since they all talk to the same audio driver. I'm not too fond of JACK's performance so I usually use the raw sound card output with high priority.
>>>>> 
>>>>> It also works for Cabbage as well. I created a blank cabbage instrument with just csound console for GUI and 32 channels output, saved it as a VST, and I've got vim talking to it and I got raw MIDI going to it so I can live code in the DAW even. Pretty neat. 
>>>>> 
>>>>> On Sat, Dec 21, 2019 at 2:10 AM Victor Lazzarini  wrote:
>>>>> I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
>>>>> We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
>>>>> Csound 7.
>>>>> ========================
>>>>> Prof. Victor Lazzarini
>>>>> Maynooth University
>>>>> Ireland
>>>>> 
>>>>>> On 21 Dec 2019, at 10:00, Victor Lazzarini  wrote:
>>>>>> 
>>>>>> I had a look at the portmidi backend code and it appears we could map each device messages
>>>>>> to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’. 
>>>>>> I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here.  
>>>>>> ========================
>>>>>> Prof. Victor Lazzarini
>>>>>> Maynooth University
>>>>>> Ireland
>>>>>> 
>>>>>>> On 21 Dec 2019, at 04:57, Josh Moore  wrote:
>>>>>>> 
>>>>>>> Yes, this works by setting --port=10000 as a flag in the csd.
>>>>>>> 
>>>>>>> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer. 
>>>>>>> 
>>>>>>> ----------------------
>>>>>>> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation. 
>>>>>>> 
>>>>>>> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now. 
>>>>>>> 
>>>>>>> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
>>>>>>> 
>>>>>>> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels. 
>>>>>>> MIDI select pull-down menu on a DAW, would come up as an A & B selection. 
>>>>>>> 
>>>>>>> Been a while since we used that function. You might want to check it out on the 
>>>>>>> Roland site, get some idea how they implemented that and try to do the equivalent 
>>>>>>> on Csound. Came in handy on a couple of film scores we did. 
>>>>>>> 
>>>>>>> 
>>>>>>> -PBS 
>>>>>>> 
>>>>>>> ==========================
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> -----Original Message-----
>>>>>>> From: Bernard Geyer 
>>>>>>> To: CSOUND 
>>>>>>> Sent: Tue, Dec 17, 2019 8:49 am
>>>>>>> Subject: Re: [Csnd] More than 16 MIDI channels
>>>>>>> 
>>>>>>>> I think we'll do well to have ports mapped to channels > 16, which will
>>>>>>> allow us to keep the very useful mechanisms we have in the system. 
>>>>>>> 
>>>>>>> Yes, I understand, this system is very useful. In this case, it's just about
>>>>>>> organizing code differently, for example putting channel offsets in global
>>>>>>> variables.
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
>>>>>>> 
>>>>>>> Csound mailing list
>>>>>>> Csound@listserv.heanet.ie
>>>>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>>>>> Send bugs reports to
>>>>>>>      https://github.com/csound/csound/issues
>>>>>>> Discussions of bugs and features can be posted here
>>>>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>>>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>>>>> 
>>>>>> 
>>>>>> Csound mailing list
>>>>>> Csound@listserv.heanet.ie
>>>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>>>> Send bugs reports to
>>>>>>      https://github.com/csound/csound/issues
>>>>>> Discussions of bugs and features can be posted here
>>>>> 
>>>>> 
>>>>> Csound mailing list
>>>>> Csound@listserv.heanet.ie
>>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>>> Send bugs reports to
>>>>>       https://github.com/csound/csound/issues
>>>>> Discussions of bugs and features can be posted here
>>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>>> 
>>>> 
>>>> Csound mailing list
>>>> Csound@listserv.heanet.ie
>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>> Send bugs reports to
>>>>       https://github.com/csound/csound/issues
>>>> Discussions of bugs and features can be posted here
>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>> 
>> 
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>       https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
> 
> 
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2019-12-24 13:29
FromJosh Moore
SubjectRe: [Csnd] More than 16 MIDI channels
nice!

On Tue, Dec 24, 2019 at 5:10 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
This is in git develop now, btw.
========================
Prof. Victor Lazzarini
Maynooth University
Ireland

> On 24 Dec 2019, at 13:09, Victor Lazzarini <Victor.Lazzarini@MU.IE> wrote:
>
> I have added a portmidi device “m” which will allow all devices to be mapped to higher number channels, up to 64 separate
> devices (1024 channels).
>
> To use it all just pass -Mm to select the mapping mode, and the devices will be mapped in the order given by portmidi. For
> example
>
> ./csound -odac midiprint.csd -Mm
> ...
>
> 0: IAC Driver Bus 1 (portmidi)
> 1: Network Session 1 (portmidi)
> 2: VMPK Output (portmidi)
> PortMIDI: Activated input device 0: 'IAC Driver Bus 1' (CoreMIDI)
> Device mapped to channels 1 to 16
> PortMIDI: Activated input device 1: 'Network Session 1' (CoreMIDI)
> Device mapped to channels 17 to 32
> PortMIDI: Activated input device 2: 'VMPK Output' (CoreMIDI)
> Device mapped to channels 33 to 48
>
> MIDI channels in Csound then should work as usual but will not be limited to 16.
>
> I’ll write to devel list to give the details of the mechanism for anyone wanting to use it.
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
>
>> On 23 Dec 2019, at 17:11, Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
>>
>> I’ve implemented a “m” device in the portmidi backend (-Mm) to map all existing ports into higher channels.
>> It seems to be OK with normal single port operation, so I don’t think I broke anything, but I need to test with
>> multiple ports.
>> ========================
>> Prof. Victor Lazzarini
>> Maynooth University
>> Ireland
>>
>>> On 23 Dec 2019, at 12:15, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
>>>
>>> Nice, that might be interesting for headless stuff over network.
>>>
>>> Here is kind of a random track I threw together testing all of this in Cabbage. Pretty much all the synths except the 303 is Csound, plus the kick drum, the rest is just samples, and there's some re-sampling as well going on in the project.
>>> https://www.youtube.com/watch?v=9ibKwNzz6k8
>>>
>>> I've got some ideas for Rory too like a standard vst (or object) that comes with cabbage in which you can load a .csd from within it, live code to it, write, and then the location could also possibly be saved with the project. I'll wait a couple of days to see if he sees this thread and then if not I'll just post to the Cabbage forum.
>>>
>>> On Sat, Dec 21, 2019 at 6:55 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
>>> I see, good solution.
>>>
>>> I actually think I've found a way of enabling mapping of multiple ports without breaking the API.
>>>
>>> Prof. Victor Lazzarini
>>> Maynooth University
>>> Ireland
>>>
>>> On 21 Dec 2019, at 12:46, Josh Moore <kh405.7h30ry@gmail.com> wrote:
>>>
>>>> Well, Steven Yi's Csound plugin uses port 10000, but he allows changing of it by
>>>> :call Csound_set_port(n) per the documentation.
>>>>
>>>>
>>>>
>>>> I use this template for live coding, and modify flags to suit my needs, I've included the copypasta from Cabbage but anyway...
>>>>
>>>> It's a matter of just setting the flags in CsOptions to enable the UDP server. You just have to reflect the csd with the port vim is sending to is all. The worst that can happen is Csound won't bind to the port if it's already in use.
>>>>
>>>> The first 16 instruments map to Csound's MIDI port channels 1-16, and I've got the rest always on in case I want to add effects sends/returns to the template using zak.
>>>>
>>>> Certainly not a documented thing. I tried it on a whim basically. in theory I might be able to use an include and hard link the cabbage plugin to the external csd so that when I save the coded csd and re-open the project it will re-call the instruments and settings. I also might be able to create some global cabbage controls to have higher precision automation for things that need it.
>>>> -------------------------------------------------------
>>>> <Cabbage>
>>>> form caption("Untitled") size(800, 600), colour(58, 110, 182), pluginid("def1")
>>>> csoundoutput bounds(0, 0, 800, 600)
>>>> </Cabbage>
>>>> <CsoundSynthesizer>
>>>> <CsOptions>
>>>> -+rtmidi=NULL -M0 --port=10000 
>>>> </CsOptions>
>>>>
>>>> <CsInstruments>
>>>>
>>>> ksmps = 16
>>>> nchnls = 32
>>>> 0dbfs = 1
>>>>
>>>>
>>>> instr 1
>>>>
>>>> endin
>>>>
>>>> instr 2
>>>>
>>>> endin
>>>>
>>>> instr 3
>>>>
>>>> endin
>>>>
>>>> instr 4
>>>>
>>>> endin
>>>>
>>>> instr 5
>>>>
>>>> endin
>>>>
>>>> instr 6
>>>>
>>>> endin
>>>>
>>>> instr 7
>>>>
>>>> endin
>>>>
>>>> instr 8
>>>>
>>>> endin
>>>>
>>>> instr 9
>>>>
>>>> endin
>>>>
>>>> instr 10
>>>>
>>>> endin
>>>>
>>>> instr 11
>>>>
>>>> endin
>>>>
>>>> instr 12
>>>>
>>>> endin
>>>>
>>>> instr 13
>>>>
>>>> endin
>>>>
>>>> instr 14
>>>>
>>>> endin
>>>>
>>>> instr 15
>>>>
>>>> endin
>>>>
>>>> instr 16
>>>>
>>>> endin
>>>>
>>>> instr 17
>>>>
>>>> endin
>>>>
>>>> instr 18
>>>>
>>>> endin
>>>>
>>>> instr 19
>>>>
>>>> endin
>>>>
>>>> instr 20
>>>>
>>>> endin
>>>>
>>>> instr 21
>>>>
>>>> endin
>>>>
>>>> instr 22
>>>>
>>>> endin
>>>>
>>>> instr 23
>>>>
>>>> endin
>>>>
>>>> instr 24
>>>>
>>>> endin
>>>> </CsInstruments>
>>>>
>>>> <CsScore>
>>>>
>>>> i 17 0 z
>>>> i 18 0 z
>>>> i 19 0 z
>>>> i 20 0 z
>>>> i 21 0 z
>>>> i 22 0 z
>>>> i 23 0 z
>>>> i 24 0 z
>>>>
>>>>
>>>>
>>>> </CsScore>
>>>> </CsoundSynthesizer>
>>>>
>>>>
>>>>
>>>>
>>>> On Sat, Dec 21, 2019 at 4:11 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
>>>> Good. I am not quite sure how you’re making it work, but sounds interesting. How are you using the UDP server to
>>>> enable it?
>>>> ========================
>>>> Prof. Victor Lazzarini
>>>> Maynooth University
>>>> Ireland
>>>>
>>>>> On 21 Dec 2019, at 11:59, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
>>>>>
>>>>> Yeah in the meantime this seems to be a decent workaround, I can still see uses for it for some people but for my environment I'm pretty happy with it, if I need more than 16 instruments I can just spawn more instances with different port numbers and the multiple processes can be mixed on the same audio chain wrapped in that manner since they all talk to the same audio driver. I'm not too fond of JACK's performance so I usually use the raw sound card output with high priority.
>>>>>
>>>>> It also works for Cabbage as well. I created a blank cabbage instrument with just csound console for GUI and 32 channels output, saved it as a VST, and I've got vim talking to it and I got raw MIDI going to it so I can live code in the DAW even. Pretty neat.
>>>>>
>>>>> On Sat, Dec 21, 2019 at 2:10 AM Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
>>>>> I see now what the issue is. Csound uses a byte array to store msgs coming from the midi device.
>>>>> We’ll need to make it an int. That’ll change the interface and the API, and so that’s why I thought
>>>>> Csound 7.
>>>>> ========================
>>>>> Prof. Victor Lazzarini
>>>>> Maynooth University
>>>>> Ireland
>>>>>
>>>>>> On 21 Dec 2019, at 10:00, Victor Lazzarini <Victor.Lazzarini@mu.ie> wrote:
>>>>>>
>>>>>> I had a look at the portmidi backend code and it appears we could map each device messages
>>>>>> to ports > 16 by a small change in the code, as we can already read data from all devices using ‘a’.
>>>>>> I wonder what was the issue I had when I looked at this before. I’ll see if I can do some tests here. 
>>>>>> ========================
>>>>>> Prof. Victor Lazzarini
>>>>>> Maynooth University
>>>>>> Ireland
>>>>>>
>>>>>>> On 21 Dec 2019, at 04:57, Josh Moore <kh405.7h30ry@GMAIL.COM> wrote:
>>>>>>>
>>>>>>> Yes, this works by setting --port=10000 as a flag in the csd.
>>>>>>>
>>>>>>> Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer.
>>>>>>>
>>>>>>> ----------------------
>>>>>>> Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation.
>>>>>>>
>>>>>>> And now I'm wondering if live coding works in csound~ and I'm going to have to try that now.
>>>>>>>
>>>>>>> On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:
>>>>>>>
>>>>>>> Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels.
>>>>>>> MIDI select pull-down menu on a DAW, would come up as an A & B selection.
>>>>>>>
>>>>>>> Been a while since we used that function. You might want to check it out on the
>>>>>>> Roland site, get some idea how they implemented that and try to do the equivalent
>>>>>>> on Csound. Came in handy on a couple of film scores we did.
>>>>>>>
>>>>>>>
>>>>>>> -PBS
>>>>>>>
>>>>>>> ==========================
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: Bernard Geyer <micamusic2@GMAIL.COM>
>>>>>>> To: CSOUND <CSOUND@LISTSERV.HEANET.IE>
>>>>>>> Sent: Tue, Dec 17, 2019 8:49 am
>>>>>>> Subject: Re: [Csnd] More than 16 MIDI channels
>>>>>>>
>>>>>>>> I think we'll do well to have ports mapped to channels > 16, which will
>>>>>>> allow us to keep the very useful mechanisms we have in the system.
>>>>>>>
>>>>>>> Yes, I understand, this system is very useful. In this case, it's just about
>>>>>>> organizing code differently, for example putting channel offsets in global
>>>>>>> variables.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
>>>>>>>
>>>>>>> Csound mailing list
>>>>>>> Csound@listserv.heanet.ie
>>>>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>>>>> Send bugs reports to
>>>>>>>      https://github.com/csound/csound/issues
>>>>>>> Discussions of bugs and features can be posted here
>>>>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>>>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>>>>>
>>>>>>
>>>>>> Csound mailing list
>>>>>> Csound@listserv.heanet.ie
>>>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>>>> Send bugs reports to
>>>>>>      https://github.com/csound/csound/issues
>>>>>> Discussions of bugs and features can be posted here
>>>>>
>>>>>
>>>>> Csound mailing list
>>>>> Csound@listserv.heanet.ie
>>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>>> Send bugs reports to
>>>>>       https://github.com/csound/csound/issues
>>>>> Discussions of bugs and features can be posted here
>>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>>>
>>>>
>>>> Csound mailing list
>>>> Csound@listserv.heanet.ie
>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>>>> Send bugs reports to
>>>>       https://github.com/csound/csound/issues
>>>> Discussions of bugs and features can be posted here
>>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
>>
>>
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>       https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here


Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-06 16:15
FromChuckk Hubbard
SubjectRe: [Csnd] More than 16 MIDI channels
This is amazing. I've been asking about multiple MIDI devices for over a decade! I mentioned the PD method, too, in 2007, if not earlier.
Wondering if this works for MIDI out as well as in??

-Chuckk

On Sat, Dec 21, 2019 at 6:57 AM Josh Moore <kh405.7h30ry@gmail.com> wrote:
Yes, this works by setting --port=10000 as a flag in the csd.

Now I can have 32-64 audio channels with 4 MIDI ports and OSC/HID interface if I really want it, with live coding/rapid prototyping. Instead of writing and re-initializing every time I make a code change (or in cabbage having to re-render plugins), just add some invalues and pd controls with init settings to the instruments and not only is it done on the fly, it's instant recall. I can just spawn csds with csound6~ and vim edit them at will, and then write when I'm done and save the patch. ****ing killer.

----------------------
Oh yeah, lots of stuff supports multiple MIDI ports. Personally, I like Pure Data's implementation of virtual MIDI ports. It will create however many you like and the channels go from 1-n, so port 1 ch 1 would start at 17 and so on. Really easy to manage. I usually choose four in that environment for 64 channels. Csound~ works so theoretically I could just use Pure Data (and I do quite a bit of that) but lately I've been using just vim and terminal because it allows me to code instruments quick on the fly and send notes and automation.

And now I'm wondering if live coding works in csound~ and I'm going to have to try that now. 

On Fri, Dec 20, 2019 at 2:36 PM Partev Sarkissian <0000060b2ef1338e-dmarc-request@listserv.heanet.ie> wrote:

Roland XV5080 rack synth had an A-16 & B-16 porting to get 32 MIDI channels.
MIDI select pull-down menu on a DAW, would come up as an A & B selection.

Been a while since we used that function. You might want to check it out on the
Roland site, get some idea how they implemented that and try to do the equivalent
on Csound. Came in handy on a couple of film scores we did.


-PBS

==========================



-----Original Message-----
From: Bernard Geyer <micamusic2@GMAIL.COM>
To: CSOUND <CSOUND@LISTSERV.HEANET.IE>
Sent: Tue, Dec 17, 2019 8:49 am
Subject: Re: [Csnd] More than 16 MIDI channels

> I think we'll do well to have ports mapped to channels > 16, which will
allow us to keep the very useful mechanisms we have in the system.

Yes, I understand, this system is very useful. In this case, it's just about
organizing code differently, for example putting channel offsets in global
variables.
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here


--
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here