Default engine parameters

When an engine is instantiated it has default values for each of its parameters, e.g. Reverb=64. Some of these values may be irrelevant (inherited from the base class) or inappropriate, e.g. Chorus=2. This thread requests your opinion on what the default values should be. Let’s start with the base class that is inherited by all engines.

Controller Default MIDI controller Default My opinion
volume 7 96 About 100 sound right
modulation 1 0 OK
pan 10 64 OK
expression 11 127 OK
sustain 64 off OK
resonance 71 64 Remove from base class
cutoff 74 64 Remove from base class
reverb 91 64 Default 0
chorus 93 2 Default 0
portamento on/off 65 off Remove from base class
portamento time 5 64 Remove from base class

zynthian-ui Issue #88 requests a change for this. Please give feedback here so that we can provide some consensus on preference. Once we have the base class agreed we may move on to each engine.

1 Like

For me everything is fine as it is apart from the reverb and chorus which should default at 0. The volume is likely a little low to allow headroom for layers.

I suspect these were derived from fluidsynth and as one gets to other engines they become a little more complicated.
I really like keeping the overall volume on encoder one. it just seems logical but several engines use others ( I think it might be helm that has volume as 0-> 1.0 on page 20 or so, so perhaps we might want to standardize that aspect as much as possible.

The volume level has already come under discussion elsewhere but it depends a lot on usage. If one is only playing pianoteq then 96 is probably about right ( my audio technologist side likes a bit of headroom) whilst multiple engines is probably going to need laborious turning down and snapshotting to produce a suitable level.
There is an outstanding ticket for adding -10dB & +10dB pads and I think this should be implemented as altrations to the actual engine ( by altering the default 96 level rather than trying to produce sub processors down the line .That way we keep the engines as generic as possible and also conciously map the volume control.
Quite how it develops as engines become more and more imaginative we will address as it arises.

I think a little bit of reverb & chorus ‘helps’ the default for the disinterested user coming to the machine for the first time, but as with a lot of technical solutions how the device should be set for the first encounter and how it should be set up for someone who is an experienced users are two different things… ( Think zynaddsfx display modes simple & advanced…)

Portamento is something that (IMHO) should be off by default. I’ve fought polyphonic portamento before ( try getting to recordings to match :frowning: ) and it can be a pain, that should only be enabled by someone that specificlly wants it. :smiley:

If we were to have defaults I would suggest ADSR characteristics might well be something that would help the early adopter but perhaps the fluidsynth origins of the system indicate the possible issues with envelopes…

Good feedback @wyleu. I should have been more clear (especially as I started my post with this detail and deleted it…). This is the default values for parameters, not necessarily what gets displayed and mapped to which encoders which is a different configuration. One would expect the defaults in the base class to be the ones that (almost) every engine uses, e.g. Volume on MIDI ctl 7. Perhaps we should just have the standard MIDI controllers:

MIDI CC Description Default
1 Modulation 0
5 Portamento time 0
7 Volume 96
8 Balance 64
10 Pan 64
11 Expression 127
64 Damper / sustain 0
65 Portamento 0
66 Sostenuto 0
67 Soft 0
68 Legato 0
69 Hold 0

Maybe there could / should be a default of zero for anything that is not overridden so the global default is zero, the base class implements volume, pan, etc. then actual engines define anything else and override defaults as appropriate.

Regarding positioning in the UI, I agree with @wyleu that we should aim for consistency. This should be possible with most engines as each has its own configuration which zynthian uses to map controllers. So one might expect the first page to have volume and pan (or balance if more appropriate for the instrument). I think the sustain control is odd in a UI. It is occasionally useful for engineering investigation but I would prefer it be removed and always mapped to the sustain pedal (MIDI controller 64). (Maybe there is a need for an extra layer of configuration to allow mapping of controllers that we don’t want to see in the main UI - but that is the subject of a future discussion :slight_smile: .)

I hope you don’t mean “disinterested”! How about having a default layer configured out-of-the-box to demonstrate the awesomeness of Zynthian with as much reverb, phase, echo, delay and fireworks as you like? I found the noob experience a littel daunting because you are presented with something that does nothing, compared with most other instruments where you start playing and exploring sounds straight away.

Disinterested user, to me, means someone coming to the device ( with a keyboard half decent attached).
What would they expect it to do?

My context would be a piano sound.

Now for ‘most’ audio performances the dear old western ear appreciates, generally comes with a dose of ambience.Be it real a concert hall recording or the current favuourite reverb unit…

try playing outside to really appreciate it . . .

So I would suggest a little reverb.But as @riban implied there is a whole required level of config to prune and render the gui screen data. Having 40 pages of encoder maps is a little intimidating but conceptually required.
The creation of instrument definitions might well also play at this level, as the ability to map a Motor61 against and AKAI MPK suggests a large context to the GUI. For instance the mapping of drawbars on Aelous or souper looper control keys for the AKAI…

I have the advantage that my default zynth is a hifiberry+ so I get to see some absolute comparisons rather than compensating on a mixer or such. Some of the synths are loud !!

The good thing is I don’t transport a mixer if we get it right. :smiley:

The disinterested user, that I am, also likes to get the whole lot in a rucksack on a bike !

So to me the default sound should be a good piano. Probably out of fluidsynth as it was probably the first.
Now would you pop up in layer list or encoder page1?

My SC-155’s internal battery went flat so each time I powered it up it reverted to factory defaults which had a good lashing of reverb enabled. I had to pull it down every session which soon became frustrating (to the extent that after a few years I got my screwdriver out to replace the battery :slight_smile: ). I think that a user’s first experience should not be their ongoing experience. Maybe Zynthian learns what your preferred defaults are (like the old SC-155 kinda did) or you can set the default or it remembers the last settings you used. All options, hence the RFC.

That is another discussion, maybe best had over a tea and biscuits :wink:. I think the UX and workflows a bit confusing which may be the subject of my next post… But back to the topic. @everyone please consider what you think the defaults should be (and whether those are derived from a static default set, a user configurable default set, the user’s last create layer settings, whatever…).

D’oh . . .

Is probably a good moderate user compromise.

Headroom for layers? Admitted, I’ve played way to little with layered sounds and effects, so the answer might be obvious to some, but in the interest of following along. Are the layers adding up, so there’s a risk of peaking or is it just to be able to make a bunch of layers and then make the primary sound stand out by increasing that specific volume?

1 Like

That is the most useful way when doing layered sounds. Headroom is always an issue in digital systems. If you have a good midi controller having a volume per layer would be the ideal solution.