MIDI Instrument Maps

You name it!
Alex
Moderator
Posts: 316
Joined: Wed Jan 23, 2008 9:08 pm

Re: midi instrument maps

Post by Alex » Wed Jul 30, 2008 9:19 am

Dave and ccherrett,
I've kept all the information from the Reaper forum, and as i get a bit more time i'll do some more tutorials. At the moment i'm trying to finish an album of classical elevator music, and get Parchment Studios up and running on line. (Which will include an information/education section for orchestral instruments, and as many links to good information for both orchestral music and its relevance in computer music, in linux, as i can).

Now if the clever fellows in the Linuxsampler team could build me a 26 hour day plugin, i'd be happy. :D

ccherrett, It's not that difficult to set up patches and banks for gig sample libraries in Lsampler. Do you have the gig format VSL cube, opus, or Pro Edition ?
I'm an admirer of the VSL project, and have been for quite some time. I say this a little sadly, but my linux setup is now too important, finetuned, and settled, to consider building a Win box, just for their new 64bit player and samples. I have Miroslav (old, but still good), Sonic Implants, and some self built gig files that have paid their way more than once, so if it ain't broke...

Fantasia is terrific for our particular needs, as it not only has the database from which to manage large sample collections, but the multi bank/patch component which enables chaps like you and I to lay out massive bank/patch libaries, in a managable and efficient format. The example I gave above is simple, but highly effective and fast in writing and recording orchestral work, including highly complex orchestrations, with that hairy monster, multi articulation, well handled.

I have my banks and patches laid out, as an example, as so:

bank 0 1st Violins. This primary 128 instrument set is prioritised as my most used gig files.

bank 1 2nd Violins Same here, and so on.....

When i've gone through the orchestra, assigning a bank for each instrument or section (and that includes seperate banks for Horn sect, and Horn solo, even if all 128 instrument slots or patches aren't used) i then start adding banks for lower priority instrument articulations and effects, i.e., violin FX, 23 violins, 4 cellos, etc...

I also have quite an extensive choir set, and these take 4 banks, being: Male choir, Female choir, Mixed choir, and Choir fx (including boys and girls choirs.)

Planning is everything i guess, and time spent evaulating actual use can make the 1 time, but lengthy process of mapping large instruments sets and libraries an easier one. I took my time, being careful to assign everything correctly, and ended up (at this stage) with 46 banks, over half of which are fairly full. (100 patches or more.) It took me 5 days full time to do this, so if that's an indicator for you of what to expect, and how much time to allocate, then good. It depends of course onthe size and complexity of the libraries you have. I typed out the entire template in easy to read sections by instrument/bank with named patches, and i have 22 pages of it on the wall in front of me as well as in a plastic sleeved folder, in case i don't remember where that 'hot' french horn sound is. Imho, it's worth doing this, especially if your library is fairly static once you've completed it. Time spent doing this well will pay dividends when the writing starts i can assure you.
You can also keep your money in your pocket :)
I'm a little busy at the moment, but i'll certainly help you if you get stuck, or have questions. If you'd like to get started, and we'll see where you're going from there.

I'm just about a complete novice at making vids, and at the moment simply don't have to the time to devote resource to learning. Maybe later on i'll get into this, but for now, we're on words and pics.

Regards to you both,

Alex.

Alex
Moderator
Posts: 316
Joined: Wed Jan 23, 2008 9:08 pm

Re: midi instrument maps

Post by Alex » Thu Jul 31, 2008 9:56 pm

ccherrett,
If you're going to install VSL libs in Linux, then you won't be able to use the articulation tool software. (Obviously)

Not sure if this will affect what you want to do.....

Alex.

p.s. Keep me posted on this. I'm still mulling over picking up the old pro edition gig version as an addition to my current stuff.

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: midi instrument maps

Post by ccherrett » Thu Jul 31, 2008 9:58 pm

Hi Alex,

I am running:

VSL OPUS 1 and 2
True Strike 1 and 2

As well I am looking to buy the old VSL Performance Set and Pro Edition.

I am very new at mapping the instruments and do not grasp the basics of how banks work. I have been enabling instruments one at a time and that gets really nasty.

So a few questions for a noob:

