number of MIDI devices appears limited to 16 - how to raise?

Questions about Wine on Linux
Post Reply
GoaSkin
Newbie
Newbie
Posts: 3
Joined: Tue Jun 19, 2012 3:22 pm

number of MIDI devices appears limited to 16 - how to raise?

Post by GoaSkin » Sat Mar 21, 2020 10:16 am

Hello,

I want to use some Windows music production applications via WINE under Linux including the standalone synthesizers that come with Native Instruments Komplete (Absynth, FM8, Massive etc.).

All the software runs well using the latest staging version from the WINE repositories but in the MIDI properties of the programs, there always appear only the first 16 MIDI ports which are listed if you run 'aconnect -l' on the shell. In my case, the 16 ports you can choose in the WINE applications are the MIDI though port and the first 15 channels of my iConnectivity MIO10 multiport MIDI interface. Neither the 16th port of the MIO10 is selectable, nor my master keyboard and all my synthesizers which are directly connected via USB. When I turn off the MIO 10, some of the other devices appear with the remaining restriction of 16 ports.

Is there a way to to configure WINE to report more than 16 MIDI devices to the application or is it required to patch and recompile WINE for that?

GoaSkin
Newbie
Newbie
Posts: 3
Joined: Tue Jun 19, 2012 3:22 pm

Re: number of MIDI devices appears limited to 16 - how to raise?

Post by GoaSkin » Sat Mar 21, 2020 12:20 pm

I dived a little bit into the WINE source and found out that the WINE midi mapper seems to be restricted to 16 midi ports.

In the file midimap.c, a MIDI port array is defined with a length of 16.

Code: Select all


typedef struct tagMIDIMAPDATA
 {
 struct tagMIDIMAPDATA*      self;
 MIDIOUTPORT*        ChannelMap[16];
 MIDIOPENDESC        midiDesc;
 WORD                wCbFlags;
 } MIDIMAPDATA;
In continuation, there are various for-loops that also assume 16 entries in the array. Each MIDI port can handle 16 MIDI channels but the maximum numbers of MIDI ports isn't 16.

Post Reply