My list of suggestions

12 posts / 0 new
Last post
scriabiner's picture
Last seen 17 sec ago

My list of suggestions

This is the thread about features.

For bugs, see My list of bug reports.

Updated for version 2.0.6 Build #3

Marked in yellow the most needed things.


Basic notation support (accents, etc.)

See the other thread of mine:


Without this feature, anyone who wants to make keyboard music and export it to notation, is condemned to brutally suffer.




Related to the below dynamics editing feature, it should be possible to assign to a figure a given number of voices, so it would be easier to edit e.g. a piano part with two voices, for example with the pinky playing a top line and the other voice playing something else with the other fingers. Other than for exporting, this information could actually be useful to Synfire too, because knowing the instrument, when rendering, it could prevent placing the notes of the second voice too far from the first voice, unless the user disables the checkbox for that segment/voice.


Voices are an important component of the musical idea, so they cannot be left to the software to guess.
Therefore, this will also be a starting point for more advanced humanization and notation features, and also for better interpreting the figures, both harmonically and for applying automatic dynamics.


I understand that this could become hard to manage visually, but it may actually be as simple as having less saturated colors for the second voice, otherwise identical, and voilà. Users that don't care about this feature will notice no difference because they will not add a second voice (by clicking some button), so there will be no complications for them.

As for the current voices-detection, I would simply remove it because I don't think it is usable (maybe for super super simple simultaneous notes) and time shouldn't be wasted IMHO in trying to improve it, because even with A.I, only the composer knows how he wants the voices to be.

Current workaround: splitting and merging by symbol type. Why this is excruciatingly bad:

  • There currently are no options like "Split to below instrument" and "Merge with above instrument", so you'll find yourself having to delete useless instrument and copy pasting the figures
  • You have to do this for every single container/figures
  • Splitting by symbol type is not enough because two voices can be both blue.
  • Working with two instruments for two voices and later merging is not an option because:
    • you want to see how far two voices are between each other, especially when they are of the same symbol type, to avoid e.g. crazy intervals
    • the rendering will behave bad, making two voices cross when you don't want them too, etc.

This feature would be useful not only for exporting to notation! You could, for example, export to MIDI multiple voices separately so you can then import them separately in a DAW for easier editing like e.g. dynamic. Right now the only way to do this for a sinlge instrument is to manually split voices, which is not ideal for the already explained reasons.

About the proof of concept pictures:

  • The selection buttons for the voice; gray ones are visible, and the one highlighted in blue is the one where you're actually writing music in that moment; there is always one highlighted voice.
  • The drop-down menu for more options for voices.
  • The rendering of collisions: the voice you are working with is visually rendered first, the others are in the background, gray or not.
  • The anchor is white just because it looked a bit bad against the grayed out voices.
  • The pictures are a demonstration of a piano piece, as is reflected by the voices names. Here we have in fact "Right hand voice 1", "Right hand voice 2", "Left hand voice 1", and "Left hand voice 2". Since one could want 4 voices just for one hand, or 4 voices for some other instrument, the ideal would be to let the user name the voices and assign them, for export, to a given voice of a given staff of that particular instrument. This setting should be per-instrument.
    Regarding how many voices, 4 would be a good start, however, complex keyboard pieces could require 8, and splitting the two hands is a bit of an issue if you want to have a good idea of everything at the same time: it would defeat the whole purpose of the feature.

General usability, workflow, GUI

Dynamics editing

Update: slight improvement in V2 with CTRL, but first it's a pain to use, second the top dynamic is always the top note, you cannot choose; moreover you can't see the symbols in relation to the velocities (which velocity point relates to which sybol/note).
Basically, for what I understand, Synfire doesn't really have a per-note velocity, or it's calculated at the moment of rendering. Well, this should definitely be changed.
Moreover, V2 already allows you to select different types of figures, so you can already select e.g. the bass only: so the path towards this feature is not far.

This feature request is related to voices, but not only. It's also useful e.g. for chord dynamics.
The "Voices" feature should be given priority, even though they're both essential.

If you have multiple voices, it's currently impossible to accurately change the velocities of notes of a particular voice.
I suggest that Synfire use a per-note velocity internally.
Then, the selection of a group of notes while in the parameter Figure should be kept after selecting the parameter Velocity, so that when drawing, only the selected notes should be affected.