- What program do you create the banks in? Does this happen in Rosegarden or Linuxsampler?
- Is a bank the same as the instrument DB in linuxsampler?

I will try to start the process tonight and see what I can get. But a bit of ground up information would help a lot!

Thanks!

P.S. I was able to get The Performance Tool working in Wine so all is well for old VSL libraries
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: midi instrument maps

Post by ccherrett » Thu Jul 31, 2008 10:00 pm

I have been runnign like this:

MidiController -> VSL The Performance Tool -> Rosegarden -> Linuxsampler -> Ardour

Now if I could get organized with some nice maps I have it made! :)

One more thing, what do you use for choirs and are you happy with it?

Thanks!
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

Alex
Moderator
Posts: 316
Joined: Wed Jan 23, 2008 9:08 pm

Re: midi instrument maps

Post by Alex » Thu Jul 31, 2008 10:30 pm

ccherrett, ok here's a quick start.

Each bank is made up of 128 instruments, called, usually, patches. You don't need the database to set this up, and you do it in Fantasia, or qsampler. If you use Fantasia, you can set up multiple banks, each with 128 patches, but if you use Qsampler, you can only build one bank, of 128 patches for normal instruments, and 1 bank for percussion.

So, for one bank in Qsampler (which is called chromatic):

open Qsampler, and go to the View menu.
Choose Instruments.
A new window opens, you should make sure you have bank 0, or "0-Chromatic' selected. You'll find this in the top left corner of the instruments window.
Next to that is a little file with a star in the corner, This is 'Add new instrument.'
When you click this a new window opens, entitled ' Midi Iinstrument.'
In this window you choose the parameters for your new 'patch.'

Image

The usual loading procedure applies. you choose a name for your new patch, enable the 'gig' engine, and choose from the little folder icon, which gig file you want to load, from the directory in which you installed the VSL files.
If you have a multi articulation gig file, when you load it, the bottom drop down tab,called (no instrument] in the pic, will have all the instruments contained within the gig file you chose. Choose which one you want. Then go to the 'Mode' button in the bottom corner and choose how you want the instrument/patch to behave, and going by the quick tutorial i gave above, On Demand Hold, would be a good place to start. You can edit this at any time.

Do this for each patch you want to build. Be aware that in Qsampler, as there's only one bank, you'll need to choose carefully which articulations you want to use in your bank.

You can choose different gig files for each patch if you wish, so as a start point, i respectfully suggest you write out on paper first, exactly how you wish to lay out your bank, i.e. first 16 patches for violin, next 16 patches for violas, and so on. you'll know what type of music you're writing, and which sections or instruments you're likely to use the most.

Hope this will get you on your way.

Regards,

Alex.

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: midi instrument maps

Post by ccherrett » Thu Jul 31, 2008 11:35 pm

Thank you very much.

I think I will start this process in Fantasia.

Would there be any use creating the intrument-db? What does the DB do for you?

Thanks!
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: midi instrument maps

Post by ccherrett » Fri Aug 01, 2008 10:13 am

OK so after playing all night with getting everything compiled from CVS this is where my understanding is:

1. The instrument database and the orchestras inside of Fantasia are just ways of internally categorizing instruments for easy loading into channels.

2. I was able to create banks and map in my strings. So I have a MIDI Map called VSL Strings that is bank 0 and it has two patches in it:

0. VI-14_stac-1
1. VI-14_stac-2

3. I set midi instrument map in the channel to VSL Strings. <- I don't see what this does for me. I expected that rosegarden would understand my bank but it did not.

4. Do I have to create a duplicate bank in rosegarden to take advantage of the names I MIDI Mapped in Fantasia. I thought they should be passed over.

I have many more questions regarding what is the purpose of 16 midi channels, and it seems you can have multiple ports each with 16 channels. So when you are in Fantasia are you limited by 16 instruments being loaded or can you somehow just stack on more instruments.

Anyhow this is where I am at and with a little help I think I will have this figured out very soon!

Thanks Again!
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

Alex
Moderator
Posts: 316
Joined: Wed Jan 23, 2008 9:08 pm

Re: midi instrument maps

Post by Alex » Fri Aug 01, 2008 12:23 pm

ccherrett,

Some big questions in here. :)

ok, to begin:

1 port = 16 midi channels.

1 Bank =128 patches.


