Skip to main content

Exact figure recognition

Posted

Although I highly admire the artificial intelligence built into the figure recognition feature of Synfire, I suppose it would be extremely useful to have an option (actually I mean a new figure recognition algorithm) that makes the resulting figure sound exactly the same as the original take.

Of course, I have read the manual which states that the 100% agreement with the original take cannot be achieved. However, I still wonder why there is such a generally denying statement. With some prerequisites, it shouldn't be so hard to code this feature, I think. For instance, let's constrain our use case to the following conditions:

1. The reference scale as well as the underlying harmonic progression is given beforehand,
2. the input take contains just one part (one instrument),
3. the resulting figure will consist of symbols of just one type: either horizontal or vertical (this choice is also made beforehand),
4. during playback, the Interpretation feature is bypassed.

In this scenario I can't see a reason why the resulting figure couldn't sound in an exact agreement with the original take. Anyway, the horizontal symbols always denote the steps on the global reference scale (which is given) and the vertical symbols always denote the steps on the local vertical scale (which is given by the harmonic progression as well). Therefore, there seems to be quite a simple mapping from the input MIDI notes into the resulting horizontal or vertical symbols. At least, I am able to draw the exact figure myself - and I don't find myself using much intelligence on it ;-)

Regarding the benefits of this feature: in spite of the fact that the resulting figure will sound exactly the same (on top of the original harmonic progression), it provides us with a very useful abstraction of the input material for various subsequent reharmonizations, variations, etc. Creative posibilities of working with the source material - this is actually the main contribution of Synfire to me. But the "Exact figure recognition" would allow me to quickly and easily work upon the original phrases, without any unwanted modifications that happened at the very beginning.

What is your opinion?
--
Miloslav


Tue, 2015-08-25 - 13:43 Permalink

hi valsolim

 

To avoid Synfires AI, I just import melodic midi tracks, as if it would be a drum one, and with de-checked "harmonical analyse". So I have a a thumb raw (and very quick, BTW! ;-) ) midi import without any modifications at the beginning. Is it that your looking for?

 

best,

Michael

Attachments

Tue, 2015-08-25 - 14:35 Permalink

Hi, Michael,

thank you for the suggestion, however, the "Input for Harmonizer" option produces static figures which is not what I'm looking for. The static symbols do not respond to harmony changes and they are not organized according to the used scale, which is exactly the benefit of the horizontal and vertical figures. The static figure is what you can get in an ordinary DAW, but I want to keep the flexibility of Synfire. Of course, it is possible to convert the static symbols into horizontal/vertical symbols afterwards, but this way you will get a figure which sounds completely different from the original.

Best regards

Miloslav

Tue, 2015-08-25 - 20:53 Permalink

Hi Miloslav,

Yes, exact figure recognition  that should open new possibillities in Synfire...then i could use the flexphrase(d) sounds from HALion5 too.
You cannot compose with Synfire on the traditional way in the phrase editor.. say where a note must have a certain desired pitch, because the phrase editor notes does not reflects the played notes from the connected soundmodule...it is translated by the musical AI from Synfire ( named the "Synfire magic"). 

 

Wed, 2015-08-26 - 07:58 Permalink

let's constrain our use case to the following conditions:

1. The reference scale as well as the underlying harmonic progression is given beforehand,

How would you input that information (reference scale, harmonic progression)? Manually?

How would you deal with notes in your take that are outside of the reference scale?

If you want to re-use an imported phrase at a different harmonic context with a different scale: How should the re-mapping to that new scale exactly happen? For example, what should happen with a note that was outside of the original reference scale but would now fit to the new scale. Should it still be treated as a "outside-of-scale-note" or as a scale note?

How would you map to a scale with a different number of scale steps?

I think at a closer look the problem is not as simple as it first appears.

 

 

 

Wed, 2015-08-26 - 21:34 Permalink

I experimented with the idea of an "exact" melody.

Load a midi file with the melody and midi accompaniment.

Where notes sound wrong, move them up/down,

OR

Figure out what scale tone the note is and change the chord to one that includes it

(a 'C' chord with an 'f' note, change the chord to  Csus - F/C - C11 - G7 - etc)

Usually something worked.

Wed, 2015-08-26 - 21:59 Permalink

Hello, juergen,

How would you input that information (reference scale, harmonic progression)? Manually?

Yes, the harmony is known in advance, inputted manually, and I want to map the figure to it.

How would you deal with notes in your take that are outside of the reference scale?

The corresponding symbol normally gets a non-zero value in its "Chromatic" attribute (+1 or -1 for a sharp or a flat accidental, respectively). I think this is already solved in Synfire.

If you want to re-use an imported phrase at a different harmonic context with a different scale: How should the re-mapping to that new scale exactly happen?

My idea was to use the original harmonic context during import, and to change the harmony afterwards. My concern was only related to the import phase. Nevertheless, I admit that the current figure recognition is - maybe - as good as it can be. I'm aware of the fact that, e.g., various voiceleading constraints can cause some alterations of the exact notes played back. If the Interpretation parameter is completely bypassed and if the original harmony is not changing too quickly then the results of the figure recognition are usually quite satisfactory for me.

But sometimes I simply get the feeling that Synfire is doing something behind my back - maybe I just need to explore it more... Anyway, it is a wonderful beast to play with! :-)

Best regards,

Miloslav

Thu, 2015-08-27 - 13:27 Permalink

The corresponding symbol normally gets a non-zero value in its "Chromatic" attribute (+1 or -1 for a sharp or a flat accidental, respectively). I think this is already solved in Synfire.

Well, that means you would store out-of-scale-notes with a chromatic offset. But it's obvious that this chromatic offset attributes would make only sense in the original harmonic context and with the original scale, but not necessarily in the new harmonic context when you re-use the phrase.

Let's say, we have a phrase with the notes C - Eb - A and the underlaying scale is C major. Then you would store the note Eb with a chromatic offset -1 and the notes C and A without offset. Now, what would/should happen if you want to re-use that phrase with the underlaying scale of Eb major? The note Eb would now be part of the scale. But the note Eb from the phrase has the chromatic offset -1. The result would be that the note Eb would be mapped to the note Ebb (i.e. the note D) after re-mapping to the Eb major scale. Would that make sense? 

The other possibility would be that the notes would simply be re-mapped to the new scale no matter whether the original notes were out-of-scale or not (i.e. Eb would simply be re-mapped Eb in this case). But this approach would erase any "blue-notes-information" from the original phrase.

I think it is these difficulties which are the reason why Synfire uses a different approach. During the import of a Midi-File the musical information is separated into complety different parameters: Figure and Harmony. Neither of these two parameters contain the complete information about the imported music: The Figure knows nothing about harmony and scales and Harmony hold only the information about the harmonic context and knows nothing about the real notes that were played. Audible music can only be produced from it through the synthesis of these two parameters during rendering. But it is understandable that this process is lossy. During the rendering, Synfire have to guess how the two parameters Figure and Harmony can be combined best to produce reasonable music. But at this point Synfire has no idea what the original notes of the Midi-file were and therefore we can not expect that we hear exactly the same thing.

The advantage of this concept, i.e. the separation of the music into the parameters Figure and Harmony, is full flexibility in re-using the imported parameters.  Synfire can make mistakes in estimating the harmonic progression during import, but then you can still use the imported figure without restrictions since it has no connection to harmony and scales.

What you imagine is a kind of re-mapping tool (of which there are already some in the market). I would recommend trying out such tools, then it will probably be pretty clear what I mean.

 

Thu, 2015-08-27 - 15:06 Permalink

Let's say, we have a phrase with the notes C - Eb - A and the underlaying scale is C major. Then you would store the note Eb with a chromatic offset -1 and the notes C and A without offset. Now, what would/should happen if you want to re-use that phrase with the underlaying scale of Eb major?

In Synfire, the phrase C-Eb-A played over C major as a reference scale is usually recognized by the Linear algorithm as the following horizontal figure: 0/0, 2/-1, 5/0. (Here I'm using the notation "Step number"/"Chromatic offset".) When this recognized horizontal figure is being played over Eb major as a reference scale, Synfire (with the Interpretation feature switched off) produces the following notes: Eb-Gb-C. So I think it already works as a sort of remapping tool.

Anyway, I got your points about the separation of the input music into Figures and Harmony and that this process is lossy to some extent. Your comments helped me to understand my problem a little bit more: Synfire strives for extracting a meaningful Figure and a meaningful Harmony, at the risk of producing structures that do not emulate the input precisely. From this point of view, my original idea was to implement an option allowing basically the opposite approach: to extract Figures and Harmony that would exactly emulate the input, at the risk of producing musically awkward structures. Now by myself I'm hesitating whether this opposite option could be ever useful at all... Maybe not? Or? ;-)

Best regards,

Miloslav

Thu, 2015-08-27 - 15:37 Permalink

my original idea was to implement an option allowing basically the opposite approach: to extract Figures and Harmony that would exactly emulate the input, at the risk of producing musically awkward structures. Now by myself I'm hesitating whether this opposite option could be ever useful at all... Maybe not? Or?

I find the approach of Synfire quite makes sense as it is a composition tool and not a tool to emulate existing music in the most complicated manner  ;-)

 

Wed, 2015-09-02 - 19:11 Permalink

I sometimes start in Logic with a melody I want.  I export the melody as static into SP and also a chord track, (sometimes additional tracks). Bear in mind the more notes (instruments)  in the midi file, may make SP interpret the chords different than you expect.. Musicians will often hold a chord over two bars, and do a melody improvisation..  Keep in mind those melody notes (which may be passing tones or out of scale notes) will effect SP interptretation..  

 

Others here are more knowledgable in this area.. One way is to add additional chords to synfire, which will 'justify' the melody notes..  But then you end up with a fairly complex chord progression..  In music often a 'lot' is implied.. You play a 1 and 5th or 7th.. and your brain will supply the 3rd or 5th, depending on everything playing.. Indeed that is what makes music so original and sometimes beautiful.. it's the ability of our brain to hear the implied harmonies.

 

Often I use SP to generate additional material, which I import back to Logic, and hand correct certain notes.. (it's just faster and easier for me)...