I figure it had so much relevance to all who are embarking on a GM Voice project, I'd put it here as a sticky. If anyone else has any cool utility to add please do. All of these programs, especially MIDI-Ox are outstanding (be sure to get MIDI-Yoke when you get MIDI-Ox). Like Thomas said, this opens so many doors......

Quote:

Hi gang,

*** Windows XP users take note ***

Well, it's been an insane week of Googling, experimenting and using blasphemous language, but I think I've got a handle on this MIDI GM/delay thing. To save others the botheration, I thought I'd write up what works for me.

Here's the deal: The Windows GM Wavetable Synthesizer that comes with Windows XP sounds pretty good, in terms of audio clarity. But it suffers from an inherent quarter-second lag when using it as a standalone, realtime sound generator. As near as I can tell, nothing can be done about that.

So...I decided to forget it altogether and put together the following system:

Note that all of these Windows XP programs are free for the download. With them in place, I can now play GM voices in real time without any appreciable time lag.

In other words, by using the above suite of programs, I can now ignore the disgusting Windows XP GM synth and start making realtime music again. It's not as elegant as simply turning on the computer (which is what I was hoping would be the case with Windows), but it works.

I spents hours and hours this week to arrive at this solutions, with the help of many people providing suggestions along the way. I hope this will save someone else the bother.

In short, if you have Windows XP, get the programs listed above and you'll be all set to go.

sfz really is the most amazingly clean and useful SoundFont player you'll ever find, I think. And this book chapter was clearly written by someone in the know. You'll find stuff here no one else has written about. Given how the good things tend to disappear from the Web without warning, I recommend you download both of these pronto.

I can get sfz to work now, but I can't see it in MidiOX. I can't see Cakewalk in MidiOX either. I think I must be missing something (my brain maybe? ) 'cos I still can't see what use MidiOX is. If it doesn't add any functionality to a DAW like Cakewalk, how do I use it? It's been so long since I actually did any music, I'm probably still "hung up on some clown from the sixties man!" _________________What makes a space ours, is what we put there, and what we do there.

It works the other way around ... install MIDI-yoke, it will add a bunch of virtual MIDI ports to your PCs and you can use those to connect MIDI enabled programs together (as multiple connects can be made to the same virtual port)._________________Jan
(yawning shifts perceived pitch, making things more interesting)

I use an old 486 machine as my main sequencer, running Cakewalk for DOS. The sound card on this machine provides the MIDI In and Out.

However, I also have a laptop with a USB MIDI port set up as an additional instrument. It's running sfz. And MIDI-Ox on the laptop does all of the magic of ensuring the correct instruments appear on the correct channel. Without MIDI-Ox, sfz would play everything that came in; remember, it's a fully multichannel, polyphonic synth so you're generally going to want to filter the MIDI data going to it.

In short, I'm running sfz as 16 separate polyphonic instruments on its own computer. MIDI-Ox takes care of routing the MIDI data to the correct instrument.

As for whether MIDI-Ox adds any functionality, ask Scott. I believe he is a committed user now and is discovering that it's darn near essential for any sort of composing.

Hope this helps,

Thomas Henry

P.S.: sfz is also damn impressive, and certainly the cheapest way I know (free!) to add an entire high quality orchestra to your recording studio.

I use an old 486 machine as my main sequencer, running Cakewalk for DOS. The sound card on this machine provides the MIDI In and Out.

When that 486 is one of the first series and you can find an old MPU401 ISA card (or a clone) for it your MIDI might be just as good as on old Atari machines. Heck, even under windows one could get good timing then ...

Sorry for the OT, good memories _________________Jan
(yawning shifts perceived pitch, making things more interesting)

I didn't mean to be presumptious, or sound like a smartarse, I just want to find a good reason to incorporate it into what I do.
I do all my composing on my one computer, on which I run Cakewalk. Anything I do in Cakewalk gets sent to "Soundfont Device A", "Soundfont Device B", or to the external Midi port.
"Soundfont Device A" and "Soundfont Device B" are both inside my XFi soundcard. They have 16 midi channels each, and can have any soundfont loaded into them and remembered for each piece. (I've got about 900MB of Soundfonts I've collected, I could organize to send you the whole set if you like.) They are all .sf2 files. Does that make a difference? I think Sfz can play sf2 files.

