What's new

Now that Logic can handle 1000 Instrument Tracks...

Kent

sleepy member
...I'd like to build an EXS24-only template a la @charlieclouser to take advantage of the "VEP preserved/decoupled"-like behavior EXS can do.

I don't mind simplicity and things like lack of mic positions and true legato, as long as it sounds good and musical.

What is the best option for doing something like this?

- Meticulously sampling Kontakt/etc. libraries and building everything from scratch?
- Finding an old DVD collection of early 2000s samples? (If so, which ones sound good? Didn't VSL's Cube originally come out for EXS?)
- Something else?
 
What is the best option for doing something like this?

- Meticulously sampling Kontakt/etc. libraries and building everything from scratch?
- Finding an old DVD collection of early 2000s samples? (If so, which ones sound good? Didn't VSL's Cube originally come out for EXS?)
- Something else?

I built my EXS library by all the methods you mentioned. Because it's been my primary sampler ever since it came out as a standalone purchase ($200? $300? I forget) I've had more than 15 years to use every means necessary.

- In the olden days EXS could load and convert GigaSampler and Kontakt files, as well as Akai S-1000 drives in their native format. I did a lot of this. Not sure how much of this capability still exists.

- Chicken Systems' Translator has been invaluable over the decades I've owned it. Although it can be a bit inscrutable to operate, once you've got a workflow functioning you can plow through massive amounts of content. The resulting EXS Instruments usually need a little (a lot) of massaging to bring them into compliance, but that's do-able. It does not work on protected Kontakt libraries (basically anything that is labelled a "Kontakt Player" library and/or needs a serial number to activate), and it will absolutely not work on Kontakt 6 libraries - but I've digested terabytes of libraries using Translator. If the original library has the samples saved in compressed (.ncw) format then you need to first to a convert / save-out to .wav format, otherwise Translator can't read the samples. So it's usually a multi-step process:

1 - If it's practical, open the Kontakt Instrument and delete groups that contain samples that you know you won't need, like legato groups, alternate mic positions, etc. This can speed up the Translation and reduce the hailstorm of groups in the resulting EXS Instruments, but it's your choice if you want to squint and scroll through a zillion groups in Kontakt, where they're often confusingly labelled, or deal with a slower Translation and clean 'em up in EXS.

2 - Save the cleaned Instruments to a new location, include the samples, and tell Kontakt to use WAV format for the samples. It's also possible to do the group-cleaning "upside down", where you just export the groups you want from Kontakt, so you can select and export a few groups out of thousands instead of selecting and deleting all but a few groups. If you're not doing a clean-out prior to conversion, then either save the instruments one-by-one from Kontakt's file menu (make sure to tell it to include the samples and select WAV as the format), or use the Copy / Convert function (not "Batch Re-Save", the other one) to batch convert mass quantities to wav format.

3 - At this point you can use Translator, cross your fingers, but get ready for major clean-up inside the EXS Editor - deleting unwanted groups, repairing round-robin assignments, and pasting your desired set of front-panel settings and mod matrix routings.

But I've run into lots of instruments that Translator just can't convert for whatever reason. Also, sometimes the way that samples are mapped to groups / key zones makes no sense once they're converted - like instruments that just map the samples to one key each and then use scripting to lay them out into playable maps, etc. So, in cases where the samples have their root key / velocity range / mic position embedded in the file names, I often just skip Translator and get to work with my three favorite apps: A Better File Rename (for serious massaging of file names), Sample Manager / Myriad (for "normalize by group", auto-trim, batch fade, etc.), and Redmatica Keymap. Since Keymap is long gone you're out of luck on that front, and at the moment the website for Aurchitect is down, so I'm not sure of the status of Sample Manager's replacement, called Myriad, but.... you get the idea. Fix up the sample names, batch process the samples, and then use Keymap to build instruments via drag-n-drop. You can always just drag-n-drop them right into EXS but I'm still on Logic v10.2.4 and a lot of the times this does not work as advertised (maybe it's been fixed in later versions?).

Another approach, rather than attempting a direct conversion, is to use an Auto Sampler app. Apple's MainStage has a subset of the old Redmatica Autosampler's features, and can work quite well, and there are other options out there as well. Actually I've rarely used this method. I have, however, built a Logic template that's basically a manual auto-sampling template - it contains a simplified audio environment and MIDI tracks with notes ascending chromatically up the keyboard. I load the desired instrument, open its hood to look at the sample maps, figure out whether to sample chromatically or by minor thirds or whatever and how many round-robins and velocity splits I need, estimate how long the note triggers need to sustain in order to capture the entire sample and adjust the MIDI tracks as needed, and then use offline Bounce-In-Place to create long audio files that capture all the samples.

- If the samples need to be, let's say, four bars long at 120 BPM to capture the entire sample, then I put a MIDI note every eight bars, with each note lasting four bars and four bars of silence between them. Then I can use Logic's "hold option while using scissors to divide into equal regions" feature to cut the resulting zillion-bar file into equal chunks with one click.

