trigger=release velocity tracking

Discussion on the SFZ implementation and opcodes available in the ARIA engine.

Moderators: eric_telemaque, davidv

pljones
Posts: 100
Joined: Wed Oct 15, 2014 2:05 pm

trigger=release velocity tracking

Postby pljones » Sat Mar 25, 2017 2:58 pm

Now I'm trying to be clever.

I want to trigger two groups of samples - one for pedal down and one for open hi-hat - to emulate a pedal splash. "Close enough" is to use trigger=release for the open hi-hat group. So far, so good, I'm getting the groups triggering when I want them and muting when I want them.

However, the amplitude of the trigger=release group is unexpected. I was expecting it to sound like the open hi-hat normal trigger but the velocity tracking sounds different (it's louder for the trigger=release).

I have an amplitude curve defined for the group (it's at master level for the group of regions triggered by three different notes -- once under CC4 control on key=42, once as a normal trigger on key=46 and once as a release trigger on key=66). key=42 and key=46 sound the same for a given velocity by key=66 is louder.

Is there something I'm missing?

davidv
Site Admin
Posts: 1567
Joined: Tue Mar 02, 2004 7:23 pm
Contact:

Re: trigger=release velocity tracking

Postby davidv » Mon Mar 27, 2017 9:56 am

Can you make a simple sfz using only sample=*sine or sample=*noise?
I'll check it.
David Viens,
Plogue Art et Technologie Inc. Montreal.
http://www.plogue.com

pljones
Posts: 100
Joined: Wed Oct 15, 2014 2:05 pm

Re: trigger=release velocity tracking

Postby pljones » Mon Mar 27, 2017 12:37 pm

Hi,

I took out all the regions except the ones involved but left the rest of the "meta settings" in place, in case they're relevant.

http://peter.drealm.info/media/test.sfz

key=44 - sample=*noise ("pedal hi-hats") -- normal velocity tracking
key=46 - sample=*sine ("open hi-hats") -- normal velocity tracking

key=66 - sample=*noise ("pedal hi-hats") on key down; sample=*sine ("open hi-hats") on release -- the sine seems very loud.

(Note that each group repeats intentionally - in the actual samples, there's a "close mic" and a "room mic" set of regions rather than the single region used here.)

Thanks,

-- Peter

pljones
Posts: 100
Joined: Wed Oct 15, 2014 2:05 pm

Re: trigger=release velocity tracking

Postby pljones » Fri Mar 31, 2017 2:04 am

Hi,

Did you get a chance to try the test file? Can you hear what I mean?

Thanks,

-- Peter

eric_telemaque
Posts: 215
Joined: Tue Jan 31, 2012 1:10 pm

Re: trigger=release velocity tracking

Postby eric_telemaque » Fri Mar 31, 2017 9:14 am

Hi,

It's still a pretty busy sfz to troubleshoot. :wink:

What I guess from this is that you want velocity for key release, which you seem to be doing with "amplitude_oncc131" at the <master> level.

When I simplify to the extreme, it seems to work.

Code: Select all

<master>
amplitude_oncc131=100 amplitude_curvecc131=220
<curve> curve_index=220 v1=0.817439 v15=1 v16=0.406126 v31=1 v32=0.517632 v47=1 v48=0.629961 v63=1 v64=0.740549 v79=1 v80=0.659754 v95=1 v96=0.63728 v111=1 v112=0.988514 v127=1


<group>
 key=66
 trigger=release off_mode=fast
 ampeg_decay=3 ampeg_sustain=0

<region> sample=*sine



<group>
 key=66
 trigger=attack
<region> sample=*noise
Éric Patenaude,
Plogue Art et Technologie Inc. Montreal.
http://www.plogue.com

pljones
Posts: 100
Joined: Wed Oct 15, 2014 2:05 pm

Re: trigger=release velocity tracking

Postby pljones » Sat Apr 01, 2017 4:11 am

The velocity tracking is working well as it stands.

The problem is the relative volume between the sound when triggered as a release sound and when triggered normally. That's why I left both in, so a comparison can be made using the same velocity.
http://peter.drealm.info/media/test4.sfz

Here's the MIDI file I test with:
http://peter.drealm.info/media/test4.mid

Here's the resultant 32bit float WAV:
http://peter.drealm.info/media/test4.wav

Changing things a bit helps - obviously, this isn't suitable for handling the real samples...
http://peter.drealm.info/media/test5.sfz

Here's the MIDI file I test with:
http://peter.drealm.info/media/test5.mid

Here's the resultant 32bit float WAV:
http://peter.drealm.info/media/test5.wav

Finally, a closer approximation is probably something like this, that also appears to work okay:

Code: Select all


<global>
  loop_mode=one_shot off_mode=fast
  ampeg_attack=0 ampeg_decay=0 ampeg_sustain=100
  ampeg_release=0 amplitude=100

// Hi-hats muting
<master> sample=*silence ampeg_decay=0.1 ampeg_sustain=0

// Open
<group> group=100003000
<region> key=44
<region> key=66

// Ped
<group> group=100004000
<region> key=66

// Splash
<group> group=100005000
<region> key=44
<region> key=66


// Open - Close
<master> sample=*sine

<region>
 key=46 transpose=14
 group=200003000 off_by=100003000

<region>
 key=66 transpose=-6
 group=200005000 off_by=100005000
 trigger=release off_mode=fast

// Pedal - Close
<master> sample=*noise
<region> key=44 group=200004000 off_by=100004000
<region> key=66 group=200005000 off_by=100005000

http://peter.drealm.info/media/test6.sfz

Note that the internal generators *noise and *sine don't work like a triggered sample: they stop generating at note off unless the ampeg_release holds the ampeg open -- and that defeats the demonstration. So the MIDI file uses a long "Open" sound and short "Pedal" and "Splash" sounds:
http://peter.drealm.info/media/test6.mid

That now sounds consistent:
http://peter.drealm.info/media/test6.wav

I'll have to see whether I can cause the same problem by adding in all the other controls I had, now! :)

pljones
Posts: 100
Joined: Wed Oct 15, 2014 2:05 pm

Re: trigger=release velocity tracking

Postby pljones » Sun Apr 02, 2017 4:57 am

Got it! :)

With this for the muting, I get the problem of the release sound being too loud:

Code: Select all

// Hi-hats muting
<master> sample=*silence
 ampeg_attack=0 ampeg_decay=0 ampeg_release=0

Adding ampeg_sustain=0 solves the problem:

Code: Select all

// Hi-hats muting
<master> sample=*silence
 ampeg_attack=0 ampeg_decay=0 ampeg_sustain=0 ampeg_release=0

I don't understand why, though.

-edit-
I was still getting an odd effect in that with a single sample layer, everything worked fine - amplitude=50 on the release sample made the layer quieter. However, with "close" and "room" layers, the amplitude appeared to have no effect.

Anyway, I've finally gone with a solution of using delay=0.05, rather than trigger=release and that's solved the problem with amplitude not working as expected.

(Ideally, also, I'd be scaling the original incoming velocity to select the "release" (now delayed) layer but I guess that's pushing things too far. I could script something like that in KSP... Still, it's sounding pretty good.)


Return to “SFZ Programming”

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest