Skip to main content

help to bring the composer's vision alive

Posted

Hi Andre and Synfire fans,

 

I recently returned to experimenting with Synfire. The program Is much more stable and looks more "professional" now - well done!

I still often have the feeling that I am constantly "fighting against the machine" in order to get my score the way I want it. (When I just let Synfire "do it's thing" the outcome is not sounding wrong but not interesting either to me ("elevator music".) Of course I can always work with absolute pitch mode - but then Synfire degrades to a simple sequencer.)

 

Here an attempt to describe what I would expect from Synfire to really help me with composition and how such an extension might look like:

There could be a second mode for the instruments tab. Currently we see 16 stages of an abstract scale (which are then mapped to notes in the background invisibly). This second mode would show a chromatic bar graph representation (a.k.a. "piano roll") where each chromatic note in a 10 octave range has it's own vertical representation. Here we see where notes are positioned *after* all the calculations took place.

Each line can be highlighted in up to three colors. Chromatic steps on the horizontal scale are blue on the left side, steps on the vertical scale turquoise on the right side. Steps that correspond to notes of the current chord have the color of this chord (that it currently has in the palette) in the middle.

 

If I hover the mouse over a note a info section (comparable to what already exists in the progression view) lists all aspects that contribute to the vertical position of the current note. (So the user can understand how it is computed and what might be viable to change it). Now if I drag the note to a different vertical position I get a list of choices how to achieve this, ordered from general to specific (e.g. Synfire could detect that the desired note pitch could be achieved by setting the phrase to using vertical instead of horizontal scale, by using a different scale (with protosals ordered by likeyhood based on the current progression), by modifying the playing range of the instrument, the transposition parameter, by introducing a note foreign to the scale (by using the +/- 1 semitone feature) etc. - or finally by setting it to absolute pitch.

So the user can more easily get what he wants with less Synfire "mind reading" and music theory knowledge than currently necessary. The user will even learn music theory that way as he sees how things can be introduced by finding the right conceptual description where everything "fits naturally" instead of declaring everything that does not fit as an exception to an unmatching musical progression. (But in any case: You get the music you want, even if the underlaying concept is more complex, so Synfire wouldn't compute the notes that way based on a simple progression - while keeping the description as high level and non-specific as possible).

If you add new notes on positions where they would nonetheless be placed by Synfire (e.g. on the ones highlighted as belonging to the horizontal scale etc.) then Synfire will just place the note, if the position differs from the calculation based on current parameters, Synfire offers choices to change the parameters (as if you would drag an existing note) or optionally it could offer to relocate the note to the automatically calculated position (which might e.g. be shown in gray).

 

This could also be used for midi import. Currently Synfire "kills" many pieces by oversimplifying them. With the chromatic bar graph view, Synfire could show the original notes in light gray in the background (an option that can be turned off). So the user sees what Synfire changed and can intervent by simply dragging the notes back to their original locations on places where it "really hurts". And Synfire tries to offer ways to adapt the underlaying score description in the most "logical" and generic way as described above.

 

That was a somewhat long text describing a probably nontrivial feature to add, but I have a good feeling that this is the feature I miss, with it Synfire will feel "just right" to me. What is the impression of others, could that "be it"?

 

All the best,

Ferdinand


Mon, 2012-09-17 - 08:55 Permalink

Hi Ferdinand,

the desire to control pitch in a more direct way is something I also come across very often. It is just too tempting to grab a note symbol and push it where you want it. I then have to realize again and again that phrase rendering is like graphics rendering. There is no way to change the pixels with a paint brush. You need to change the model or lighting and render again.

Your suggestion to visualize the renderer's decisions in order to influence them selectively is logically sound. However, the individual rules and aspects that lead to a decision are not something the user could edit. This is part of the interpretation magic, built-in AI with considerable complexity, that is only partially controlled by the visible parameters. 

For example, a rule might require that "an accentuated note in a 16th run in an upwards melodic movement closer than 1/4 to the next chord change to snap to a diatonic scale tone, if there is no competing melodic line with a stronger weight". How would knowing that help the user in any way to adjust pitch manually? Aside from that, even Synfire is unable to infer which of the many rules, parameters and dependencies actually lead to a change. They are all processed in parallel. There is no single "winner" that could be presented to the user.

Also, if you were to "fix" individual notes by breaking the built-in rules selectively, the phrase would no longer work when you change the progression, or move it elsewhere.

And last but not least: What is a "pitch change" anyway? A figure does not suggest a particular pitch in itself. Once a take was turned into a figure, there is no memory of pitch anymore. The key is to understand that takes are just raw material used to create figures (unless you have a static melody you want to harmonize). MIDI is temporary input only for building new figures. Synfire is not an "intelligent MIDI editor".

 

=> I like the idea of suggesting an alternative chord or scale based on a desired pitch and put that on our agenda.

 

Currently Synfire "kills" many pieces by oversimplifying them.

Depending on the role of a phrase or instrument, you should refine the interpretation settings to get more intersting results. The default settings are deliberately set to not hurt anyone.

If you want more variety, do not stay with the simple progressions Synfire creates on import. Also, chords written in song books are oversimplified. No musician would play them that way. Progressions are linear, that is, you can place a chord with more tension anywhere, spanning any duration of time.

Did you know you can disable voice leading per each segment? You can even go farther and enable chromatic alterations. For a leading voice, this may be interesting, provided you carefully use the accidentals of the figure segment.

Regarding elevator music: It's the use of clichés, stereotypes and lack of expression that sets elevator music apart from original and refreshing tunes. The selection of a certain pitch here and there is a minor detail only. All the phrases in the example library are clichés (for a purpose). Use them wisely as a starting point only.

 

Mon, 2012-09-17 - 20:50 Permalink

Hi Andre,

"The selection of a certain pitch here and there is a minor detail only" - this highly depends on the circumstances. E.g. in an accompaniment that might be true, in the introduction phase of a new theme every note can matter.

In general my feeling is - whenever the user has a specific melodic phrase in mind he should be able to make this happen. If the program does not allow it, it is not helping with composing but more preventing from doing it, I could imagine most composers will not even consider to use such a system. If it makes it too complicated or instantly looses all of it's benefits as soon as you want to define something yourself the likelyhood of using it goes down, also.

So imho the program has to cope with the situation: The user's wish regarding specific aspects of the output is law number one, weight infiniti, written in stone. Then it can try to optimize and "make the best" out of the remaining degrees of freedom, so the user can leave those things to the program and only has to intervene if he does not like the results - in which case the program *has to* take these interventions into account again.
By making the best out of it, I mean, it should try to reach the user's wish by searching for the least intrusive rule alternations possible, so the phrase can still be used in the most flexible way.

That this "inverse calculation" is presumably much more difficult than the forward way is a real challenge for writing a program like Synfire. In the worst case you can always set the fixed notes to static mapping to a chromatic scale so there is always a solution. Hope is of course that the best solution you can find is better, otherwise Synfire is just a normal sequencer in a realistic scenario - and there are already a lot of sequencers, developed with big budgets...

Regarding the types of potential users:
In order to predict Synfire's output properly in it's current state and define the parameters accordingly to get the envisioned result, beside in-deepth observation of the program's behaviour you need a rather profound knowledge of music theory regarding scales, harmonic function analysis etc. People who have this level of knowledge can usually write the music themselves with Finale/Sibelius/pen and paper - what they will continue to do in a heartbeat if the program does not help to be faster but makes realizing specific visions too complicated or even impossible.
What leaves those who don't have this in deepth theory knowledge. And those might be frustrated rather soon because they are "at mercy" of the program because they don't know how to influence the output in a certain direction - so the music has a high chance to sound just "generic" and thus boring, in which case there is little they can do about it. Here an approach where the user tells Synfire what he wants to achieve and the program makes suggestions how to reach this defined goal might help a lot. (Perhaps comparable to what I described above - or whatever you might come up with).
(For understanding where I come from: I studied music theory as a subsiduary subject (together with the instrumentalist, several levels below what the composition students hear), so I know a little about harmonic analysis and have heard about the most common church tone scales etc. - but I have no in deepth compositional training and e.g. don't instantly have a clue which additional notes I might be able to play if I choose a "raga-madhuri" scale :) So it is obvious to me that part of my inability to get Synfire to do what I want most probably has to do with my lack of real in-deepth theoretical background and another part that my experience with Synfire is still limited.
Both things I might have in common with a bunch of others I guess, though)

Please take this as a constructive critism. It's just hard for me to use the program in it's current state, so I want to provide suggestions how to make it better - from my individual point of view based on my observations and assumptions.
Even though finding an optimal solution might be difficult or even impossible in theory, fortunately optimality might not even be necessary - I am sure there are a number of ways to get this "reverse analysis" working in an at least satisfying-enough way to keep people happy - and if there are, I am confident that you are the right one to find them :)

All the best,
Ferdinand

Mon, 2012-09-17 - 21:29 Permalink

Hmmm. Intersting discussion. Wouldnt that level of reverse backtracking and verbosity make things even more complicated?

If a certain pitch is not allowed, chances are you have a different chord or progression in mind without realizing. Change the chord accordingly and your melody will work again. With the palette, this is easy (click on the scale). Like andre said, a hacked and optimized figure will no longer sound good when the chords change.

Does disabling voice leading per segment not help you? This solves most of the difficulties for me.

I too think there could be a few more tools that help with finding alternative chords. The harmonizer is a bit overkill for this.

Mon, 2012-09-17 - 21:37 Permalink

It mostly for transitory notes where I usually don't even think about which function that might be.

 

Disabling voice leading is one of the few things I learned by trial and error. This is exactly one of the things I suggest - if I could tell Synfire which pitch I want things like voice leading or an inappropriate chord/scale could be some of the first things it could check internally - and if disabling e.g. the voice leading allows this note, this choice could be on the top of suggestions how to solve the situation. User happy, problem solved, user learned something he might do right next time by himself automatically.

Tue, 2012-09-18 - 14:09 Permalink

I understand that a "reverse backtracking" feature (i.e. a feature that makes it possible to manipulate notes directly in a piano roll editor and then translates these changes back into the figures and parameters of Synfire) does not fit very well into the concept of Synfire. But I could imagine to have a piano roll just to display the rendered result. This would give an immediate visual feedback on how the operations on the parameters affect the final musical result.

 

In a complex arrangement in which the musical output rendered by Synfire depends on many different factors it can be quite hard to guess what effect a specific parameter change (for example a different interpretation setting) finally will have. Then the only way is to try it out and to listen to the result. Or to export the rendered output into a DAW or a notation editor and to examine it there.

 

The advantage to have a piano roll integrated into Synfire would be that not only the rendered notes but also the harmonic context could be displayed there, for example by coloring the notes of the current chords and scales. This would make it immediatly visible, which notes are interpreted as passing tones, auxiliary tones, and so on, and the user would not have to rely on his hearing so much. And it would probably lead the user to a better understanding of how Synfire actually works.

Tue, 2012-09-18 - 20:29 Permalink

But I could imagine to have a piano roll just to display the rendered result.

Yes. This is on the agenda.