I'm just not sure how or why I would incorporate MidiOX into this setup.

BTW You'd think with everything setup so neatly I'd be outputting more music wouldn't you? Yes,.... It makes me wonder too. _________________What makes a space ours, is what we put there, and what we do there.

I suppose MIDI-Ox's usefullness may vary, according to the situation. MIDI-Ox is a Godsend to my setup.

Right now I'm using two sequencer programs - Softstep, which is an excellent algorithmic software step sequencer and this miserable sequencer called Anvil Studios.

As an example of one use, Anvil studios, though it advertises that it can act as the master, will not on my system, because I can't send the output to a "synthesizer". A synthesizer, in Anvil's view, is a file that defines some synthesizer. I have no such file on hand for any of my synths, so when I try to port it straight to my MIDI out, Anvil tells me that this "Makes no sense" (!) because I "don't have it connected to a synthesizer". I don't know what they think my frikkin MIDI out is connected to - a flowerpot, perhaps? So, what, pray tell, does one do? Why, one simply buys their whatchamacallit synthesizer defintion program for X$$, then Anvil will be happy to act as master as soon as it "knows" it's connected to a synthesizer. So, they say it does it for free but it don't.

But, I want to sync Softstep with Anvil. And I want to send the clock signal out to my SH-201, too, in case I want to use the arpeggiator and LFOs in time with the material.

Enter MIDI-Ox. Remember, as Jan says, the true bow-ah of MIDI-Ox is in MIDI-Yoke - you gotta have MIDI-Yoke. Each "Yoke" in MIDI-Yoke is an exclusive pipeline to or from any MIDI device (hardware or software) that you have. MIDI-Ox has this great MIDI clock/transport built into it (it also has MTC, if that's your thing). I start up an instance of MIDI-Ox and pipe the clock to the yoke 5, and to, say yoke 1 and yoke 2.

Yoke 1 feeds the clock/start/stop info to Softstep, and Yoke 2 feeds the same thing to Anvil (actually, come to think of it, I could do that with one yoke, but anyhoo..). Softstep and Anvil are set up as slaves. Softstep sends its data out to, say yoke 3 and Anvil sends its data out to, again for example, yoke 4.

I then start a second instance of MIDI-Ox. I set as the input yoke 3, yoke 4 and yoke 5. Now Softstep and Anvil are feeding their output to this second instance of MIDI-Ox. And the first instance of MIDI-Ox is sending the clock/start/stop in as well (so it can go out to external equipment). I then set the output of the second instance to the computer's MIDI output. The MIDI-Output can then connect to whatever I want - DW6000, SH-201, SC-7, MTS-100, MX-200, the recorder, whatever. I can then bring up the first instance of MIDI-Ox and use the transport to start and stop everything in sync. I have seen the glory of synchronizing the Klee sequencer to MIDI, thanks in no small part to MIDI-Ox (and, of course, Thomas' MTS-100).

You don't have to remember this crap every time you want to set things up to do that - you can save the configuration in MIDI-Ox, and call it back up when you want to (of course, you have to remember the I/O of the other programs, but that's simply a matter of looking at how MIDI-Ox is set up).

Another cool thing is I was able to pipe the Softstep data out to Anvil, and record MIDI sequences straight to Anvil by using the transport control of MIDI-Ox. After that, the sequences were "embedded" in different tracks of Anvil, and from there you can edit and manipulate them further.

MIDI-Ox is a powerful data-mapper as well. This means you can take any MIDI data and either stop it from going through to certain devices, or you can transform the function. Say you have a keyboard going into MIDI-Ox on a certain channel. If you want to split that keyboard and send different sections of the keyboard to different channels, MIDI-Ox makes it supremely easy to do. You can split your keyboard into as many chunks as you like (control 16 different instruments with different sections of the keyboard, for example). You can reserve keys on your keyboard to perform certain functions.