- If the source samples are looped with no release trigger, I can just throw away the four-bar chunks in between the samples. If the source samples are looped with release triggers, then the four-bar chunks in between the looped samples are where I get the release triggers - since my source MIDI notes last exactly four bars, the first four bars will be the looped sample, and the second four bars will be the release trigger. I drag the release triggers to a separate track so that I can shorten them and process their names separately.

- If there are multiple velocity ranges to deal with, I do each velocity range as a separate pass - all the notes in one pass will have the same velocity.

- If there are mod-wheel dynamics that I can't disable, then I do each mod-wheel position as a separate pass, similar to above.

Once the tracks are captured, I then slice them as described above, manually trim the endpoints en-masse by selecting all and then dragging the right region boundary, and then rename the regions by selecting all regions in a pass and double-clicking the region name in the Inspector in the upper left of the Main Window. When you do this, type in a new name like "Sample-01" and Logic will automatically increment the "01" for each region, so now you have regions named Sample-01, Sample-02, etc. Then I use "Export audio regions as individual files" to dump them into a folder, and with some skillful use of renaming apps you can convert names from "Sample-22" to "Sample-C#3" or whatever, as long a you remember or write down the equivalencies between the region numbers and the pitch they represent. Most renaming apps let you load and save scripts so that you can create a list that will convert "-01" to "-C1", "-22" to "-A#3", etc. A calm, careful, and organized approach is key! Since each velocity range was a separate pass, you can dump each pass's regions into a separate folder and then use the rename app to insert velocity range info into the resulting file names after the fact. Some folks like to use a pair of numbers to indicate velocity range (like 81-119) but I still use good old "ppp-pp-mp-mm-mf-ff-fff" and Keymap can interpret these (amazing!) but I fear that this approach will bite me in the ass someday, so using pairs of numbers is probably safer long-term.

If there are round-robins to deal with things can get a little tricky, but I basically have each MIDI note repeat as many times as needed to trigger, say, C4 six times in a row to capture all the round-robins. Then I separate the regions and manually drag each set of round-robins to a separate track before export them into individual folders. I haven't figured out a way to automate this yet - I have to manually select the first sample in each round-robin group and drag them to a new track, then repeat for the second sample in each group, etc. That way the first track contains only rr1, the second track only rr2, etc. THEN I do the auto-increment bulk-region-rename, export regions as audio files to separate folders, and use a renamer app to fix up the names further.

(continued next post)
 
Last edited:
(continued from previous post)

Cleaning up sample names is critical for me, to insure that any drag-n-drop or automatic instrument building function work perfectly, even in some future tool that hasn't come out yet. So I shoot for sample names formatted like this:

[instrument type]-[source library name]-[articulation]-[mic position]-[rr group]-[dynamic range]-[root key]

This result in files with names like:

piano-MALMSJO-PedalUp-dry-rr3-mp-C#4

With names formatted like this, lists sort in a sensible manner - by RR group, THEN dynamic range, THEN all the pitches for that group/range. Makes selecting and drag-n-dropping easier.

Once the samples have been recorded, separated, temp-renamed with auto-increment, exported, batch renamed further, and batch trimmed/normalized/faded... THEN the process of building maps can begin. If your sample names are nice and tidy as described above, it should be relatively smooth sailing. I still use Keymap and keep a variety of older computers around, all running outdated MacOS versions and with Logic and Keymap installed, so that I can continue to use this outdated and often tedious workflow - because it does work, and I've got it down to a system at this point.

To be honest, I actually prefer to re-build new EXS instruments from cleanly-renamed samples as opposed to doing an actual Translator conversion - I still use Translator if there's a massive amount of source instruments and if the sample filenames are already relatively clean, but at this point I'd say that my conversions are 40% Translator, 40% export+rename+rebuild, and 20% manually auto-sample+rename+rebuild.

So, yeah...it's a pretty geeky process to build an EXS library from outside formats, and I can't categorically state that "It's worth it" - but it is to me, partly because I have such a big existing library and have the tools and "a system" to make the conversion process a little less painful. I didn't start out by converting instruments with 12 round-robins and 8 dynamic layers - I think the first rebuilds I did were things like simple Roland-format banks that I could extract the samples from but not convert the instruments. So I developed renaming skills. Then along came something with round-robins that I couldn't convert so I had to figure out how to manually auto-sample by bouncing in Logic, and used my renaming skills on the results. Etc. So my skills, tools, and techniques grew slowly and incrementally over the decades.

Plus, once you've got an EXS version, you have a permanent and portable version of the library that will survive compatibility-breaking updates to Kontakt/Play/BFD/etc. I figure the least-likely scenario is that Apple will go out of business, discontinue Logic, or just dump EXS altogether. Far more likely is that GigaSampler will die (it did), Akai or Emu file formats will be difficult/impossible to access (they are), or that Native Instruments will lock down Kontakt and disallow import/export (they have).

Since EXS files are not protected in any way, composers with a big staff run the risk of their libraries walking out the door on some unscrupulous assistant's USB stick - but I run a one-man shop, and nobody, BUT NOBODY, has access to my sample storage devices, which are air-gapped from the internet. I do all uploads/downloads using a separate computer and move files to the DAW via Samsung T5 swap drives. Paranoid? Sure. But safe. Once I complete the transition to APFS / Mojave / T2-equipped new Mac Pros I will investigate full-drive encryption, password protection, and more sophisticated methods of access control and asset tracking, but for now, having a one-man shop and an air gap work just fine.