Of course, if no note is selected, every note's velocity can be edited.

The same should apply with e.g. the parameter Length, so you could have staccato only on the top line.

Of course, the best thing would be to have a velocity editor the same of FL Studio's and Dorico's piano-roll, which is the top-notch way to edit velocities, that is having another panel below.

Shift parameter: Humanization + Rubato

If I want a custom humanization, I should be able to merge it with a rubato. Right now, if you merge (with shift key) a humanization over a rubato, it doesn't actually work, and that's verifiable via Output (rendered notes) and by listening.
The fact alone that there are templates called "Rubato + Humanization" hints to the fact that there should be two different parameters for this, or some option to edit these two aspects individually.

This may sound like nitpicking, but if you want to export to WAV and create a final performance via Synfire (which is totally reasonable for a piece for e.g. one single instrument) you need full control over these kind of parameters. Hence also why the "Dynamics editing" former feature.

"Non-Exportable to Notation" warning

Just a simple exclamation point icon near a symbol that can't be exported to notation not even with a tuplet notation, and only if the user enables this functionality in Preferences.

Super useful especially with tuplets, so you don't make "impossible" note positions/lengths.

Basically, now that with 2.0.4 we have updated export settings with prep, we could get a warning in advance that a given measure has problems using the current notation export settings.

More zoom buttons

Since the zoom is not going to get mouse-wheel support any time soon because of the language used, I noticed you came up with those eye and expand button; I find it a good idea and it would be useful to have even more of those, especially a "focus on the current measure only" one, which expands for the whole width of the measure.

Select symbols of given color only for selection

If a group of symbols is selected, using the feature "Select Symbols For X" should apply only to the selected group of symbols. If you use the "Pointer" cursor, the selection can certainly be expanded to include the whole segment(s), but not to select the entire figure.

Resizing tracks vertically


Helpers and limiters

On the left of the instrument, depending on the selected parameter, there could be some help markings with values, so you know what you're drawing. For dynamics, there could be pp/mf/etc. (just approximate of course, for reference; bonus feature, configurable by the user).
Moreover, for things like Tempo, when creating rallentando and accelerando, you may want to know what is your current default tempo, and for that is very useful to have an horizontal line showing that, so that you can go back to your default value with ease, maybe even with a snap feature when you're very close to that line.

Meter scheme

The vertical lines indicating the meter scheme should also be in the container panel, because it would help with moving containers around:
This could be checked on or off.

Moreover, everytime there is a measure, there should be a different, bigger line, to indicate that it's the start or end of a measure and not of just a beat:
[measure_bars.jpg] (done!)

Currently selected container

It's this blue that is easily confused with other colored containers. I think the currently selected container needs a border.

Containers: Right clicking

Right clicking a container, before showing the menu, should select the container under the mouse.

But I understand that the current behavior may be a pondered choice.

Library minor improvement (drag & drop)

There's no reason to prevent drag & drop from the phrase preview at the bottom:

Option to clean the "Last used files" menu with an entry at the bottom of the menu

Like in most software; would be useful to clean some of the mess that you get after you use Synfire for a while.

Piano music

Interpretation: Half-pedaling

Giving the Interpretation parameter the ability to generate automatic sustain pedal content is very smart and appreciated. However, with some piano VSTs the full pedal can quickly create a very muddled sound, so I suggest to let the user specify a max value for pedaling instead of always 127:

Actually, e.g. even Dorico (which is mainly a notation software) does more than that, and it lets you specify 1/4, 2/4, 3/4 and full level of pedaling to be placed wherever you want.

Sustain pedal

I understand that the sustain pedal has a special interpolation method to allow a quick way of generating pedaling for the Interpretation parameter. However, as you know, piano pedaling is not a ON/OFF switch. Moreover, one may want to simulate progressive pedaling. Right now you cannot achieve this because it's ON/OFF and you can't draw diagonals: you can get some "diagonal steps", but it's very uncomfortable to draw and there's this annoying magnet to either 0 or 127.
The pedal should be drawn like this:

