Free EXS24 to SFZ format converter, details inside *updated*

Sampler and Sampling discussion (techniques, tips and tricks, etc.)
RELATED
PRODUCTS

Post

Good point, but I doubt those libraries need to go to SFZ at this time. Anyone who enjoyed using EXS in Logic PC probably went to Kontakt (the comparable sampler) at that time and converted them there.

I don't mean to be dour on the utility, and assuming that its for piracy is extreme, but you can't ignore that assertion either.
Garth Hjelte
Chicken Systems, Inc.
support@chickensys.com
http://www.chickensys.com

Post

Hi vonRed. Thank you for your initiative.
I am a Mac user but i've encountered an issue. When trying to install exs2sfz with
the "python exs2sfz.py install" command that is suggested on the python homepage
i get a syntax error message.

Post

For those who doubt the utility of this product, let me tell you my story.
I was a Logic user and I bought a couple of EXS packs off Ebay.
I've switched to back to my old love Ableton Live in the autumn and of course
I tried converting those EXSs to Ableton's Sampler format. The problem is
Sampler doesen't convert them properly (volume is at -26db) and it has become
a hassle to open up each patch and correct the volume prior to auditioning it.

Here is where EXS2SFZ comes in. I really need it to convert those EXSs to SFZ
because Sampler does a wonderful job when converting SFZ.

Post

AUTO-ADMIN: Non-MP3, WAV, OGG, SoundCloud, YouTube, Vimeo, Twitter and Facebook links in this post have been protected automatically. Once the member reaches 5 posts the links will function as normal.
(Message edited after testing the script)

This sound great, unfortunately I have a problem right with the 1st EXS I tried to convert:
It is a Clavinet from the default sounds that came from Emagic back when they were releasing for windows :scared:

Code: Select all (#)

S:\01-Piano>exs2sfz.py "Clavinet ECO.exs" clavine.sfzt
Traceback (most recent call last):
  File "S:\01-Piano\exs2sfz.py", line 610, in <module>
    exs.convert(sys.argv[2])
  File "S:\01-Piano\exs2sfz.py", line 467, in convert
    sequences = self.build_sequences()
  File "S:\01-Piano\exs2sfz.py", line 416, in build_sequences
    for group in self.groups:
  File "S:\01-Piano\exs2sfz.py", line 406, in groups
    len(self.objects)
  File "S:\01-Piano\exs2sfz.py", line 375, in objects
    new_object = EXSChunk.parse(self, offset)
  File "S:\01-Piano\exs2sfz.py", line 36, in parse 
raise RuntimeError("Encountered an unknown chunk signature! signature is 0x{1:08X}".format(sig))
IndexError: tuple index out of range
[/size]

Exs file uploaded here (https://dl.dropboxusercontent.com/u/565064/Clavinet%20ECO.exs)

Any idea what I can do?

Thanks a lot for sharing this,
Copa017

Post

vonRed, where did you end up getting the file format spec for EXS files from?

Post

Old thread, but hoping to make use of some free EXS instruments I gave it a shot and am having the same syntax error issue as cocoazenith. On several Macs, latest python. I have zero scripting knowledge, so if anyone can lend a hand to as to what to fix I'd be greatly appreciative :) On the screenshot below, line 66.

Image

Thanks !

Post

Your error happens on a different line in the source, so it's not quite the same error. Please post the full text of the error message. In any case, it's an error in the code trying to print an error message. The original error that the script is trying to print is that the file (probably a WAV file) has a "chunk" of an unknown type. Google "RIFF format" for more info on that.

Here's a banged-together Python 2.7 script that will print the names of the chunks (and decode headers for a couple of wav file chunks). Try running it on a wave file being converted to see what kinds of chunks they have. It's possible that the converter in question doesn't handle 'smpl' format chunks, which can include looping info etc for samples. Or some other unexpected type of chunk.

https://github.com/jlearman/sfzwiki/wiki/jriff.py

You'll have to copy the page text and paste into a file. It will NOT work using Python3.

Post

Thanks for your wisdom, Jeff. It's still hazy to me, but I'll give it a shot :)

The error doesn't have any more info that I can see. Just the alert of syntax error on that line, and then the greyed out line mentioned in the alert. That's in TextWrangler, OS X. I'll delivery elsewhere and dig deeper to lessen operator error.

Post

> Please post the full text of the error message.
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

Well, I posted a red herring. Looking at the code, I see that these are EXS24 chunks which are not quite the same as RIFF chunks, and the EXS24 file has a chunk that the python script doesn't recognize, and it gets an error trying to print it. Without an example exs24 file that causes the error I can't help, and the link posted by copa017 is no longer valid.

Post

vonred is a way better python coder than I am, though, so I'm going to learn a bit from his code. :-)

Post

Anyone managed to convert exs patches created with logic autosampler to sfz ?
Studio One, Logic
macOS
–– -
http://ansolas.de

Post

ansolas wrote: Wed Jun 16, 2021 12:18 pm Anyone managed to convert exs patches created with logic autosampler to sfz ?
Kinda.
I haven't had success using ESX24 converters with the new Logic Sampler files, and I think that the autosampler uses the new format. I believe Sampler uses a somewhat different patch format than the old ESX24, but I'm not 100% sure.

However, an autosampled patch essentially is just a list of mapped samples sitting in a folder - no synthesis functions such as filters, LFOs, or envelopes are used. And the resulting sample files in that folder are consistently named - Key Name, Velocity, Unique Four Character Code.
So hand coding an SFZ is just a matter of mapping the samples with a bunch of <region> markers, with sample selection and key ranges.

With a big sample set this gets pretty tedious though, so that's where the free Bjoerns Sample Mapper comes in. It's an ancient piece of software, but it has been updated just enough to still run perfectly on a new Mac. You simply drag the folder of samples onto the app, and it uses the file names to map all the samples onto the keyboard. Save the resulting SFZ, and you're done!

The only problem is that Bjoern's Sample Mapper only recognizes WAV. I haven't figured out a way to get Logic's autosampler to spit out WAV files, only AIFF (is there a way to do this?), so I have to convert the AIFFs to WAVs using some utility (Audacity is clunky, but it works. Careful though - Audacity strips off any looping information!).

So it takes four steps - autosample, convert samples files to WAV, open sample folder in Sample Mapper, and save the SFZ. Each step only takes 30 seconds, so it's not too bad.

If you sample more complex stuff like key release samples or multiple velocities, you drag in each category separately into Sample Mapper, and make a group out of each variety.
Round robins are not supported, I think, but isn't all that hard to code into an SFZ by hand.

Post

I managed to create an sfz with brörns sample mapper and import it into Bitwig.
What IU am trying to do is import autosampled patches into VPS Avenger. It should be able to import sfz (not working yet) and SF2 files. But I havent figured out a way to convert EXS patches to SF2.
Another thing is that the autosampled waves seams not to include the loop (eg penrose loop) information :/
I tried the option write loop to file of logics sampler but that didn't worked either as I wish
Studio One, Logic
macOS
–– -
http://ansolas.de

Post

I need a program to convert SFZ to EXS24 exists?Yo necesito un programa para convertir SFZ A EXS24 EXISTE?

Post Reply

Return to “Samplers, Sampling & Sample Libraries”