The SH-201 pitch bender is just that - on the SH-201 you can assign it to either the upper voice, the lower voice or both, for bending pitch. Period. Pppthhh. There are times when want to control the filter cutoff, for example, and not the pitch. I just disconnect the bend from the voice on the SH-201 itself and pipe the MIDI out through MIDI-Ox. I then use data mapping to change the pitch bend data to cutoff data and send that to the output, on the same channel the SH-201 is on. There is no MIDI-Loopback - when things are set up, the only data that gets fed back to the SH-201 is cutoff data. I bend the bender, the filter sweeps, I'm happy. I then went a step further and changed the modulation control to bend the pitch of just one oscillator on one voice - this is impossible to do with the "native" SH-201. It's very good for making extreme sync sounds beyond what one can do with the limited onboard pitch envelope or for making sync noncyclical (and more wild) than the LFOs permit. Bend to either side - alter filter, bend up, sweep one VCO for manual synculization.

Of course, this can be done with any control on the SH-201 (modulation, pitch bend, D-Beam, pedal) or any number/combination of controls - I could remap the controls on entire instrument if I wanted to. Data map setups can be stored and recalled at one's imperious whim as well.

I can get SFZ to work. And it is wonderful. But, on my computer, there's a price.....

When I first loaded SFZ, the program came up, but nothing happened when I loaded a soundfont. Complete silence. The destinations were listed in the menu as something like "none" (I forget). Opening up Asio, I was presented with the message "No WDM devices found" or something along those lines.

I still don't know much more than the difference between my ass and a hole in the ground about WDM, but I did know I didn't have it on my system. I've got, on this computer, I think something like Fonik has - some version of the Yamaha XG sound card thang. So, I went a-hunting for drivers. Lo and behold, I found a WDM driver for some form of the Yammie soundcard. I loaded it up, and SFZ came to life. It sounded great! It sounded....loud. I thought I'd tone it down a bit and...and.......and.......no volume control; (the Winders mixer panel) was missing from my system tray.

WTF? Accessories/entertainment/mixer - blip. No display. No control. Becoming concerned, I brought up Audacity. No input device found. No output device found. My mixdown program - no input device, no output device. But, SFZ worked like a charm.

Panic set in, because this is the only computer I have to mix down to that doesn't randomly put disk access pops in the middle of the mixdown. For that purpose, it was now dead to the world.

Sooo, I finally found the disk to reinstall the original soundcard drivers. That (thankfully) worked, but, of course, killed SFZ. I've been driving in circles on both my control panel and the net trying to figure out how to have my cake and eat it too. On the relevant forums, every mention of the same or similar problem starts out with earnest help from the on-line computer gurus and just sort of.....stops. I've never seen it resolved.

I've got four sets of drivers - two of them are WDM - they work as mentioned above. One driver set forced me to make four floppy disks only to find, after that ancient task was completed, they were the same drivers as my originals. One promising sounding file, dsxgwdm.exe will not execute on my system.

I figure, when I want to use SFZ, I can load the WDM driver, and for other tasks, the original drivers. That situation, however, gives me concern, being WIN98, one never knows when the driver installation will go ker-plunk and I have to reinstall the whole fucking system.

Such is life among the people to cheap to spend money on a new (non-Vista) computer. Sometimes, hardware is just...more...fun. Just sometimes, though.

Maybe you need special volume control / mixer software for the card as well (besides the drivers)? This could be a separate download ..._________________Jan
(yawning shifts perceived pitch, making things more interesting)

Is MIDI yoke the window called "midi port routing"? Why don't they call it midi yoke?
I still can't find Cakewalk in Midi OX. Does running Midi OX mean that I can't use Cakewalk? Why would I want that? I don't understand.
If I can't find Cakewalk as an input/output in MidiOX what use could it be to me? Anything I did using Midi OX couldn't be synced with Cakewalk anyway.
I'm so confused and frustrated. I feel like you're all on another planet or something. It's because of all this mystical port routing and soft synth weirdness that I started moving away from computerised music and building analogue synths.
I used to understand MIDI really well. In the 80s! When the MIDI cable went from the MIDI out socket to the MIDI in socket, and that was that. Now we have these applications which can take a virtual midi cable and run it from point A to point B to point C so that we can take it back to point A which is where we started. Why????

