Help with release samples and note_polyphony opcode

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

Moderators: eric_telemaque, davidv

Alteregoxxx
Posts: 6
Joined: Mon May 15, 2017 4:27 am

Help with release samples and note_polyphony opcode

Postby Alteregoxxx » Tue May 16, 2017 1:11 pm

Hi,
I would need the help of you sfz experts :-)
As my first approach with sfz programming, I'm currently trying to do the "porting" of the famous Maestro Concert Grand piano library from .gig to .sfz.
From my searching on the web, no sfz version exists for this library, apart from one that, unfortunately, is missing release samples that are instead included in the original library.

I have already been able to create the structure of the sfz file, managing "regular" samples (samples of notes recorded with sustain pedal off), release samples (that capture the resonances of a string when the hammer dump it while it was vibrating) and pedal noises (these ones were not included in the original library, I've "stolen" them from the free Salamander Grand Piano library).
All works great when I play notes and have the sustain pedal off, but a strange behaviour I'm not able to address come up when playing notes and having the sustain pedal on.
The sfz structure have been constructed as follow:

Code: Select all

//---------------------------REGULAR SAMPLES PIANISSIMO------------------------------------------
<group> group=1 note_polyphony=1 lovel=0 hivel=15 loop_mode=no_loop pitch_keycenter=60 pitch_keytrack=0 bend_up=0 bend_down=0 ampeg_start=100 ampeg_hold=0.01 

<region> sample=MCG Sustains + Releases\mcg_p_021.wav lokey=21 hikey=21 ampeg_release=1.84
<region> sample=MCG Sustains + Releases\mcg_p_022.wav lokey=22 hikey=22 ampeg_release=1.84
....
...

//----------------------------REGULAR SAMPLES FORTISSIMO----------------------------------------
<group> group=8 note_polyphony=1 lovel=112 hivel=127 loop_mode=no_loop pitch_keycenter=60 pitch_keytrack=0 bend_up=0 bend_down=0 ampeg_start=100 ampeg_hold=0.01

<region> sample=MCG Sustains + Releases\mcg_ff_021.wav lokey=21 hikey=21 ampeg_release=2.4
<region> sample=MCG Sustains + Releases\mcg_ff_022.wav lokey=22 hikey=22 ampeg_release=2.4
....
...

//-------------------------RELEASE SAMPLES MEZZOPIANO------------------------------------------

<group> group=9 note_polyphony=1 trigger=release lovel=0 hivel=31 loop_mode=no_loop bend_up=0 bend_down=0 volume=6 ampeg_start=100 ampeg_hold=0.01 ampeg_release=0.6 //rt_decay=20

<region> sample=MCG Sustains + Releases\mcr_mp_021.wav key=21
<region> sample=MCG Sustains + Releases\mcr_mp_022.wav key=22
....
...

//-----------------------------RELEASE SAMPLES FORTISSIMO--------------------------------------
<group> group=12 note_polyphony=1 trigger=release  lovel=96 hivel=127 loop_mode=no_loop bend_up=0 bend_down=0 volume=6 ampeg_start=100 ampeg_hold=0.01 ampeg_release=0.6 //rt_decay=20

<region> sample=MCG Sustains + Releases\mcr_ff_021.wav key=21
<region> sample=MCG Sustains + Releases\mcr_ff_022.wav key=22
....
...



(As you can see, I've organized groups in function of the velocity of the played notes)

As I already said, when playing notes having the sustain pedal not depressed (cc64=0), all is right: depress a key and a regular sample plays, release it and a release sample play. Great!

Problems arise when I play notes and having the sustain pedal depressed (cc64=127). Imagine playing the same note more than one time, let's say five times, always using the same identical velocity. If one don't use the opcode note_polyphony=1 (as I've, instead, done), every time you'll hit the key, the regular sample associated with that key will start an identical sample, and you'll end up layering 5 identical samples one on top of another (not like a real piano behaves) then, even worse, releasing the sustain pedal, 5 identical release samples will start simultaneously! (again, not like a real piano behaves). Fortunately, opcode note_polyphony=1 is enough to overcome this problem.
The opcode note_polyphony=1 also solves the case when you play the same note more times, let's again say 5 times, but this time every note having INCREASING velocity compared to the previous one(but still belonging to the same velocity group, obviously): here too, thanks to this opcode you don't end up having the fake "lots of same sample simultaneously playing and building up" effect.

Where things become strange, is when you repeat this exercise of the 5 notes, but this time every note having DECREASING velocity compared to the previous one (but still belonging to the same velocity group, obviously): here all change, and you end up with 5 identical samples building up each on top of the previous (what the hell??), then you release the the sustain pedal and 5 simultaneous identical release samples play (!!!). Imagine what effect this behaviour cause on a repetitive arpeggio played in decrescendo/diminuendo for a long time (think the start of Chopin - Fantaisie Impromptu in C# minor, Op. 66)... I'll say you: a real infernal mess of release samples super noiserumblemumble!!!

Who can help me to understand what I'm doing wrong? :?

P.S.
Just for info, It seems also Kontakt suffer/suffered of a similar problem on managing release samples:
http://www.nilsliberg.se/ksp/scripts/scripts.html#release_trigger_bugfix
This is the most similar situation I'm experiencing and the only one I've been able to find googling...
Moreover, a couple of other free sfz pianos I've tried (Salamander Grand Piano v3, Estate Grand LE for Sforzando) all behave this (wrong)way!!

kinwie
Posts: 48
Joined: Fri Jun 12, 2015 4:53 pm

Re: Help with release samples and note_polyphony opcode

Postby kinwie » Wed May 17, 2017 5:44 am

Ive had Maestro Concert Grand piano converted to sfz version 1 long time ago, but almost never use it because Its sound not pleasing my ears. And I prefer Salamander or Ivy piano 162. Also I'm not a pianist and I only choose the piano sound for our projects where my friend play all the keyboard parts.

But if you would like to give a test of my converted version, I can send the sfz to you.
Just a note, it's a standard conversion that follow the original giga settings, but so far works okay as I remember.

Alteregoxxx
Posts: 6
Joined: Mon May 15, 2017 4:27 am

Re: Help with release samples and note_polyphony opcode

Postby Alteregoxxx » Wed May 17, 2017 6:56 am

kinwie wrote:Ive had Maestro Concert Grand piano converted to sfz version 1 long time ago, but almost never use it because Its sound not pleasing my ears. And I prefer Salamander or Ivy piano 162. Also I'm not a pianist and I only choose the piano sound for our projects where my friend play all the keyboard parts.

But if you would like to give a test of my converted version, I can send the sfz to you.
Just a note, it's a standard conversion that follow the original giga settings, but so far works okay as I remember.


Hi,
I too prefer Salamander or, even better, Ivy piano 162: the latter, paradoxically, still with only 5 velocity layers (10 if one consider it has 2 round robin samples per velocity) vs the 16 of Salamander, in my opinion sounds a lot more dynamic and realistic than Salamander.
But it's true also that Ivy piano 162 is the only of the free piano that I know of, togheter with Estate Grand LE for Sforzando,that has not only pedal up samples, but also pedal down samples, hence capturing the sympathetic resonances of strings when notes are played with the sustain pedal down; that, probably, contributes a lot to the realism of Ivy piano 162.
Still, Ivy piano 162, is missing of string release samples, hammer noise samples and pedal noise samples (samples that are, insteda, included in the Salamander Grand Piano v3 library): I've constructed an sfz patch for solving this too, my patch added release samples, hammer noise, pedal noises to the original Ivy piano 162, "stolen" them from the Salamander library, but I'm stucked with the same problem I wrote of above (note polyphony and release mess in certain cases...)

So, it's not a matter of needing Maestro Grand Concert at all costs: I am more interested in completing the work I've almost completed on Ivy piano 162 and I'm working on Maestro Grand Concert samples as an exercise in practicing with the sfz programming. When I will solve this problem, I'll focus on completing Ivy piano 162, that, to me too, sounds better than Maestro Concert Grand, and is probably, togheter with Estate Grand LE, the best free sampled piano avaliable in terms of realism.

Nevertheless, feel free to send me your sfz patch for Maestro Concert Grand, maybe I can learn something else from your file :-)

kinwie
Posts: 48
Joined: Fri Jun 12, 2015 4:53 pm

Re: Help with release samples and note_polyphony opcode

Postby kinwie » Wed May 17, 2017 7:31 am

Hi too!

But first because I'm no piano player, this is not a deep-programmed instrument.
Just hope it is useful to you and anybody else to make a better futher enhancement

This is the link for the Maestro grand, and I've emptied the folders that contain the samples :
https://www.dropbox.com/s/q69710ux1fb7r ... 1.zip?dl=0

A while back I also put these on my dropbox :

- Salamander piano :
https://www.dropbox.com/s/bnfdx18xuhqyb ... z.rar?dl=0

- Ivy piano 162 :
https://www.dropbox.com/s/ay259f95ko1cw ... Z.rar?dl=0

Cheers, have fun!

kinwie
Posts: 48
Joined: Fri Jun 12, 2015 4:53 pm

Re: Help with release samples and note_polyphony opcode

Postby kinwie » Thu May 18, 2017 5:16 am

Alteregoxxx wrote:
Problems arise when I play notes and having the sustain pedal depressed (cc64=127). Imagine playing the same note more than one time, let's say five times, always using the same identical velocity. If one don't use the opcode note_polyphony=1 (as I've, instead, done), every time you'll hit the key, the regular sample associated with that key will start an identical sample, and you'll end up layering 5 identical samples one on top of another (not like a real piano behaves) then, even worse, releasing the sustain pedal, 5 identical release samples will start simultaneously! (again, not like a real piano behaves). Fortunately, opcode note_polyphony=1 is enough to overcome this problem.
The opcode note_polyphony=1 also solves the case when you play the same note more times, let's again say 5 times, but this time every note having INCREASING velocity compared to the previous one(but still belonging to the same velocity group, obviously): here too, thanks to this opcode you don't end up having the fake "lots of same sample simultaneously playing and building up" effect.

Where things become strange, is when you repeat this exercise of the 5 notes, but this time every note having DECREASING velocity compared to the previous one (but still belonging to the same velocity group, obviously): here all change, and you end up with 5 identical samples building up each on top of the previous (what the hell??), then you release the the sustain pedal and 5 simultaneous identical release samples play (!!!). Imagine what effect this behaviour cause on a repetitive arpeggio played in decrescendo/diminuendo for a long time (think the start of Chopin - Fantaisie Impromptu in C# minor, Op. 66)... I'll say you: a real infernal mess of release samples super noiserumblemumble!!!

Who can help me to understand what I'm doing wrong? :?


I understand what you've encountered. I was in that similar problem while back and here the post I made :
viewtopic.php?f=14&t=7688

When the pedal sustain On, is like a drum sample in the loop_mode=one_shot
Previous samples will continue to play and stacked more and more and causing "unnatural ringging tail"

I've solved mine with some tricks. But It is easier because it's a drums.
What I've done is using "Cross off by" with additional *silence region between Hit articulations.
And I limit the polyphony of each kit-piece to 1 for the drum-shells, 2 or 3 or 4 for the cymbals.
I monitor the "Used Layers" in the "Setting" tab, to make sure not more than 8 stacked voices for a fast note hit
(Which mean I set polyphony=4 but achieve 8 )

Could be be harder for piano I guess

Alteregoxxx
Posts: 6
Joined: Mon May 15, 2017 4:27 am

Re: Help with release samples and note_polyphony opcode

Postby Alteregoxxx » Fri May 19, 2017 4:08 am

No other ideas anyone? :(

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

Re: Help with release samples and note_polyphony opcode

Postby davidv » Fri May 19, 2017 12:29 pm

Just want to say that it is indeed very possible to make really great and convincing release triggers for pianos.
My main partner Garritan/MakeMusic have shipped two great Piano libs using ARIA/SFZ, namely Garritan Steinway and CFX Concert Grand (and lite).

I'm sadly in a conflict of interests to explain how they did things

Cheers
David Viens,
Plogue Art et Technologie Inc. Montreal.
http://www.plogue.com

kinwie
Posts: 48
Joined: Fri Jun 12, 2015 4:53 pm

Re: Help with release samples and note_polyphony opcode

Postby kinwie » Sun May 21, 2017 4:53 am

davidv wrote:Just want to say that it is indeed very possible to make really great and convincing release triggers for pianos.
My main partner Garritan/MakeMusic have shipped two great Piano libs using ARIA/SFZ, namely Garritan Steinway and CFX Concert Grand (and lite).

I'm sadly in a conflict of interests to explain how they did things

Cheers


Somethings to do with the note_selfmask= opcode? :mrgreen: :mrgreen:
Nevermind, just ignore that :lol: :lol:

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

Re: Help with release samples and note_polyphony opcode

Postby davidv » Tue May 23, 2017 8:57 am

kinwie wrote:
davidv wrote:Just want to say that it is indeed very possible to make really great and convincing release triggers for pianos.
My main partner Garritan/MakeMusic have shipped two great Piano libs using ARIA/SFZ, namely Garritan Steinway and CFX Concert Grand (and lite).

I'm sadly in a conflict of interests to explain how they did things

Cheers


Somethings to do with the note_selfmask= opcode? :mrgreen: :mrgreen:
Nevermind, just ignore that :lol: :lol:


check out rt_decay from the official SFZ 2.0 book as well.
Cheers
David Viens,

Plogue Art et Technologie Inc. Montreal.

http://www.plogue.com

Alteregoxxx
Posts: 6
Joined: Mon May 15, 2017 4:27 am

Re: Help with release samples and note_polyphony opcode

Postby Alteregoxxx » Sat May 27, 2017 2:05 am

davidv wrote:
kinwie wrote:
davidv wrote:Just want to say that it is indeed very possible to make really great and convincing release triggers for pianos.
My main partner Garritan/MakeMusic have shipped two great Piano libs using ARIA/SFZ, namely Garritan Steinway and CFX Concert Grand (and lite).

I'm sadly in a conflict of interests to explain how they did things

Cheers


Somethings to do with the note_selfmask= opcode? :mrgreen: :mrgreen:
Nevermind, just ignore that :lol: :lol:


check out rt_decay from the official SFZ 2.0 book as well.
Cheers


Thanks,
I was already using rt_decay in my sfz, as "backup solution", before starting this topic; but it's a backup solution really, because that's not how a real piano works :(


Return to “SFZ Programming”

Who is online

Users browsing this forum: No registered users and 1 guest