I know that you can use Custom Controllers, and in fact I've already created my own Damper CC. However it doesn't make much sense to have two things that are the same; moreover, if you use Generate pedal but for a specific measure you want to edit the pedal via the use of a container, this would "overwrite" the generated pedal thanks to the cool Synfire containers-workflow: but this doesn't work correctly if I make my customized Damper CC, because the two controllers have a conflict (I tried).

Done in V2

Slot for global parameters

A special instrument (which can be any instrument after clicking a checkbox) for editing global parameters and MIDI CC controllers (including custom ones) (V2 done). When switching to a non-global or non-controller parameter in another instrument, the special instrument will keep the last selected global parameter / controller in memory, and it will stay visible in gray, even though you're now e.g. editing a Figure.

This allows to e.g. always have a look at the global Tempo while editing other things, or always have a look at at the Sustain while editing notes.

When clicking again on the special instrument, the last memorized parameter will be selected so that you can instantly go back at what you were doing in this slot.
By unchecking the checkbox, the instruments goes back to normal.
There can be multiple of this special instruments.


Stretching groups of notes: improvement

After selecting a group of notes, it should be allowed to stretch them by respecting the length/quantization selector (whichever it is called) like when editing a single note, by holding a given key.

Preview of selection

When using a given length selector, e.g. 1/4, and trying to select a region or to stretch a note, there should be an indicator to show where the actual end of the selection will be if you release a mouse at that point: right now, if you e.g. stretches not enough, you will snap to the previous "step", which is very annoying. This is especially needed for big lengths like e.g. 1/4.

Customizable Hotkeys

Copy note length

