quadernovstQuaderno, n-Track and the FL Studio VSTi |
Focusing on n-Track as a host, this article discusses the configuration of FL Studio as a VST Instrument (VSTi) plug-in. Although FL Studio is already a complete and very capable sequencer, the software application becomes simply amazing when combined with Quaderno, a feature rich electronic music composition engine. The n-Track VSTi host architecture serves as a hub that directs the communications between Quaderno and FL Studio. All three applications work seemlessly together providing the definitive computer assisted compositional experience. Using FL Studio as a VSTi plug-in with n-Track is not terribly difficult. But it is fiddly, especially, if you want to use multiple channels in FL Studio and a multiple channel MIDI sequencer such as Quaderno with n-Track. The difficulties are not based on defects or design problems, it's just that there are quite a few parameters to adjust and quite a few options to choose from. IntroductionThe purpose of this article is to document some of the highlights involved with configuring the entire system so that MIDI and Audio flows correctly through the various applications. The following applications were used: Quaderno Quaderno is a unique MIDI out generator. It is a stand alone composition assistant. It has many features for scaling, harmonizing and special effects. MIDI Yoke Junction MIDI Yoke is a MIDI Patch Cable driver. It is a Windows (Versions 3.1, 95 and NT) multimedia driver and is used to connect any Windows MIDI application outputs to any other application’s inputs. n-Track Flavio Antonioli's n-Track is an exceptionally powerful and robust multi-track audio and midi recorder. Among its many features is full support for the VSTi host architecture. FL Studio FL Studio is the premier tracker and has more features than you can shake a pointy stick at. Because FL Studio can do it all, you might wonder why you would go through all this trouble. The reason is simple - Quaderno. The basic patch for this system runs along these lines: MIDI is generated by Quaderno. Well, lots and lots of MIDI is generated by Quaderno. Quaderno can broadcast on any Microsoft Windows MIDI driver on any channel, but we'll restrict our example to MIDI Yoke port 6. Why 6? The number is a pretty cool number and the port wasn't being used for anything else at the time of development. The point is that MIDI Yoke port 6 receives the MIDI and passes it along to n-Track. n-Track is configured to listen in on Port 6 by setting parameters in the n-Track MIDI Track Properties dialog. Although n-Track can route the MIDI to virtually any other port including other MIDI Yoke ports, in our example we will simply route the MIDI to the FL Studio VSTi plug-in. Figure 1 - The Basic Patch
Upon reviewing the diagram, you may think that it looks simple enough but therein lies the root of all MIDI Software evil. If you don't know MIDI too well and if you don't understand the MIDI parameters and configuration of your software tools and if you've never worked with a VST or any other type of plug-in, well, you're going to be hopelessly lost. This article is not going to explain it to you. If on the other hand, you've worked with a MIDI utility like MIDIOz Arp or Building Blocks or Drum Flow, then you should be beginning to see how incredibly powerful and flexible a working model like this could be. This is without a doubt the ultimate Electronic Music Composer's Production Facility. MIDI YokePutting together such an elaborate system requires some form of communicating MIDI information between programs. Ordinarily, MIDI is a stream of information that comes into the computer via a hardware MIDI interface, such as the Roland MPU-401 or an Edirol UA-20 or some other MIDI device. Microsoft Windows communicates with this hardware via a software driver. (Windows communicates with all hardware via software drivers; MIDI devices aren't any different.) The list of available MIDI ports is located in the Control Panel: Multimedia in Windows 98 and Sounds and Audio Devices in Windows XP. In Windows XP, there is no separate MIDI tab but the list is located on the Audio Tab in a MIDI section. Figure 2 - The "Official" MIDI Port List
If you have installed MIDI Yoke correctly, you will see the 8 MIDI Yoke virtual ports in this, the final list of MIDI ports. MIDI Yoke ports have no real associated hardware. But to any MIDI software application such as Quaderno or FL Studio, Windows gives no indication that there is no hardware and the applications have no way of knowing any thing except that which Windows tells them. So software applications can broadcast MIDI to a virtual nowhere that other applications are listening in on. Quaderno does exactly that. Quaderno sends its MIDI to MIDI Yoke port 6. And n-Track listens in for any MIDI that appears at MIDI Yoke port 6. Quaderno MIDI SettingsThe first step in configuring this basic patch is to set the MIDI parameters in Quaderno. Fortunately, this is probably the easiest part. If you know what you're doing, you basically pick the port and the MIDI channel to broadcast on for each of the grids in the Session space. If you are just getting started, you definitely will want to suppress program change messages from reaching n-Track. More information on this later. First, some background on what's happening. Figure 3 - Quaderno's Session Space
Quaderno can broadcast MIDI on any of it's 196 plans in the Session grid. But we're only using the one MIDI port, so if you thought you could magically transmit to 196 separate n-Track tracks, well, you would be wrong. Each n-Track Track has to be set up individually. And n-Track is only going to listen in for any of the 16 channels of the selected input port. Each track will have a unique channel listed in n-Track as "Channel 1" to "Channel 16". So, no. Right now, this model is limited to 16 instruments. n-Track documentation implies that multiple input ports may be used but it's not clearly documented how to do this. The MIDI port and channel that you select in the Session space are references to virtual Quaderno MIDI ports that are defined in the MIDI Setup space. There is a wide variety of filters and other options in the MIDI Setup space that you may make use of with more sophisticated patches. For instance, you may use the MIDI Setup space to rename the MIDI Yoke ports so that they more accurately reflect what the patch does. For our example, you might wish to rename MIDI Yoke port 6 to "n-Track Pipeline" or something along those lines. Figure 4 - Quaderno's MIDI Setup space
While setting up n-Track to work with Quaderno, you may find it very useful to turn off Quaderno's transmission of program changes. You will use the MIDI Setup space to do this. Open the MIDI Setup space and select MIDI Yoke port 6 by clicking on the right arrowhead in the "Quaderno Redirect" column. Then click off the "PRG Change" filter button. When FL Studio is being used as a VSTi plug-in, you will set it's instrument's presets using the FL Studio user interface and not Quaderno. This indeed cuts back the flexibility of Quaderno somewhat. But the basic patch described here is already very complicated. Subsequently, the passing of MIDI program change messages to the FL Studio VSTi is left for a later, more advanced exercise. As FL Studio has a tendency to remap program changes on the fly and Quaderno transmits program changes by default, you may find the combined behavior terribly confusing. You are strongly encouraged to supress Quaderno's transmission. What is it doing? MIDI-OX To the RescueSo, you've got Quaderno transmitting to MIDI Yoke port 6. But how do you know? Quaderno doesn't make a sound. While you're in Quaderno's Session space, Quaderno gives no indication that it's doing anything at all. And because MIDI Yoke is a software only driver it's not really hooked up to a sound generating device or program at this point. Without some way to monitor the MIDI stream, you'd really have to have the patch completely put together with all the correct settings done already to get a result. If you're not too comfortable with your tools yet, troubleshooting the patch can be so frustrating that you might just give up. Well, this is the main reason Jamie O'Connell and Jerry Jorgenrud created MIDI-OX. You might have noticed MIDI-OX when you downloaded MIDI Yoke. It's made by the same folks. Figure 5 - MIDI-OX displays Quaderno's output.
After you set up MIDI-OX, immediately click on the View menu and then click on the Input monitor. The input monitor will display all MIDI messages appearing at any of the MIDI Yoke ports (assuming your MIDI Yoke ports are selected in MIDI-OX's MIDI Devices option). Now, when you click on a Session plan routed to MIDI Yoke port 6, you'll see exactly which notes are being transmitted. Don't even bother with n-Track until the MIDI input monitor in MIDI-OX makes sense to you. n-Track will never help to make Quaderno work correctly. n-Track will only try to listen. Definitely get a copy of MIDI-OX. You'll use it more than you might think once you get used to it. Note: Don't forget to open the Input monitor. The default is for MIDI-OX to open the Output monitor on start up. But the Output monitor only ever makes sense for external synthesizer ports. It is very easy to set up MIDI-OX and MIDI Yoke so that it looks like you'll use an output port- but don't do it. You'll only become very confused. Just remember: open the Input monitor. STOP! Take a deep breathComputer programs are developed from the ends inward. For instance, when writing a sub-routine, the developer first writes the beginning of the routine, then jumps ahead to the end of the routine and writes that. The rest of the time, the developer fills in the remaining middle. Usually, programmers do this because the beginning and the end of a subroutine is very easy to write - it's normally just house keeping and preparatory logic and the code is written in exactly the same way for each routine. Normally you would think that the next step is to hook up Quaderno to n-Track. This is the way the diagram looks. This is the way it looks in your imagination, too. But you'll want to stop with Quaderno at this point and just close it down and try not to think about it for a short while. Just like writing a program, we want to jump ahead to the end of the routine or patch as in our case. We want to create the FL Studio VSTi plug-in. We'll get the plug-in working and then start back in the middle later. To create a VSTi plug-in using n-Track, select these menu items: Track=>MIDI=>New VST Instrument Channel=>FL Studio VSTi(Multi) Figure 6 - The FL Studio plug-in
When you click the big fruity button, the FL Studio plug-in will launch. The FL Studio plug-in looks exactly like the ordinary stand alone version of FL Studio and has all of the same features. The "Multi" version of the plug-in includes some additional features for routing the audio output back into n-Track for tracking purposes. Initially, when the VSTi plug-in comes into existence, FL Studio creates a large number of channels. You'll want to select the "All" group filter on the step sequencer, select all the channels and delete them to start over. The example screen prints in this document creates four new channels. The examples use the Fruity SoundFont Player but any sound producing generator could be used. As you create your channels, be sure to set the name for each. The name of the channel that you enter is displayed by n-Track and if you use the default names, you can easily become confused. Figure 7 - The FL Studio Mixer and Step Sequencer
The "Multi" version of the FL Studio plug-in will let you assign a separate audio output for each channel. The outputs are listed at the bottom of the mixer, so you'll want to link each channel to a track on the FL Studio mixer. Then give each track an output assignment from "FL 1" up to "FL 16" depending on how many tracks you end with. Each of the 16 available outputs are all stereo (so it's really 32 outputs). Assign the Master track to output "FL 1". This output will appear in the n-Track mixer where it will normally be muted. The Master track can be useful for troubleshooting purposes. A way to suppress the Master track from reaching n-Track still needs to be discovered. Right now, the workaround is to assign it to "FL 1" and then mute it in n-Track. Just Keep Working BackwardsOnce you've created a hand full of channels, take a second to think about what you've done so far. You have created the instruments for a VSTi plug-in, one instrument per channel. Each channel will receive MIDI commands through a connection that we'll soon make between n-Track and FL Studio. The MIDI commands are converted to sound by the Generator that is hooked up to the FL Studio channel. The sound produced by each generator is first routed to their respective tracks in the FL Studio mixer. Each track is then routed to a physical audio output that we'll also soon connect up to n-Track. So, in a nutshell what you got is "MIDI In, Audio Out". Close FL Studio to return to n-Track. Don't worry. All the information FL Studio needs is actually a part of the n-Track configuration and you won't loose your work when you close down FL Studio. You're simply hiding the FL Studio user interface by closing it. FL Studio is actually still running. Once you get back to n-Track, create a new blank MIDI track by selecting these menu items: Track=>Insert Blank Track=>MIDI n-Track MIDI Track PropertiesAfter creating a new blank MIDI track, you'll need to configure the track so that it receives MIDI on the correct port and channel and transfers that MIDI to the FL Studio VSTi plug-in. Double click the new track's name to open the MIDI Track Properties dialog. Figure 8 - nTrack's MIDI Track Properties
Give the track a name. Select the output port "Instrument - FL Studio VSTi". Doing this refreshes the items in the Program drop down list. Select one of the FL Studio channels that you created in the FL Studio plug-in. This is why you named the channel. The channels you create appear in nTrack's Program drop down list. Then finally select the MIDI input channel in the Record From drop down list. This should coincide with the output channel of Quaderno's Port 6. We're still not quite ready for Quaderno, however. You may find it very useful to check the flow of MIDI information from n-Track to FL Studio. It's amazing how many things can go wrong when these two very sophisticated programs are linked together. So before re-launching Quaderno, take the time to create some recorded MIDI in n-Track. First select the first track in n-Track with the mouse. The track is selected if it is highlighted. Then right click the track and select the Piano roll menu item. Paint a few notes into the Piano roll and the play the track back. FL Studio should produce the expected sound for the generator that is tied to the n-Track track. If it doesn't, then you'll need to go back and check all of your work so far. If you placed some notes into FL Studio's step sequencer, you might be surprised to hear your sequence instead of the notes recorded in n-Track. FL Studio happily uses the VSTi architecture to synchronize it's recorded notes with its host. Later you might want to experiment with this feature. For now, you should make sure that the Step Sequencer is empty of notes. Test all of the tracks with the piano roll. You may find it very useful to have a very simple production in n-Track that you can easily loop. The MIDI in the Piano roll will play over and over while you're busy adjusting appropriate initial levels and troubleshooting problems like tracks not sounding. n-Track VSTi Required settingsTo correctly configure n-Track so that it will listen to and pass along MIDI from Quaderno, certain settings are required. Specifically, the settings are referred to as Live Input Processing, Recording Mode and certain MIDI Device settings. Figure 9 - nTrack's Live Input Processing and Recording mode
n-Track requires that Live Input Processing is turned on. Live Input Processing allows you to use effects and VST instruments without engaging the transport. In most cases, you simply click the Live button. If this is the first time you've used this feature, you may need to makes some adjustments to your n-Track audio configuration. For instance, when using an IBM ThinkPad, the sound card might be set to record "what you hear" by default. This recording setting in the Microsoft Windows Volume application needs to be changed in order for Live Input Processing to work. n-Track also requires that the recording mode is set to "Audio and MIDI". Do this by clicking on the microphone tool so that it looks like a microphone and a tiny piano keyboard. Setting the toolbar icon so that it looks like this indicates that both MIDI and Audio will be recorded. Figure 10 - nTrack's MIDI Devices
You'll need to make sure that you've selected MIDI Yoke port 6 in the MIDI Devices dialog that is a part of the n-Track Preferences dialog. Make sure the Keep Devices Open check box is turned on and that the Input to Output Echo is set to Auto. These are the normal settings for using n-Track with an external keyboard. Because of the reasons discussed earlier in this document, n-Track cannot tell if a real electronic keyboard is on the other side of the MIDI Yoke driver or some other program is on the other side. n-Track does not listen to the MIDI Yoke port by default - the default port is usually a real external port. So if you've ever used an external keyboard with the program, an incorrect input port setting can be the cause of much confusion. Almost There - Back to the MiddleSo at this point, you should have a handfull of MIDI tracks all set up to play VSTi instruments. The MIDI tracks play back the correct sounds and the levels are great. So, all we should have to do is launch Quaderno and start jamming, right? Well, for some reason that is not quite clear at this point, Quaderno generates the notes correctly, n-Track plays the recording correctly, but the two programs together just doesn't quite work. At the time of this writing, Quaderno is at version 1.9.3 and n-Track is at version 3.2.3 and FL Studio is at verions 4.12. About the only thing that starts the complete MIDI flow happening is to Turn Live Mode of and then On again. Double click a MIDI track. Reset the Record From setting. And start playing. If you're new to n-Track, keep in mind that n-Track works the way other sequencers work. Whatever MIDI track is selected gets all of the incoming MIDI regardless of channel. To work around this, simply select an audio track - two get created automatically when selecting Live Input Processing. Hopefully, later versions of the programs will get the MIDI flowing a little better. Once it actually does start flowing, all four programs work flawlessly. The biggest problem is getting the communications started directly after launching the program. |