Free EXS24 to SFZ format converter, details inside *updated*
-
- KVRist
- 446 posts since 24 Apr, 2002
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.
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.
- KVRian
- 883 posts since 4 Jul, 2012 from Blue Crest, Eastern Europe
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.
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.
- KVRian
- 883 posts since 4 Jul, 2012 from Blue Crest, Eastern Europe
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.
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.
-
- KVRer
- 1 posts since 14 Jan, 2014
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
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
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
-
- KVRer
- 1 posts since 14 Feb, 2017
vonRed, where did you end up getting the file format spec for EXS files from?
-
- KVRist
- 189 posts since 10 Nov, 2012
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.
Thanks !
Thanks !
-
- KVRist
- 241 posts since 5 May, 2020
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.
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.
-
- KVRist
- 189 posts since 10 Nov, 2012
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.
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.
- KVRAF
- 15313 posts since 8 Mar, 2005 from Utrecht, Holland
> Please post the full text of the error message.
We are the KVR collective. Resistance is futile. You will be assimilated.
My MusicCalc is served over https!!
My MusicCalc is served over https!!
-
- KVRist
- 241 posts since 5 May, 2020
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.
-
- KVRist
- 241 posts since 5 May, 2020
vonred is a way better python coder than I am, though, so I'm going to learn a bit from his code.
- KVRist
- 218 posts since 16 Feb, 2010 from Germany
Anyone managed to convert exs patches created with logic autosampler to sfz ?
-
- KVRist
- 157 posts since 5 Mar, 2021
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.
- KVRist
- 218 posts since 16 Feb, 2010 from Germany
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
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
-
DanyMartinez12345 DanyMartinez12345 https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=634349
- KVRer
- 1 posts since 11 Sep, 2023
I need a program to convert SFZ to EXS24 exists?Yo necesito un programa para convertir SFZ A EXS24 EXISTE?