Clicking a note should update the length/quantization selector (whichever it is called) in order to easily copy the length of a note for drawing more notes of the same value. Like in FL Studio. (there is now a functional grid and a decent length-resizing-behavior, so I guess I'll just mark this as done)

Output view at the bottom panel vertically aligned with the top figure/parameters

So it's very clear which symbol becomes which note, etc. (done with an alternative solution)

blacksun's picture
Last seen 3 hours 30 min ago

That is a lot of changes for the rest of us to get used to, some of them would really improve workflows but others already have solutions. I havent used synfire for a little while so some of the following may have changed or been misremembered, just a few thoughts and things you may have missed, not trying to belittle the work you've done:

Dynamic Editing
There are different ways of selecting notes and applying changes, it is already possible to split different symboled figures into separate instruments so you can treat them differently then combine them back afterwards. I think this is covered in some of the tutorial videos together with options for changing velocities. However your suggestion would definately improve things.

Apply templates only to the selected range
If i want to do what you are suggesting, currently the best way is to create a sub-container with the parameters you want to affect, sized and posititioned to cover the range you want. This has the advantage that you can easily move it around and see the impact of it being used with different notes and different places in the music, it also means it is non-destructive to the orginal figures/notes.

Mostly there arent global parameters, most apply to a container although that container could be the main one and unless changed in a sub-container, will apply for the whole tune.

Container Resize to content doesnt really make any sense? Resize to the length of a figure in the selected instrument, the longest figure in the container, what if a figure repeats for the length of a container, resize to the length of the longest parameter which may repeat? You can drag containers to length, move them around or enter the length in the container parameters. You may be asking for this due to the way you are working with synfire based on traditional music software. Containers dictate the length of the song/section/part. I tend to have containers for into, outro, verse, bridge, chorus, etc and often those containers will have sub containers to alter those sections over time.

I hate the new suggestion, I have libraries with lots of figures and other paremeters in them, whilst i can see an advantage of being able to see them, i'd only use the first few as the rest would only be visible with scrolling. You can rename the snipits they dont have to be called E0 e1, etc.This should give you an idea what the section is about.

Default project
This one is a bit vague in my memory, I thought there was a default project which opens whenever you open synfire so you can think of this as a kind of master template a bit like the audio and midi settings and this can be overwritten. I must admit i might be getting confused with ableton live. If I have got it confused with ableton, I would prefer this as the way of working, after all the recently opened projects are available in one of the the File menu options. In terms of project handling, although it might be a pain to always end up with an unused empty default project, I often have more than one project open and copy stuff between them, if a file open closed the previous project, there would have to be a new option to open a project without closing the currently opened one.

Tempo parameter
This is a container value, if you want to return to the previous value, create a sub container, sized and positioned for the new tempo parameter, when that subcontainer ends, the tempo will return to the previous value, no need to remember it or reset it.

Position of shift
This is to do with the timing of notes in a figure and to my mind fits with length, rhythm, step etc. under rhythm.

Packing containers
I thought this was a form of container usage where there are no gaps between containers, and it was snapshotting that copied parameters to sub containers? I tend not to use packed containers as i make heavy use of sub containers, container aliases, etc. but do use shapshotting a lot.


blacksun's picture
Last seen 3 hours 30 min ago

Just like to add, I do not work for synfire/cognitone, I've been using synfire for a fair while now though. It did take me ages to get my head around the different way of working as I came from a DAW background with a linear view of music.

scriabiner's picture
Last seen 17 sec ago

Thank you for the reply. I'm new to the software so, yes, certain things may just have a different workflow solution. I'll constantly adjust the first post basing on the replies that I receive.

That is a lot of changes for the rest of us to get used to

Yes, maybe those that completely changes the structure of the program are not a good thing for this reason.

Dynamics editing

"Just split"

Yes, I know about splitting. As you acknowledged, it's not ideal, it's a lot of steps compared to the proposed solution.

Apply templates only to the selected range

Just use containers

You do have a good point. It's just a different workflow, basically, you're right.

Slot for global parameters

Mostly there arent global parameters, most apply to a container

Sure; I think the manual itself call them "global", it's only in the sense that they are not tied to a slot but they apply to the whole container. I just hate not being able to see the Tempo and the Sustain while editing a Figure, that's the reason why I've proposed that feature.

Container resize

 You may be asking for this due to the way you are working with synfire based on traditional music software.

Kinda. The situation is the following. You have just one instrument, so no orchestra or things like that. For organization and for easier future modifications, you divice everything in part (exactly as you were suggesting, intro, etc.); however, everytime I add content to a part, I have to manually change the container size. Sometimes you add content, but the main container is shorter, so content is truncated. Instead of manually having to resize it (which requires changing the quantization selector, etc.) you could just click that button. And I proposed a button exactly because this shouldn't be a default behaviour. But it's a useful shortcut. To answer your question, it would be the longest figure with no repeats.


Fair enough.

Default project

if a file open closed the previous project, there would have to be a new option to open a project without closing the currently opened one.

That is not the problem, I actually like the approach of having multiple windows containing different stuff. I was just advocating for more options about what happens when you first start the program. It's more choices, not limitations.

Tempo parameter

This is a container value, if you want to return to the previous value, create a sub container, sized and positioned for the new tempo parameter, when that subcontainer ends, the tempo will return to the previous value, no need to remember it or reset it.

Very good point. So the only problem that remains is the notation. Meaning in XML you end up with tons of useless tempo changes. I guess I'll change the request in to give the option of not exporting tempo changes in the XML, that would solve the entire issue.

Packing containers

I thought this was a form of container usage where there are no gaps between containers


With Container >> Pack, you can move all phrases of a container into a new subcontainer. The original container will be empty after this. This is very helpful if, for example, you started an arrangement in the root container and after a while want to add more containers to it. This way you get all contents of the root container quickly moved into a subcontainer.

This sounds like "extracting" to me.

scriabiner's picture
Last seen 17 sec ago

Updated with FL-piano-roll-like feature request for 2.0.

juergen's picture
Last seen 24 min 58 sec ago

Updated with FL-piano-roll-like feature request for 2.0.

Not exactly a piano-roll but something similar will be there:


scriabiner's picture
Last seen 17 sec ago


scriabiner's picture
Last seen 17 sec ago

Updated for V2.

scriabiner's picture
Last seen 17 sec ago

Quite revamped, and updated for v2.0.2, patch 1.

scriabiner's picture
Last seen 17 sec ago

OP updated for version 2.0.4 Build #2.

scriabiner's picture
Last seen 17 sec ago
scriabiner's picture
Last seen 17 sec ago

Updated for 2.0.6 b#3...

Log in or register to post comments

Scholarly Lite is a free theme, contributed to the Drupal Community by More than Themes.