Ping-Pong: p droid vs. b rock (new challengers welcome!)

Author
Paradroid
Max Output Level: -81 dBFS
  • Total Posts : 454
  • Joined: 5/27/2005
  • Location: Melbourne, Australia
  • Status: offline
December 06, 05 6:15 AM (permalink)

Ping-Pong: p droid vs. b rock (new challengers welcome!)

sfz Ping-Pong tip #001

So, if you've done your due diligence on Dim Pro and scanned thru all 564 .sfz files you will have seen a lot of bread & butter sample mappings… damn fine handy work but… yawn… been there, done that. What should have made you sit up is the sprinkling of new opcodes scattered throughout all those sample collections…

But before we get too delirious why not pay tribute to a new opcode that saves a lot of manual repetition: default_path

Now, this self-explantory opcode needs to be preceded by a <control> tag and will allow you to set a default relative path for any subsequent sample definitions in your sfz file. Of course, you can can change the default path between <group> definitions but always remember that these are relative paths we're talking about! Use ..\ if you want to go up one level in your directory structure.

That's all.

A cheap shot, for sure but it's about time we got this match underway. Return the serve with ammendments, clarifications, another example, new info or further tricks… Remember, ping-pong is a fast game so no time for a three-part-mini series here…
#1

19 Replies Related Threads

    b rock
    Max Output Level: 0 dBFS
    • Total Posts : 8717
    • Joined: 12/7/2003
    • Location: Anytown (South of Miami), U.S.A.
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 06, 05 6:50 AM (permalink)
    A cheap shot, for sure
    No doubt. Consider the time zone difference; you're already a day ahead of me, Dale. Got my day job to contend with now.

    First the "****" (what do you think the "B" stands for <g>); now this. A little preliminary delay_ ; then you're on.
    #2
    techead
    Max Output Level: -31.5 dBFS
    • Total Posts : 4353
    • Joined: 1/24/2004
    • Location: Macomb, IL, USA
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 06, 05 3:28 PM (permalink)
    Ahem....wikied
    #3
    b rock
    Max Output Level: 0 dBFS
    • Total Posts : 8717
    • Joined: 12/7/2003
    • Location: Anytown (South of Miami), U.S.A.
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 06, 05 5:14 PM (permalink)
    Remember, ping-pong is a fast game so no time for a three-part-mini series here…
    Hehe. You know, you almost had me there, Dale. Caught me before coffee. I'll concede. Match set; you win. Best of luck with this, though.

    You know how easily I get sidetracked. It's off to finish the algorithmic patch generator for Dimension.
    #4
    Paradroid
    Max Output Level: -81 dBFS
    • Total Posts : 454
    • Joined: 5/27/2005
    • Location: Melbourne, Australia
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 07, 05 4:26 AM (permalink)
    I'll concede. Match set; you win. Best of luck with this, though.

    Bummer. Out for a golden duck… Dead in the water after only the first post… Not exactly the endless of relay of one-liners I was imagining. Suppose you got yer own thang going on and that's kool. I guess you prefer the more expansive form.

    Now, what's it to be next… “sfz Pong tip #002” or “sfz Ping tip #002” 'cause it sure ain't Ping-Pong anymore (actually, come to think of it, it never actually was…)
    post edited by Paradroid - December 07, 05 5:08 AM
    #5
    Paradroid
    Max Output Level: -81 dBFS
    • Total Posts : 454
    • Joined: 5/27/2005
    • Location: Melbourne, Australia
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 07, 05 6:15 AM (permalink)
    First the "****" (what do you think the "B" stands for <g>); now this.


    Ahh, **** it. I'm not so proud that I won't play with myself if that's all I'm gonna get… esp. if b ain't gonna scratch the itch…

    'droids sfz tip #001

    By now, all the Dimension geeks know that René took MIDI CCs through the roof with the original sfz player, adding CCs numbers above the standard 127 to accommodate in house tricks such as randomisation, keyboard tracking, etc.

    You also know that Dimension upped the CC count by including internal CC assigments for the Dimension GUI controls, yeah? Damn nice move, since it allows tweaking of CC assigments without having to delve into automation maps or reach for a hardware controller (especially if you don't own one… not mentioning names!)

    Problem is, it's hard to remember what special CC numbers René gave to all those dials on the Dimension front panel. Wouldn't it be nice if you could re-label each of them so that you don't have to remember whether Bit Red is linked to the cc140 or cc141?

    Well, have a look in the folder named ‘Resources’ in you Dimension Pro installation directory. Now, locate a file called ‘TextResources.cwres’ and open it up in Notepad (or something more exotic if you're that way inclined.)

    You should see 185 lines of definitions for all Dimension's text resources! The syntax is pretty easy to work out if you look close… but as a starter, find this one (on line 72):

    IDS_TIP_BITRED, - Bitred:

    Now, change that to:

    IDS_TIP_BITRED, - Bitred (CC140) :

    …(make sure to include a space after the colon) and save!

    Now, next time you load up Dim Pro and mouse over Bit Red you'll get a nice reminder that particular GUI control is linked to cc140.

    Of course, you could go on and on, re-labelling all the controls to include tips for the CC assignments… or maybe just change the error messages to something a bit less diplomatic e.g. IDS_MULTISAMPLE_NOT_FOUND,Multisample Not Found becomes IDS_MULTISAMPLE_NOT_FOUND,Where's the sample big guy?. You get the picture…

    P.S. — Did I tell you to backup TextResources.cwres before you go futzing with it? Well, I shouldn't have to… do it!
    post edited by Paradroid - December 07, 05 6:43 AM
    #6
    Paradroid
    Max Output Level: -81 dBFS
    • Total Posts : 454
    • Joined: 5/27/2005
    • Location: Melbourne, Australia
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 07, 05 6:24 AM (permalink)
    'droids sfz tip #002

    If you thought that being able to change the tool tips in Dimension's GUI was cool but really you wanna paint the kitchen a different colour rather than just re-arrange fridge magnets, then feel free to load up ‘background.bmp’ (located in the same ‘Resources’ folder) into PhotoShop and start redecorating. That way you can just scribble “CC140” over the top of “Bit Red” instead of waiting for that lazy tool tip to show it's face.

    Yes, it's true, Dimension is skinnable. There's 24 bitmaps in there that contain all the graphic elements used in Dim's GUI.

    Z3ta+ had the Virus mod… What's it going to be for Dimension? René's seen to it that everything's tweakable (including the sound if you so wish…)
    post edited by Paradroid - December 08, 05 2:17 AM
    #7
    Paradroid
    Max Output Level: -81 dBFS
    • Total Posts : 454
    • Joined: 5/27/2005
    • Location: Melbourne, Australia
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 07, 05 6:42 AM (permalink)
    'droids sfz tip #003

    Just a simple sfz comments managment tip: it's common practise to use // to insert a comment into an sfz file. This is useful for two major reasons: you can document and annotate your work (I include details about the sources for samples used) and you can temporarily disable an opcode or group of opcodes for testing purposes without having to delete any of your work. Simply slip in // at the start of the line and then pull it back out once you're done isolating the changes.

    But wait, seems like sfz comments are always preceded with // but then René goes and comments ‘DefaultRegion.sfz’ using only a single / ! Scandalous!

    So…

    // delay_hyperbolization=high
    / delay_hyperbolization=high


    …are treated as comments while…

    delay_hyperbolization=high

    …will earn you an error message!

    Be sure to be liberal with your sfz comments. Could save you time in tracking down a sample source later on and will sure help the rest of us understand what you trying to do when you share your patches with us!

    Update: It's official — a single forward slash ending with a line return delimits a comment. // is just a habit of programming nerds like René.
    post edited by Paradroid - December 08, 05 5:41 AM
    #8
    René
    Max Output Level: -68 dBFS
    • Total Posts : 1103
    • Joined: 1/6/2004
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 07, 05 8:36 AM (permalink)
    Hehe. You know, you almost had me there, Dale. Caught me before coffee. I'll concede. Match set; you win. Best of luck with this, though.


    Booo. I want my money back. Right now. Comeon Tom, give us some spectacle. <gladiator> Are you not entertained? </>





    -René



    #9
    René
    Max Output Level: -68 dBFS
    • Total Posts : 1103
    • Joined: 1/6/2004
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 07, 05 8:39 AM (permalink)
    The 'official' sfz line comment delimiter is a single '/', and it can be used in the middle of a line:

    lokey=c3 /this is a comment

    I use two in most examples as in C++ just cuz I'm used to.



    -René
    #10
    Paradroid
    Max Output Level: -81 dBFS
    • Total Posts : 454
    • Joined: 5/27/2005
    • Location: Melbourne, Australia
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 08, 05 6:13 AM (permalink)
    ‘droid's sfz tip #004

    Just a quick little bit of esoterica for ya: y'all realise that the time values in sfz are floating point, yeah? E.g. ampeg_attack=1.0 will give you a simple one second attack time, 0.001 will give you 1 millisecond, 0.0005 will give you half a millsecond… 0.000001 will give a microsecond… almost all the way down to the kind of detail that would allow you to create envelopes that correspond to an exact sample. I say almost because the the resolution wasn't quite that high for the original sfz player (don't ask me how I know… too sad… something to do with testing the ‘hack’ that was sample_fadeout). Either way, this ultra fast attack times a handy for ensuring your drum samples get off to a clean start without touching your transient.

    So, please feel safe at night knowing that Dimension is ready to divide up time like no other sampl… (err, what's the buzzword again?) instrument has before it. And for the neat freaks, doesn't it feel much better setting your attack to a clean 0.070 rather than a filthy 68.8 ms as Kontakt would have us do?
    #11
    techead
    Max Output Level: -31.5 dBFS
    • Total Posts : 4353
    • Joined: 1/24/2004
    • Location: Macomb, IL, USA
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 08, 05 11:54 PM (permalink)
    Maybe this will cheer you up: 'Droids SFZ Tips - Wiki Edition
    #12
    Paradroid
    Max Output Level: -81 dBFS
    • Total Posts : 454
    • Joined: 5/27/2005
    • Location: Melbourne, Australia
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 09, 05 0:46 PM (permalink)
    Maybe this will cheer you up

    Bah… I'm not sad but I thought if I could get the B to bite he'd help raise the bar a little with each new installment. Still, I reckon I've got plenty of sfz observations and discoveries to share. Probably they'll settle into a routine of simply demonstrating what is possible w/audio & patch examples included.

    A word of warning though, I'm pretty much exclusively into being a samplist i.e. using, grabbing, nicking, stealing stuff from commercial/copyrighted recordings… I know René's careful to keep his hands clean so that's why I've organised some space to host the stuff I'll be putting up. So people, be warned that © material may follow in some of my future ruminations (but rest assured that I'll include full source info incase anyone hears something they wanna use and go through the proper licensing channels.)

    Thanks for doin' the wiki thang. It'll egg me on for sure!
    #13
    Paradroid
    Max Output Level: -81 dBFS
    • Total Posts : 454
    • Joined: 5/27/2005
    • Location: Melbourne, Australia
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 09, 05 6:04 PM (permalink)
    ’droid's sfz tip #005: When ‘no’ really means ‘yes’

    Okay, everyone's heard the buzz (either the talk surrounding it or the actual resultant sound…) about Dimension being able perform wavetable synthesis using custom samples.

    Now, to get Dim in a wavetable kind of mood, simply load up a sound with less than 3000 samples to its name. Dimension will automatically kick into wavetable mode. What about files with more than 3000 samples? No problems, just create an sfz file that looks something like this:

    <region>
    sample=(name of wavetable bigger than 3000 samples).wav
    oscillator=on


    That'll force wavetable mode whether your sound is an appropriate single-cycle waveform or not.

    Hopefully that's all pretty straight forward…

    Now, what if you want to playback a sound smaller than 3000 without it oscillating? Well, my brain thinks that oscillator=off would seem like an intuitive solution. However, I've just discovered that oscillator=off won't turn off wavetable synthesis at all. Quite the opposite, in fact.

    As it stands both oscillator=on and oscillator=off will put Dim into wavetable mode! Again, my brain is forming the word ‘bug’ here but let's wait and see what René's got to say…

    In the meantime, use / to comment out oscillator=on in patches that involve files above 3000 samples if you want to bypass the effect. For files smaller than 3000 samples, make sure you map them in an sfz file instead of loading straight into the Dimension GUI. This ensures that Dim treats them as a regular sample instead of assuming you're intending your tiny files to be wavetable fodder.

    Update: Here's the scoop… Dimension simply sees oscillator= and switches wavetable mode. In a future update, opcode=off will act as expected (i.e. leave sample playback as default and act as a placeholder in your sfz mapping.)
    post edited by Paradroid - December 10, 05 3:48 PM
    #14
    René
    Max Output Level: -68 dBFS
    • Total Posts : 1103
    • Joined: 1/6/2004
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 10, 05 2:16 PM (permalink)
    Ok, here's how it goes. Dimension Pro will turn any element into a wavetable oscillator when the size of the waveform is smaller than 3000 samples automatically.

    The idea behind this is to allow skipping the writing of an .sfz file for a single-cycle waveform. Then you just size the wavetable as 3000-, and then drop it into DP GUI, presto.

    Some particular high-harmonics waveforms won't sound well being so short though. They need to be longer. Of course, there's a way to specify any region playing a waveform, as 'droid commented above. Just add 'oscillator=on' to the region definition, and the sample will be used to resynthesize a wavetable regardless of its length.

    The 'oscillator=' opcode does have an 'on' value, and some others which are not implemented in DP. Rare as it might sound, there's no prevision for the 'off' value, and here's why. As the '<3000-to-wavetable' feature doesn't apply inside .sfz format files, the whole 'oscillator=off' construction is redundant (oscillator is off by default). Therefore, the parser in DP just looks for 'oscillator=' and if present, it thinks "oh they want the region being an oscillator".

    That's not strictly a bug, but we've already added the "off" construction just to simplify. Will get into DP in the next update.

    The power of combining wavetable oscillators with samples, layered in different keyboard regions is huge. Spend some time on it, it's very rewarding.


    -René
    #15
    René
    Max Output Level: -68 dBFS
    • Total Posts : 1103
    • Joined: 1/6/2004
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 10, 05 2:24 PM (permalink)
    So, please feel safe at night knowing that Dimension is ready to divide up time like no other sampl… (err, what's the buzzword again?) instrument has before it. And for the neat freaks, doesn't it feel much better setting your attack to a clean 0.070 rather than a filthy 68.8 ms as Kontakt would have us do?


    68.8e-3 will also work, for those Kontakt freaks :)


    -René
    #16
    Paradroid
    Max Output Level: -81 dBFS
    • Total Posts : 454
    • Joined: 5/27/2005
    • Location: Melbourne, Australia
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 10, 05 3:43 PM (permalink)
    Therefore, the parser in DP just looks for 'oscillator=' and if present, it thinks "oh they want the region being an oscillator".

    Ahh, you know, I was thinking just this after I'd posted! Either that, or oscillator=o since both on and off start with the same letter. Reminds me of the time I watched a documentary on Black Box flight recorders and the investigators were using audio restoration software to work out whether the pilot said the landing gear was ‘on’ or ‘off’. In the end they decided that he'd said ‘onf’ which is where all the trouble started…

    The only reason I'd use oscillator=off would be for testing — comparing the wavetable-d sound with a looped version. Of course, that's what comment lines are for (as I posted…)

    I wonder, does direction= have similiar behaviour since you only need to specify reverse if you wanna travel backwards whereas forward is the default so direction=forward would be redundant in the same way as oscillator=off.

    Thanks for stopping by, René.
    #17
    René
    Max Output Level: -68 dBFS
    • Total Posts : 1103
    • Joined: 1/6/2004
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 10, 05 4:13 PM (permalink)
    No, direction=forward will move the sample forward. Also waveguide=pff will turn off the waveguide. That's why I think it'd be better to make oscillator=off work.


    -René
    #18
    Paradroid
    Max Output Level: -81 dBFS
    • Total Posts : 454
    • Joined: 5/27/2005
    • Location: Melbourne, Australia
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 10, 05 4:18 PM (permalink)
    Also waveguide=pff will turn off the waveguide.

    Timely typo considering what we're discussing here… or is that a new RGC dynamic for use in Dimension: waveguide = piano fortissimo!
    #19
    René
    Max Output Level: -68 dBFS
    • Total Posts : 1103
    • Joined: 1/6/2004
    • Status: offline
    RE: Ping-Pong: p droid vs. b rock (new challengers welcome!) December 10, 05 4:21 PM (permalink)
    Eek. FindAndReplace ("pff", "off").



    -René
    #20
    Jump to:
    © 2025 APG vNext Commercial Version 5.1