View Full Version : the SFZ thread
David (plogue)
05-14-2008, 01:34 PM
Hello
Starting a new thread so that i don't continue hijacking the Kontakt/Giga one.
for what i have been reading, the sfz format that use our beloved SFZvsti, is outdated compared with the one that Dimension pro (the commercial sampler that cakewalk sell). So there exist, appear to be, enhancements to the sfz file format. So, i suspect that probably, ARIA will be using some advanced sfz file format, with some custom programming. But would be nice to know what´s going from mr David, if that`s not something like commercial secrets or so.
Yes that is correct, Dimension Pro (and Drop Zone) uses the SFZ 2.X spec, which is also supported by ARIA.
Which is fully described in this book:
http://www.cakewalk.com/products/Books/Synthesizers.asp
There are various differences between the subtleties of the spec that each uses, we dont support all that Dimension Pro supports, and vice versa (we added more than 30 opcodes for Steinway and the other products in the pipes). But its mostly compatible.
Of course if you dont stray much from SFZ 1.0, or use the common subset of SFZ 2.0 features that Both Aria and Dimension uses, you should have something that works on both.
-Yes we haven't disclosed what that subset is actually - but i hope to fill our wiki with it soon.
Yeah, but those of us who have been spoilt by nifty GUIs tend to stare blankly at lines of text, even if they grew up entering Basic code out of a magazine because their dad wouldn't buy the games on the cartridges :mad:.
You just made a picture pop in my head of me at 9 years old doing exactly that on a Saturday morning (Compute magazine VIC-20 type ins and only so few actual cartridges).
Im sure its not with a big stretch that you can thank Commodore for ARIA.
There's a little more investment in the learning curve, but for someone like me with more time than money...
With everything, doing something advanced involves a learning curve.
However i do feel that SFZ is rather easy to start with.
David, I've been curious ever since Gary mentioned that the new Aria engine would be built around the sfz format - if you stripped away the fancy GUI and were only left with the text file and raw samples, would the Steinway sound the same in the sfz vsti (only without the effects)?
No, since the ARIA engine uses SFZ 2.0 spec plus custom opcodes, also the audio file format we use in Steinway wouldn't be understood by any other SFZ engine than ARIA at this point.
marce
05-14-2008, 05:15 PM
Hi David. I really liked to read your thread about sfz! I suppose that the custom opcodes you have made point to the new things ARIA implement. Thinking that in some future GPO will be updated to the ARIA sampler, i wonder if it will be able to load other sfz files than or it will be another separated product, like "ARIA sampler" (something like kontakt player and kontakt itself)
Just curious.
raweber
05-14-2008, 06:46 PM
You just made a picture pop in my head of me at 9 years old doing exactly that on a Saturday morning (Compute magazine VIC-20 type ins and only so few actual cartridges).
Im sure its not with a big stretch that you can thank Commodore for ARIA.
For me it was a Texas Instruments TI-99/4A. :wow:
Anyway, thanks for the info. I think it's fascinating. And, a generic sfz2.0 player would be really cool! (hint, hint)
Hopefully in the coming months you will hear in the Listening Room the fruits of my sfz labors...
David (plogue)
05-14-2008, 07:18 PM
Hi David. I really liked to read your thread about sfz! I suppose that the custom opcodes you have made point to the new things ARIA implement.
Yes, new opcodes were required for Steinway, and also for the porting of GPO/JABB.
We however added them following the "style" of the other pre-existing opcodes, so that
it all felt like a logical progression, or that they would fill some obvious oversights in the spec.
(for instance amplitude and amplitude_oncc were missing whereas "egXX_amplitude" already existed as target for EGs and LFOs)
note: amplitude and volume are different opcodes, the first being expressed as percentage, and the other in decibel. (sometimes its good to have both available)
Thinking that in some future GPO will be updated to the ARIA sampler, i wonder if it will be able to load other sfz files than or it will be another separated product, like "ARIA sampler" (something like kontakt player and kontakt itself)
Just curious.
Currently, any ARIA engine based product that are either out or in the pipes can read
SFZ, either by using the "import" button, or by dropping a SFZ file directly on the interface.
This includes Steinway, but since this is a "one slot" product, you only get one SFZ at a time. Other ARIA players can be 16 slots, or unlimited slots, it depends on the target product.
Cheers!
David (plogue)
05-14-2008, 09:47 PM
HI
How does this correspond with the # of MIDI channels? For example - Kontakt can hold 64 patches, but as a plugin (and without extra routing with virtual cables) it can only address 16 MIDI channels. Will these other ARIA players have a way of addressing more than 16 channels, (i.e. grouping them "Aria Player A: 1-16...B:1-16", etc) to do away with the need to load multiple instances in one project?
Jon
The 16 channel limit is a VST thing (only one MIDI port per plugin), so its 16 channels per instance. However, running multiple instances is not that much of a limitation, as ARIA will share resources across all instances. All samples loaded are shared, not repeated.
However, Standalone versions of ARIA can open all the ports and all channels.
marce
05-15-2008, 12:45 PM
I post a reply this morning, but im not seeing it now, some forum issue?
I was wondering myself if the sfz files of GPO will be open to tweeak, and if there will be available any kind of "script" similar to contact, and if the changes made to sfz format will be documented and available.
David (plogue)
05-15-2008, 01:44 PM
I post a reply this morning, but im not seeing it now, some forum issue?
Probably.
I was wondering myself if the sfz files of GPO will be open to tweeak, and if there will be available any kind of "script" similar to contact, and if the changes made to sfz format will be documented and available.
SFZ tweaks -> I currently don't see why not.
Scripts -> There will be something, but i cant disclose details at this point.
Documented changes -> time provided, yes.
Cheers
marce
05-15-2008, 02:08 PM
Mr Viens, you have satisfied my curiosity, at least by now. Thanks very much! :)
David (plogue)
05-15-2008, 03:32 PM
"purge" in Kontakt (I keep asking based on this, because this is all I know!)? Similar feature, more intuitive feature, no feature? I am definitely good friends with the purge button;).
Jon
I always found "purging" to be a less efficient "freezing".
Essentially since you cant play new notes since their samples are gone, might as well freeze
that track, which would give you CPU resources as well.
ARIA currently uses a "self recyclable" memory caching system.
Notice "currenlty" :)
marce
05-15-2008, 03:59 PM
Time ago i reported this issue with kontakt player:
Yes, that is what i do. But, by example if you use Kontakt player standalone, you can use 64 midichannels with only one instance of it, that uses more and less 100mb of RAM. If you want 64 midi channels with the VSTi version, you need to load 4 instance of KP2, that is more and less 350 mb of RAM *only* for the engine. Later you need to load the samples...
if ARIA can use similar amount of ram in standalone mode than loading multiple instances of it, it will be a very good point for it!
In case you want to read the discussion it is Here (http://www.kvraudio.com/forum/viewtopic.php?t=183352&postdays=0&postorder=asc&highlight=kontakt&start=0)
Haydn
05-15-2008, 04:37 PM
I always found "purging" to be a less efficient "freezing".
Essentially since you cant play new notes since their samples are gone, might as well freeze
that track, which would give you CPU resources as well.
I used both purging and freezing tracks. Both have issues although the issue is bigger with freezing. When recording I like to play with the tempo track especially for areas that my keyboard skills aren't up to the task. I have to mute the frozen tracks as they will get out of sync at this point. Only way I can hear them again against the new tracks is to return the tempos back to what they were prior to freezing. This is not always ideal as sometimes I might prefer the newer tempo. This means I have to unfreeze and then freeze which can take a long time if the piece is 10-20 minutes in length. In this case I much prefer to purge tracks.
I've run into 2 issues purging tracks. One is with samples being used between 2 intruments which causes problems with some samplers. Usually I can't purge these tracks. The other issue is with round robin type instruments that purge some of the samples that are actually needed on later playbacks causing notes not to sound. Kontakt 2 is very bad with both of these scenerios.
Just my thoughts,
Jim
darrob
05-16-2008, 01:48 AM
Hi
How about polyphony settings?
will those be adjustable?
Cheers...
Daz :0)
David (plogue)
05-16-2008, 10:03 AM
Time ago i reported this issue with kontakt player:
if ARIA can use similar amount of ram in standalone mode than loading multiple instances of it, it will be a very good point for it!
Its hard not to give away too many trade secrets when answering such questions.
My philosophy on that is, if a user can figure things out, by educated guesses and using
Task Manager, then this information can be disclosed.
ARIA Instances take around 10 MB each (before any UI is opened).
If any UI is shown, then you can add roughly 10MB more (This is the case for Steinway), as images are like samples as they take memory, and can in theory be shared. (not in 1.0 though, im fixing this now - if anyone tries it i don't want to look like im being untruthful)
But showing the UI of 2 or more instances of Steinway at once, is .. well kinda pointess.
Each instrument (without samples) take different amounts of memory due to their internal "housekeeping" structures which change according to its complexity. These cant be shared since they represent the data required to render one instrument's particular "state" or notes that it plays.
Then after that any sample used more than once, across instruments or across instances are shared. So memory used is variable, but one of the ARIA design goals was trying to recycle and reuse as much as possible RAM all the time.
Cheers.
David (plogue)
05-16-2008, 10:05 AM
Hi
How about polyphony settings?
will those be adjustable?
Cheers...
Ah an easy answer! .. YES!
David (plogue)
05-16-2008, 10:12 AM
I used both purging and freezing tracks. Both have issues although the issue is bigger with freezing. When recording I like to play with the tempo track especially for areas that my keyboard skills aren't up to the task. I have to mute the frozen tracks as they will get out of sync at this point. Only way I can hear them again against the new tracks is to return the tempos back to what they were prior to freezing. This is not always ideal as sometimes I might prefer the newer tempo. This means I have to unfreeze and then freeze which can take a long time if the piece is 10-20 minutes in length. In this case I much prefer to purge tracks.
Very interesting use case! thats why we love user input so much.
I'm curious about others real use of Purge vs Freeze.
I've run into 2 issues purging tracks. One is with samples being used between 2 intruments which causes problems with some samplers. Usually I can't purge these tracks. The other issue is with round robin type instruments that purge some of the samples that are actually needed on later playbacks causing notes not to sound. Kontakt 2 is very bad with both of these scenerios.
Jim
All those issues could still be solved since they all fall in the "deterministic" sample requirements.
But ARIA/SFZ also support playing samples according to chance (look for lorand and hirand opcodes.) so any run of the same MIDI track could be made to provide different sounds.
Think of it as round-robin mixed with probability,
but dont worry, that feature is not yet used, and if it is one day used by Garritan Products, its going to be well documented.
marce
05-16-2008, 11:41 AM
Thanks for the answer about the use of ram.
The original sfz format has support for very short impulse responses. The new ARIA has enhanced the use of impulses trough sfz, or it is a diffrent thing?
About the random opcode settings, the bad thing i see in it if that if you have fewer optional samples for a given note, the probability to repeat the same note several times is high, that with round robing is avoided... im right?:confused:
Additionaly, if you liked a performance with given random samples, is not possible to repeat it in the same exact way. Too much seam to the real thing maybe :p
David (plogue)
05-16-2008, 02:40 PM
Thanks for the answer about the use of ram.
The original sfz format has support for very short impulse responses. The new ARIA has enhanced the use of impulses trough sfz, or it is a diffrent thing?
Different thing at this point.
About the random opcode settings, the bad thing i see in it if that if you have fewer optional samples for a given note, the probability to repeat the same note several times is high, that with round robing is avoided... im right?:confused:
Additionaly, if you liked a performance with given random samples, is not possible to repeat it in the same exact way. Too much seam to the real thing maybe :p
Think the chances to hit a rim when playing snare drums...
(the drunker you are ... kidding)
darrob
05-21-2008, 08:44 PM
Another Question..
With KP2, Each instrument can be assigned to any channel. This made ensemble building a snap.
One channel from the host could service multiple instruments (up to 64 if really required). Each instrument could be configured to ignore volume and pan from the host, so the ensemble could be created using fixed volume and pan, but all other controller data interpreted correctly. (There are a bunch of other nice features to be found in the gears icon of each instrument)
Will Aria have that same, or similar, functionality?
Cheers...
Daz :0)
David (plogue)
05-22-2008, 01:30 PM
Will Aria have that same, or similar, functionality?
Hello
It is important to distinguish between "Aria", "Aria Player", and some future Standalone version of Aria that would let you load (or possibly edit) multiple instruments at once.
ARIA is the engine behind all of its "incarnations" and yes, it does natively support those
kinds of channel/omni/port routings. However not all features are available on the interface of each Aria product.
Each ARIA product have different UIs and different tweak-able settings.
For instance the Steinway UI is really custom made for the task and its channel routing is not available (OMNI) , but other incarnations, like GPO/JABB would offer this feature.
Cheers
darrob
05-22-2008, 08:50 PM
Hello
It is important to distinguish between "Aria", "Aria Player", and some future Standalone version of Aria that would let you load (or possibly edit) multiple instruments at once.
Well, I guess that I'm really referring to an Aria player then.
ARIA is the engine behind all of its "incarnations" and yes, it does natively support those
kinds of channel/omni/port routings. However not all features are available on the interface of each Aria product.
Each ARIA product have different UIs and different tweak-able settings.
For instance the Steinway UI is really custom made for the task and its channel routing is not available (OMNI) , but other incarnations, like GPO/JABB would offer this feature.
Well, that answers that question. My main area of concern here is GPO and future Garritan products (like GPOA and Choirs).
Cheers[/quote]
David (plogue)
05-23-2008, 10:26 AM
Hello
I created a separate thread for ARIA engine features thread.
The thread you are currently reading should be used for the SFZ spec format discussion.
Thanks!
dahnielson
09-04-2008, 04:13 PM
I posted this question in the Sample Discussions forum earlier, but it was suggested to me that I ask it here:
I was wondering what the differences between the SFZ 1.x spec and SFZ 2.x spec are. I will get the Cakewalk Synthesizers book myself, but I'm just impatiently curious.
What was added?
What was changed?
Are there any free SFZ 2.x examples out there? I just want to look at the .sfz file, no need for the actual samples.
David (plogue)
09-04-2008, 08:31 PM
Hi.
I guess the book would cover it more in depth than a few SFZ 2.0 files would.
I currently dont know of free files in the wild, but the cakewalk forums do have some posts
with SFZ 2.0 opcodes in them.
What was added?
What was changed?
Lots were added, mostly the opcodes are evened out and standardized, for example everything that can be modulated by a cc uses a _oncc. And some non CC MIDI controllers have been given CC ids (example: pitch bend would use _oncc128).
Also EGs and LFOs are now numbered and can be sent to multiple targets (eg eg06_amplitude=100, eg06_pitch=-1200 instead of ampeg and pitcheg, etc).
There are also new sections like <control>, <curve>, <master>.
Again most of that is explained in the book.
We hope to have a ARIA SFZ wiki one day, at least to list the custom opcodes we use, and explain them.
Cheers
dahnielson
09-05-2008, 04:38 AM
Thanks for the answer! It gave me the big picture until I get the book.
dahnielson
09-05-2008, 07:48 AM
By the way, was the format for the sample path changed?
I can't really understand why someone (rgc:audio) upon creating a new format decided to allow whitespace in the paths without requiring them to be enclosed in quotation marks or escaped! Otherwise it would have been a piece of cake to parse. But I figured out that I could use the file suffix (.wav or .ogg) as terminator.
David (plogue)
09-05-2008, 12:47 PM
Hi
No its not changed, and yes I had to do special parsing for that.
Note SFZ 1.0 specifies wav or oggs but i dont think this is a requirement anymore.
ARIA, for instance is happy to use "sample=anything_libsndfile_supports.format" (if libsndfile is locally available) or other vendor specific closed formats. Note that so far we dont close the SFZ files themselves.
So if you can sacrifice the "=" characters in your allowed path names (like i do), you can scan up until the next EOL or '=' character and backtrack to the last space.
(std::string.find() is my one of my good friends)
Note 2: SFZ 2.0 has a new path opcode which needs to be "white space escaped" too:
<control>
default_path=your relative Path/
or
<control>
default_path=C:\Program Files\Garritan\ProjectX\Samples
We take both / and \ separators, other parser may not.
I also scan for UTF8 BOM and decode all paths appropriately.
Cheers
dahnielson
09-06-2008, 05:04 AM
Thanks for the reply, much appreciated!
Note SFZ 1.0 specifies wav or oggs but i dont think this is a requirement anymore.
ARIA, for instance is happy to use "sample=anything_libsndfile_supports.format" (if libsndfile is locally available) or other vendor specific closed formats. Note that so far we dont close the SFZ files themselves.
So if you can sacrifice the "=" characters in your allowed path names (like i do), you can scan up until the next EOL or '=' character and backtrack to the last space.
(std::string.find() is my one of my good friends)
Yes, after posting I realized that the spec hinted towards exactly that. After tokenization using whitespace as delimiter the path string will be: everything after the '=' in the 'sample=' token, all the following tokens not containing a '=' and terminated by the first occurrence of a token containing a '=' or a header token.
Note 2: SFZ 2.0 has a new path opcode which needs to be "white space escaped" too:
<control>
default_path=your relative Path/
or
<control>
default_path=C:\Program Files\Garritan\ProjectX\Samples
We take both / and \ separators, other parser may not.
I also scan for UTF8 BOM and decode all paths appropriately.
Yes. I noticed that the SFZ 1.x spec says:
[...] starts with the slash character ('/'), and it extends till the end of the line.
And not '//' and therefor only use '\' as path separator. But I guess it's pretty reasonable to diverge from that to use '//' for comments and both '\' and '/' as separator.
(Personally, as a GNU/Linux user, I can't stand '\' as separator. It's an escape character not a separator, gawd damn it! ;) )
David (plogue)
09-06-2008, 08:32 AM
(Personally, as a GNU/Linux user, I can't stand '\' as separator. It's an escape not a separator, gawd damn it! ;) )
Well as our stuff works on OS X, i have to agree with you on that.
All internal paths are transformed to posix inside ARIA.
Powered by vBulletin® Version 4.2.0 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.