So EXS is by far the "safest" format for me. Plus, even if Apple+Logic+EXS goes away, the raw samples, if they're well-named, can be dealt with by whatever replaces it, and they're not in some proprietary format (looking at you, .ncw!) - WAV is here to stay.
 
Last edited:
What about resampling Omnisphere? I guess the process is the same but I’m not sure of the ranges the samples are stretched across...

Yeah, that would probably be a bit of a mess. Since you can't open the hood of an Omnisphere patch and view the sample map, you'd have to reverse-engineer how many key zones / velocity splits / layers to sample. You might be able to dry up the preset and then try to sample the raw content, and rebuild the sample map - and this might work if you're trying to extract something like the Burning Piano samples or something like that, but so much of the magical sound of Omnisphere is the drenched-in-effects character. I haven't tried to extract those few Omnisphere samples that I use (like Dream Piano+Rocks) but now maybe I will!

But in general I'd treat it like sampling a hardware synth - I'd either use an Auto-Sampler or my home-brew version, and just try to make sensible decisions about what to sample.
 
Does anybody know if there is any way to acquire the now-ancient VSL Pro Edition for EXS24? R3Audio's got a Performance Tool replacement for Logic Pro X that is supposed to work quite nicely.
 
If there are round-robins to deal with things can get a little tricky, but I basically have each MIDI note repeat as many times as needed to trigger, say, C4 six times in a row to capture all the round-robins. Then I separate the regions and manually drag each set of round-robins to a separate track before export them into individual folders. I haven't figured out a way to automate this yet - I have to manually select the first sample in each round-robin group and drag them to a new track, then repeat for the second sample in each group, etc. That way the first track contains only rr1, the second track only rr2, etc. THEN I do the auto-increment bulk-region-rename, export regions as audio files to separate folders, and use a renamer app to fix up the names further.

(continued next post)
I've been working my way through this process and found a way to speed round-robin editing up slightly.

I use a project tempo of 60bpm to help keep the math simple (1 beat = 1 second). I set the project time signature to the number of seconds I'd like in total for each sample (including releases and padding) and have the MIDI notes end a bit before the bar. For example, 6/4 and 5-beat MIDI notes gives me 5 seconds of sample and 1 second of release. Nothing special so far... but this enables the trick.

For each round-robin, double the number of beats in the bar. The above example with two round-robins would be 12/4. Have the MIDI note repeat twice. Bounce-in-place, option-click with the scissor (I like to have snapping set to 1 bar) to slice all of the samples. Select the second region (i.e. the 2nd round robin of the 1st sampled note) and press shift-P. This is the command for "Select Same Subpositions". It will select all of the regions that start on the same beat number. (It also works in the piano roll FYI). Now you have all of 2nd round-robins selected, and you can drag them to a new track.

Rename using the region inspectors, select all the regions and drag to the Finder... and boom. Somewhat faster way to export round-robins.
 
Ahhh that's a good trick. I use "Select Same Sub-Positions" all the time in the piano roll when editing MIDI, but I didn't even realize it would work on audio regions in the Main Window. That method sure would be quicker than manually shift-clicking every fourth region or whatever...

I did a bunch of Auto-Sampling in the latest version of Logic while helping a friend build out banks for use in MainStage while on tour, and I was pleasantly surprised at how good the results sounded and played. And of course the process was ridiculously easy and fast.
 
Autosampler only works in real-time though, right? Makes it a lot slower than bounce-in-place for anything with longer samples
 
Autosampler only works in real-time though, right? Makes it a lot slower than bounce-in-place for anything with longer samples
Yes, AutoSampler is real-time only. So it can take some time to fully extract big instruments. But it makes short work of dealing with round-robins and dynamic crossfades. When I was converting stuff to be used live, we could reduce the amount of samples to just those notes which were needed to play the parts in each song, which obviously wouldn't be the case when fully converting orchestral libraries or whatever.
 
Long ago, when AutoSamlpler was a standalone app, I sampled hardware from Oberheim and Moog. It was real-time and I left the setup working through the night while sleeping. I still use those patches in Kontakt (and more) today.
 
Yes, AutoSampler is real-time only. So it can take some time to fully extract big instruments. But it makes short work of dealing with round-robins and dynamic crossfades. When I was converting stuff to be used live, we could reduce the amount of samples to just those notes which were needed to play the parts in each song, which obviously wouldn't be the case when fully converting orchestral libraries or whatever.
I have just started this in an attempt to reduce the load on the live Macbook Pro. Why keep the entire Omnisphere library on board when I only need 2 or 3 sounds...just set up autosampler and let it do its thing on the main workstation, then copy it over to the MBP.
 
Know this is an old thread but good info here, looking to use the mentioned techniques to get some sampled instrument down from my mac over to Logic Pro on my ipad
 
Top Bottom