Sax vibrato opcodes

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

Moderators: eric_telemaque, davidv

DSmolken
Posts: 26
Joined: Wed Dec 03, 2014 2:59 am

Sax vibrato opcodes

Postby DSmolken » Fri Nov 13, 2015 5:13 am

Just wanted to share this control setup I made for the Weresax library. I tried to make the vibrato as expressive as possible, and ended up using three LFOs and nine MIDI CC controls to make it happen. It should be possible to apply this to any other sax mapped in SFZ, for example the Samplephonics sax freebie. Parts of it could be adapted to other instruments as well, of course.

I was going for expressive rather than realistic, but three sax players like the result, so it seems pretty good. From the readme file, an explanation of how it works.

The vibrato of the sax instrument is fairly complex, with nine controls. You can get decent results by just using the sax style vibrato and speed and leaving the rest of the controls alone.

The sax style vibrato only goes below the main pitch of the note, so when it kicks in it will make the note go slightly flat, which makes it sound "bluesy". The violin style vibrato goes both below and above the main pitch, and is better at staying in tune with synths, classical orchestras etc. There's no reason to not use both at once - leaving the synth vibrato at a fairly low setting and automating the sax vibrato and speed for expression seems to work pretty well.

The tremolo, brightness and wind noise controls don't affect the pitch, but instead affect the volume and tone color. If you only use them and keep the sax style and violin style controls at zero, you can emulate what sax players call diaphragm vibrato (which is in theory not really vibrato at all, as the pitch never changes). Or use them all together. The wind noise vibrato control has no effect if the wind noise volume control is turned all the way down.

The humanize controls make the pitch and vibrato speed unsteady. At the minimum change rate, the values will be randomized once per note (unless you hold a note for many seconds). At high change rates, they will be randomized many times per second.


Code: Select all

<control>
label_cc7=Master Vol
label_cc10=Master Pan
label_cc100=Attack 
label_cc101=Hold 
label_cc102=Decay 
label_cc103=Sustain
label_cc104=Release
label_cc110=Vibrato To Wind
label_cc111=Vibrato Depth
label_cc112=Vibrato Speed
label_cc113=Tremolo Depth
label_cc114=Synthy Vibrato
label_cc115=Vibrato To EQ
label_cc116=Vibrato Delay
label_cc117=Humanize Rate
label_cc118=Uneven Pitch
label_cc119=Unsteady Vibrato
label_cc120=Mic Blend
label_cc121=Vel Contrast EQ
label_cc122=Noise Level

set_cc7=100
set_cc10=64
set_cc100=0
set_cc101=0
set_cc102=16
set_cc103=127
set_cc104=20
set_cc112=32
set_cc116=45
set_cc117=32

<global>
amplitude_oncc7=100 //Master volume and pan
pan=-100
pan_oncc10=200

ampeg_attack=0.001 //Basic AHDSR
ampeg_sustain=0
ampeg_release=0.001
ampeg_attack_oncc100=0.3
ampeg_hold_oncc101=1
ampeg_decay_oncc102=4
ampeg_sustain_oncc103=100
ampeg_release_oncc104=2

lfo01_pitch_oncc111=20 //Saxy vibrato LFO - goes down from the main pitch
lfo01_freq=2
lfo01_freq_oncc112=8
lfo01_phase=0.25 //To make it start at the top
lfo01_delay_oncc116=1
pitcheg_delay_oncc116=1 //Pitch envelope to drop the central pitch when sax vibrato kicks in
pitcheg_depth_oncc111=-20

lfo02_pitch_oncc114=20 //Synthy vibrato LFO - goes below and above main pitch
lfo02_freq=2
lfo02_freq_oncc112=8 //Same rate as the first LFO
lfo02_delay_oncc116=1 //Same delay, too
lfo02_volume=0 //This LFO also does tremolo, tremolo settings for the wind noise are in the wind noise mapping file
lfo02_volume_oncc113=3
lfo02_phase=0.5 //To make it go down first, then up - more saxlike that way
eq1_freq=4000 //Also can send this LFO to EQ
eq1_bw=2
eq1_gain=0.001 //Needs to be non-zero, apparently?
lfo02_eq1gain_oncc115=6
lfo02_eq1freq_oncc115=1500

var01_eq1gain=9 //Also velocity tracking for the EQ, amount controlled by parameter
var01_eq1freq=1000
var01_mod=mult
var01_oncc121=1 //The control multiplier
var01_oncc131=1 //The velocity
eq1_gain_oncc121=-6

lfo03_wave=-1 //Noise LFO to humanize the other LFOs a bit, also affects wind noise - see wind noise mapping file
lfo03_freq=0.01
lfo03_freq_oncc117=20 //This one has its own rate indepedent of the other two
lfo03_delay_oncc116=0.8 //A bit less than the other LFOs, so that some pitch humanization might kick in a fraction of a second before vibrato starts
lfo3_freq_lfo1_oncc118=0.6 //Both LFOs affected the same
lfo3_freq_lfo2_oncc118=0.6
lfo3_pitch_oncc119=6 //And some pitch drifting around

bend_up=500 //I've read that good sax players can bend by a fourth, so we're going by something I read once
bend_down=-500

off_mode=fast

#include "alto_map_wind_noise.sfz"
#include "whatever_sax_you_want_to_apply_this_to.sfz" //Obviously change this to the sax you want to add these controls to


And the alto_map_wind.noise.sfz file contains this - it will need adjustments to make it work with an instrument with a different range, so the easiest thing to do is probably just leave it out, but all it basically does is synthesize some white noise that's filtered, affected by velocity and also affected by two of the vibrato LFOs.

Code: Select all

<group>
<region>
sample=*noise
lokey=49 //Set lokey and hikey to the range of the instrument you're applying this to
hikey=80
amp_veltrack=44 //Lower amount of velocity tracking than notes, so noise is more prominent with quiet notes
amplitude_oncc122=1.1 //Vewy vewy quiet
ampeg_attack=0.4
ampeg_attack_oncc141=-0.55 //Faster attack for higher notes
lfo02_volume_oncc110=-7 //Backwards from the regular tremolo - noise gets louder when the note gets quieter
lfo02_volume_oncc113=0 //Unaffected by regular tremolo CC
lfo03_volume_oncc122=4 //LFO3 is random - this makes the noise less steady

cutoff=3000
fil_keytrack=40
fil_type=lpf_1p
www.karoryfer.com/karoryfer-samples is where my sfz libraries are

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

Re: Sax vibrato opcodes

Postby eric_telemaque » Fri Nov 13, 2015 9:40 am

Thanks for sharing that!

This also serves as a reminder that users interested in learning sfz can explore the files made by experts like DSmolken to improve their own programming!
Éric Patenaude,
Plogue Art et Technologie Inc. Montreal.
http://www.plogue.com

DSmolken
Posts: 26
Joined: Wed Dec 03, 2014 2:59 am

Re: Sax vibrato opcodes

Postby DSmolken » Sun Nov 15, 2015 7:55 am

Good point. I learned a lot from various SFZ instruments out there. It's worth looking into the ARIA Free Sounds just to see how they work, there's some interesting stuff going on in many of them. And this stuff isn't too difficult - I've only been making samples in my spare time for about two years.
www.karoryfer.com/karoryfer-samples is where my sfz libraries are


Return to “SFZ Programming”

Who is online

Users browsing this forum: No registered users and 1 guest