Post by PeteAs I indicated, I keep as far away from Windows as possible (:-)),
so I'm not going to be much help, I suspect...
Post by j***@gmail.comWell it is just the softsynths, "well actually the synths that conform
to micorsoft midimapper", i use XP on my old music computer. Hardware
and wavetable synths no problem, but synths in the midimapper category.
There is not that many but like SYXG 50 and virtual soundcanvas. Of
course those things have lot of latency it is not VSTI's but for people
on the net there is basicly on windows 10 just free Virtual midi synth
like coolsoft to try out. And they do not respond for some reason.
Haven't figured out what you mean by "conforming to midimapper".
I took a quick look at the MS support page, and I have to say it looks
totally archaic! I guess it dates from the days when each card had its
own concept of MIDI, and you had to figure out which channels a card
was happy with. I've never had any kind of Synth -- hardware or software --
that didn't support all 16 channels.
Post by j***@gmail.comA general sound library/standard is not a bad thing, i do like GM synths
and GM wavetables, and i do like software synths too.
But the GM standard should not been abandoned it should be developed to next stage.
I also don't know what you mean by GM being abandoned. Most of the files
I have are GM. Some are 'GS' or 'XG', but those are just supersets of
GM, and don't sound too bad on a GM synth. My old MidiMan box died, so
my only hardware synth is my digital piano -- which, in addition to its
own higher quality instruments, has a full GM set. I almost only use
software synthesis these days, with Soundfonts to supply the instruments.
My usual setup has a full GS set. (And of course with Soundfonts I have
all sorts of other goodies like a theatre organ and "vintage" sounds!)
Anyway I did download your code to take a look. You're right, I can't
run it properly in Linux Firefox. That doesn't have WebMidi enabled
by default. There are plugins to provide it, but one involves running
a scary shell script that seems to do all sorts of strange things like
writing disk sectors directly! Umm -- no thanks. Not something I
otherwise need, anyway.
I am wondering, though, if you're aware that 'Note On' is not always
'144'! Some of the tutorials on Web MIDI I browsed don't make that
clear. The channel number is also included in that value, so 144 is
only correct for chan=0 ("Channel 1" in user parlance). A drum channel
("ch 10") note-on will be 153 (144+9). Similarly for note-off, of course.
Yeah that is the problem when you do not code frequently you forget your code, as i said i am not that much of programmer. When i started looking for status message to set midichannel i realised it was already there, most of the code was written right after christmas, but now i am working on it again and just as you said, i have already implemented it i guess question is if i record what i implemented it when **recording**..
I got confused reading a document about midi last week, where they did talk about status messages vs note messages LoL. But i probably send the correct bytes, since i can hear changes to drums when i change a track to midichannel 10.
UI.JS
function sendMidiChannel(){
//Set midichannel on the track
channelC=document.getElementById("out_channel").selectedIndex+1;
if (channelC==1) {NOTE_ON=0xC0}
else if (channelC==1) {NOTE_ON=0x90; NOTE_OFF=0x80;}
else if (channelC==2) {NOTE_ON=0x91; NOTE_OFF=0x81;}
else if (channelC==3) {NOTE_ON=0x92;NOTE_OFF=0x82;}
else if (channelC==4) {NOTE_ON=0x93;NOTE_OFF=0x83;}
else if (channelC==5) {NOTE_ON=0x94;NOTE_OFF=0x84;}
else if (channelC==6) {NOTE_ON=0x95;NOTE_OFF=0x85;}
else if (channelC==7) {NOTE_ON=0x96;NOTE_OFF=0x86;}
else if (channelC==8) {NOTE_ON=0x97;NOTE_OFF=0x87;}
else if (channelC==9) {NOTE_ON=0x98;NOTE_OFF=0x88;}
else if (channelC==10) {NOTE_ON=0x99;NOTE_OFF=0x89;}
else if (channelC==11) {NOTE_ON=0xA0;NOTE_OFF=0x8A;}
else if (channelC==12) {NOTE_ON=0xA1;NOTE_OFF=0x8B;}
else if (channelC==13) {NOTE_ON=0xA2;NOTE_OFF=0x8C;}
else if (channelC==14) {NOTE_ON=0xA3;NOTE_OFF=0x8D;}
else if (channelC==15) {NOTE_ON=0xA4;NOTE_OFF=0x8E;}
else if (channelC==16) {NOTE_ON=0xA5;NOTE_OFF=0x8F;}
output = mid.outputs.get(outportindex);
}
Post by PeteGood luck with your researches.
-- Pete --