BTW, Thanks Scott for your detailed explanation of how you are using MidiOX. I know you tried hard, and I appreciate it. I think I'm probably just a little too thick in this case._________________What makes a space ours, is what we put there, and what we do there.

Righto, Jan - MIDI-Yoke is a separate download at the MIDI-Ox site. Once you load it on your computer, I believe when you open the MIDI menu in cakewalk, you'll see, besides your MIDI-Out and MIDI-In connectors (or whatever it is you see now), Yoke 1, Yoke 2, Yoke 3, etc will now magically appear. So, you could route cakewalk out on, say Yoke 1 to some other application (all your MIDI apps will now show these Yokes). You could route some other soft controller to Cakewalk on a yoke.

Example:
1. Say in Cakewalk, you choose Yoke 1 as the output.

2. When you open the input to SFZ, you'll see the yokes lined up, ready to be selected. Say you choose Yoke 1 as the input. You've just connected the MIDI output of cakewalk to the MIDI input of SFZ, so Cakewalk is now controlling SFZ.

3. You open up MIDI-Ox, again your yokes all appear, because you've installed MIDI-Yoke. You choose Yoke 1 as the input to MIDI-Ox as well, and you choose your MIDI port as the output. You've now just connected the output of Cakewalk to your external synthesizer as well (provided of course it's connected to your computer's MIDI output).

Now, cakewalk will be controlling SFZ through yoke 1. Yoke 1 is also sending the same MIDI data to MIDI-Ox, which directs the same data out to your MIDI port. So, whatever you have connected to your MIDI output will be controlled by the same Cakewalk data. Just mix the soundcard audio output with your MIDI controlled synth(s) and you're controlling the whole schmear with Cakewalk.

In other words - you're using Yoke 1 as a cable. Picture cakewalk as an actual physical box. You use this Yoke 1 cable that is connected the MIDI out of your physical cakewalk box to the MIDI in of your SFZ box. In fact, you can picture Yoke 1 as a "Y" MIDI cable, because it's connected to the input of your SFZ box AND it's connected to the MIDI input of your synthesizer (through MIDI-Ox).

It's easier to do than explain. It was hard for me to visualize until I just installed MIDI-Yoke, then after some experimentation, it became much more obvious what it was good for, at least in my setup.

SFZ - Hey, got it working fully with the WDM driver - no more cripplement of the puter. Dunno why - I guess it had to do with this other nagging problem I had. For the longest time, on bootup, the computer's always bitched about PTUDF.VXD not being there, though it thought it should be. This happened shortly after I uninstalled a Sony CDR drive. Tonight I got sick of it, poked around in the registry til I spotted the bastard, then deleted the key. Totally unrelated to that, I thought I'd load the WMD driver again, and lo-and-behold, the SOB works fully now. I'm chuffed.

Good job, Scott. I wonder if you'd be willing to post just a brief outline of how to setup sfz, MIDI-Ox and MIDI-Yoke on a Windows 98. Also, what did you do for the ASIO driver, if any?

I'm running my stuff on an XP machine, and apart from dinking around with ASIO until I got it right (I'm using a USB audio card which is nasty going, but cheap), everything fell into place quite well for an amateur like me. But I was thinking of seeing if I could make it work on my old Windows 95 machine as well.

I just downloaded MIDI yoke, and you'll all be glad to know that the penny dropped with a big loud resounding thud (I think I may have overdone the cathedral reverb a bit)!
I still think MidiOX is of limited use to me for now.
But Midi yoke means I can route Cakewalk to it and then off to anywhere else I like. This is very good! Especially if I was to get one of these new fangled soft synth thingamajiggies that all the kids are raving about these days! Then I could run it straight out of a Cakewalk track.
I don't know if it makes sense for me to setup a soundfont in Sfz and then send Cakewalk data to a Midiyoke and then on to Sfz, when I could load the same Soundfont in Cakewalk and cut out the (two) middlemen. The playback of Soundfonts is going to be limited (at this point)(voice wise) to what my single sound card can generate anyway aren't they?_________________What makes a space ours, is what we put there, and what we do there.

But yes MidiYoke/Ox is a very useful and flexible tool to connect MIDI devices and MIDI software that could not be connected otherwise.