Insert one channel into Linuxsampler.
Assign a port (and for this example, we'll use LS port 0)
In the Fantasia channel strip, choose LS port 0, and midi channel (which we'll shorten to Mcha) 1

Now, the channel strip has a port and channel, but which bank is it going to use, to trigger the correct samples?
That's where the midi instrument map comes into play. In your example with 1 bank and two patches, we need to 'tell' the channel strip to use that bank, and this is why you choose "Midi instrument Map VSL Strings." That tells the strip "Hey, i want you to play VSL Stac 1 (patch 0) when i select channel strip 1, LS Port 0, Mcha 1, Midi instrument map VSL strings, patch 0."

Seems complicated , but isn't. You just need to be well organised, and build maps, channel strips, ports and channels sensibly.

So you've directed the midi data that will come from Rosegarden to the correct channel strip (using a port definition in RG) and the midi data you send triggers the samples that you've defined with port, channel, bank, and patch.

And how does Rosegarden know which information to send?

There are two ways of doing this, and the resources you will use depends on your hardware as well. I run an AMD64 Dualcore X2 5600+ 4GB of ram. This is a decent rig for running a large orchestra, and works well, without stressing the system.

Method 1.

In Rosegarden we are able to assign 1 Mcha per track. So in our easy example, 1 RG track = 1 LS channel strip. Easy enough.
We assign the port out from RG (in midi devices setup window) to feed midi date into LS. Again, simple stuff.

For a full orchestra, in the pic i posted, i'm using 29 tracks. Each track represents 1 channel, which equals 1 bank, which equals 128 patches. Using this framework, i can set 1 track as 1st Violins, and using patch changes, keep only 1 track for 1st violins.

Patch changes are manually inserted in the segments (the strips you see onscreen in RG), usually with the event list editor (in RG it's shift+E). It's important here to make sure you understand the patch selection (called program change) is inserted before the note you wish to use a particular patch for, but in RG, if you select a note, then insert an event (Shift+I) it will automatically put the program change before the note. You need to do this manually, and for up and down bows in violins, for example, you would put a PC (program change) before each note, to trigger the correct sample.

It's also important to remember you will need to playback the segment once or twice, so LS knows which sample to play when. It won't know which patch to use until you do this, so be aware it will take a playback or two to settle everything correctly.
(and you can cycle quickly back and forth in RG using the keystrokes "End", and "Page Down". These move the cursor back and forth in the main RG window.)

Now, the donkey work. :) RG doesn't read LS midi instrument maps, as they are, in effect, a text file. So you'll need to build, manually, a 'mirror' of your LS midi instrument maps in RG. You can do this in Midi Devices setup, as you probably already know. When you do this, be sure to match patch numbers, either 0-127, or 1-128. (It's the same format, but some HW manufacturers and app builders, years ago, decided they wanted to start with "1" instead of "0".) We're fortunate that RG was built with the option of selecting either of these. (Clever chaps)

When you've done this, carefully matching like for like bank and patch numbers, you'll have a mirror of maps for both LS and RG, and this will make it easier to use both apps. I stress here it's worth taking your time, and doing this well, and there's a large difference between correcting an error in a 3 piece jazz setup, and a full orchestral template withi hundreds, and possibly thousands of patches to choose from. (I speak from experience. :shock: ) I consider it essential to have a written or typed copy of all the bank and patches i've built, and i've found it's a lot easier to quickly refer to this than go searching.

Using this method, with a full orchestra setup of 29 or more tracks, you can access all the patches you so carefully built in LS, within RG. Program changes (patches) are your friend here, as they enable you to input single notes in one track, yet change the characteristics of each note to use any number of patches for articulation changes, all within a single instrument track.
If you use the On Demand Hold feature in Fantasia, for each patch, when the patch is loaded, it stays in ram. As i wrote in the brief tutorial, this a highly efficient way of only retaining what you actually use, and keeping them ready for immediate use, without trying to load thousands of sample into ram for instant playback. Even with my fairly modest libary, if loaded all of it into ram at once, i'd need a lot more ram than i have now.

The downside of this method is the manual work involved in assigning program changes. Personally, i'm ok with this after quite some years of practise with event list editors, but I will say, it's donkey work, and takes time. I consider the end result worth it, but some may find it too tedious.

You'll also notice in the pic i posted, that i'm using 9 ports. This is because i use a sinlge port for each string section, but section ports for the others, i.e., port 5 = WW, piccolo mcha 1, flutes, mcha2, etc..
You need to build a channel strip in LS for each of these instruments, so the 6th channel strip in LS, after the 5 string channel strips, would be: LS port 5, MCHA1, midi instrument map "Piccolo". The 7th would be: LS port 5, MCHA 2, midi instrument map "flutes", and so on.......

In this format my ports are named as follows:

1st violins port 0
2nd violins port 1
violas port 2
cellos port 3
kontrabasses port 4
WW (woodwinds) port 5
French Horns port 6
Brass port 7
Percussion (including harp, piano, and organ) port 8
Choirs port 9
This is the medium or quick draft template. I have full template i'm still refining which has 33 ports so far...

TBC.....................

Alex
Moderator
Posts: 316
Joined: Wed Jan 23, 2008 9:08 pm

Re: midi instrument maps

Post by Alex » Fri Aug 01, 2008 12:53 pm

Method 2.

This is more straightforward, but involves a large number of tracks in RG, in fact, 1 for each patch.
So if you have 90 1st violin articulations, and so on......you could quite possibly end up with over 600 tracks to work with, and that's pretty unweildy to use. We used to have to do this some years ago, and the scrolling involved was, frankly, a nightmare.

However, the method is simple, and as follows:

insert a channel strip into LS. (LS port 0, mcha 1)
Insert an instrument from your sample directory, choosing the articulation you want. (VL stac 1)
Insert another channel strip into LS (LS port 0, mcha 2)
Insert an instrument from your sample directory, choosing the articulation you want. (VL stac 2)

and so on.......

no midi instrument map required, although if you have them setup, you can, when setting up each strip, use the map to load the required patch. It makes the setup slightly quicker.

In RG, like this setup in LS, you'll need a track for every LS channel strip. So however many strips you have in LS, so it will be in RG.

And provided you have the correct ports assigned in RG midi devices setup, mirroring LS, you can simply right click each RG track and assign the port and mcha number corresponding to the channel strip in LS, continuing to add tracks, and assigning them until each track in RG matches a channel strip in LS. (you can also do this from the track parameters box, opening with the keystroke "p".)

This seems simpler, and is effective for quick drafting, but the sheer number of tracks in a full, multiarticualtion score, makes it a real effort to constantly navigate up and down an enormous number of tracks. Sadly, for all it's excellent qualities, RG is still 1 Mcha per track. If it were 1 port (16 Mcha) per track, the number of tracks would reduce considerably, and be more manageable. but we have what we have, and RG positively shines in many other areas, so the balance is still good. (imho, the event list editor is the fastest i've ever used, out of a list that includes cubase and logic, both touted for this particular feature...)

So you have choice which direction to take, and both have their advantages, with method 1 being good for big scores, and method 2 useful for quick drafting with say 50 or 60 tracks, using the most common articulations, and still retaining a realistic 'feel' for the orchestration, and overall soundscape.

Phew.

:mrgreen:

Hope this helps.

Alex.

p.s.
1. The instrument database and the orchestras inside of Fantasia are just ways of internally categorizing instruments for easy loading into channels.
Correct, and this true for most databases.

ccherrett
Advanced User
Posts: 162
Joined: Wed Jan 23, 2008 11:24 pm
Contact:

Re: midi instrument maps

Post by ccherrett » Sat Aug 02, 2008 1:14 am

Hi Alex,

Thank you for taking the time to go through this with me. I have spent three years messing around with this on my spare time and never really understood it.

I was telling my wife that at the moment there is a lack of Orchestral Composers in linux so you tend not to have much experience floating around with large setups. That said it is a pleasure that you have showed up and are so willing to help! Thank you!

Ok I have been pouring over this all day and seem to be making sence out of it.

The only thing I am trying to figure out is how the event program changes work. Once that is figured out I am going to create a use case and execute it. I will start out small with a few banks each with a few patches/programs in them. I will then create a basic score with two tracks each using the two individual programs/ articulations.

Thanks again!

I will post back with how it goes!
Christopher Cherrett
Founder of The Open Octave Project
http://www.openoctave.org

Post Reply