BTW A MidiYoke like tool is also available for Audio. Virtual Audio Cable it's called, it's not free but pretty cheap. It is a multi connect driver (like MidiYoke) so you can pipe audio from one program to several others.

BTW BTW .. MidiYoke will also merge I think. So you can connect multiple MIDI generators to the same Yoke device, and one or more consumers too that will then see a merge of all the generators' data._________________Jan
(yawning shifts perceived pitch, making things more interesting)

Yes, SFZ was just an example. I don't know if SFZ is going to do you a lot of good or not. The other new-fangled soft synths would probably where you would put MIDI-Yoke to use. Or soft controllers - grab Softstep 1.3, Uncle K - you can use it in conjunction/sync with Cakewalk by using Cakewalk as the master and yoking to softstep (or vice versa). 1.3 is the freeware version - make sure it's 1.3. It's just like programming a step sequencer, only much, much more (like a jillion sequencers of different lengths with an equally large number of clocks and other logic devices).

MIDI-Ox to me is useful for the following reasons:

1. I use it as a utility to detect what is going on for each channel, in and out, (sometimes that helps to trouble-shoot why something I think should be happening is not).

2. As the MIDI-Merge that Jan mentions.

3. Remember that MIDI-Ox can easily be run in multiple instances - this makes it fairly powerful for a number of reasons.

4. As a mapping tool - I can manipulate and transform the function and range of any CC - I can even reverse the range of a CC. With the control surfaces I have available (I don't have a dedicated MIDI controller), this greatly increases the flexibility of what I can do in real time.

And beyond that....for example, Soft Step lets a sequencer control the pan of a voice while another sequencer can control the pitch, while another sequencer can control the velocity,and another sequencer can control the actual patch or voice assignment. But, what if I want a Soft Step sequencer to control the cutoff of my SH-201 filter? There is no facility in Soft Step to do that. All I have to do is yoke it to an instance of MIDI-Yoke, and tranform the CC from, say, pan to cutoff, and now a soft step sequencer is controlling the cutoff of the synth voice that may be controlled by a softstep sequencer, or some track in Anvil, for that matter. In fact, I could still let the pan CC still control the pan of the voice *while* controlling the cutoff of the filter. Or control the pan of a voice in an entirely different channel. Or transform it to some other CC controlling something in a different channel. You can change any CC to any other CC while manipulating the range. You could reverse the direction of each CC, and on and on - for me, that's very, very powerful. It brings it to my general point of reference of using voltages, processors and patch cords to perform those tasks in the analog world.

Another example - Anvil is limited to adding control events unless you buy one of their packages which actually makes it semi-usable. Har! Just program a series of notes in a track, and pipe that to its own channel. Yoke it to MIDI-Ox, do the magical tranform thing, and all of a sudden that range of notes becomes a range of control for...whatever is CC'able on any device or channel.

4. As a MIDI-Filter, which is almost indispensable if you are using it for GM voice stuff (and where Thomas is particularly putting it to good use). I haven't had the opportunity to use it in this capacity yet - it takes more than one MIDI port to use it, which I don't have. But, for the subject here (the GM voice), man, you really need something. Remember, the GM is going to respond to anything on any channel. If you have one part going to synth A on channel 1, one part going to synth B on channel 2, and one part going to the GM voice on channels 3 and 10, the GM voice will happily play the parts that are on channels 1 and 2 as well, which you probably aren't going to want.

To prevent that from happening, you could route the MIDI output through to the synths, then run that MIDI-through to the second input, where MIDI-Ox would filter out channels 1 and 2 and just leave 3 and 10 for the GM voice. Actually, you could do the same thing without the filtering by first selecting which output the channels go to, but in my case, I will have more than one GM synth going - the SC-7 is also GM, so MIDI-Ox would become indispensable. I suppose the same applies to SFZ? If I should happen to be using the internal soundcard synth, even more so.

Thomas - I'll do a write-up on it.

Right now, I'm still trying to figure out how to do the plug-in effects (I used Asio4All, but can't figure out the plug-in angle yet).

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum

Please support our site. If you click through and buy from our affiliate partners, we earn a small commission.