Skip to main content

Phrase Links

Posted

I've not yet found mention of this in the forums or in the Synfire user manual.  I don't yet know of a way to do this in Synfire, currently.  I may well be unaware of some capabilities or features.  Given that, I'll present this as a new concept for a feature suggestion.  I believe this could be a powerful enhancement for the next generation of Synfire, further distinguishing it above all other advanced composition tools.

I believe the purpose of percussion is to emphasize present, past and future in a piece.  That's why so many approaches to unpitched percussion are unappealing to me.  But, Synfire could address this issue and more with support for what I'll term, "Phrase Links."

There are two parts to this feature.  The first is to support selection marking within phrases, stored and viewed within the phrases.  The second part is to specify parameterized linking between the markings within sorce and target phrases, also stored within source phrases.

A source phrase may include any number of links to target phrases.  Synfire Express might limit to creation of one or two links from a source to a target.  Synfire Pro might allow unlimited links and might also extend linkage to include external timecode sensitivity.  Infinite looping would be avoided by construction.

Thus, a source phrase may access the information of a target phrase such that when that target phrase is changed or processed, the source phrase responds.  A link between source and target phrase would include parameters to determine how effects would transfer, including impact on randomizaton and conversion.

This would enable, for example, percussion to be sensitive to phrases before, during and after.  So, for example, a percussion phrase at the end of a container could link to a melodic phrase at the start of a following container and use that to construct a pseudo-randomized fill.  Similarly, a percussion phrase at the end of a piece might reference a melodic phrase earlier in the piece to construct an ending.

This might also be a means for enabling percussion to vary velocity and complexity as phrases are interpreted.

Similarly, melodic phrases might have influence from other phrases that include interesting rhythms, whether pitched or unpitched.

In short, this would be like drag and drop of one phrase to another, but done in a predetermined, more controlled way and sensitive to changes made in any linked phrases.  This might, essentially, mimic instruments listening to each other.

I think this could go a long way toward solving the issue of creating percussion in a way that avoids generative pitfalls while enhancing the overall Synfire composing experience.

A related enhancement might include having a new window that displays and uses the same link parameters to control default behavior during drag and drop of phrases.  This might alleviate some of the mystery of what happens when doing this.  The window might be dynamically updated during phrase drag and drop with greyed out parameters, indicating which will be ignored and which will be processed with perhaps some info on how.

Steve


Fri, 2018-11-09 - 15:53 Permalink

Do you mean phrase-morphing between phrase A (source) and phrase B (target) like in Rapid Composer or a Question/Answer mechanism like in Orb Composer?

Fri, 2018-11-09 - 17:34 Permalink

Hi, Roberto!

I seriously considered RapidComposer before going with SynFire.  So, I have an appreciation for that software, though no experience with it.

Given that, I think the idea is similar in that it involves source and target phrases.  It may differ in that phrase morphing involves smoothly transitioning from one phrase to another.  This idea would be similar in that a source phrase may affect a target phrase.  But, the goal would differ from transitioning from one phrase to another new, blended phrase.  Instead, the source phrase would serve as rule-based input to one or more target phrases, perhaps guiding the rhythm of a target phrase or introducing new changes to a target phrase in a rule-based fashion. 

The source might, for example, be changed to have a triplet on the first beat.  The target or targets might then also respond with a triplet on the first beat or, per rule, shift that triplet to the third beat.  So, while the source phrase would affect the target phrase, it would be more specific to rules as to how the source affects the target rather than attempting to merge or blend the details of both.  I agree, however, that these differences may be subtle since RapidComposer provides a number of ways to control the morphing.

I like the Question/Answer approach, in general composition terms, as a useful tool among many tools.  Similarly, I have no experience with Orb Composer.  That said ...

I like the idea of the Answer based on a question that is supported in Orb Composer.  I suspect that could be similar to the source/target relationship proposed.  My concern with Orb Composer (and one reason I went with SynFire) is because the software seems to me to abstract too highly, removing some of the control I would want at a much lower level of abstraction, something that SynFire does well. 

The proposal could probably emulate Answer based on a Question, but go much further.  For example, a source phrase (which might be a Question or an Answer with other phrases) may occur in the middle of a piece.  But, changes to the source may affect, for example, rhythms in a target phrase toward the beginning of the piece, perhaps in an introduction, that hint of what is to come.  Or, source changes may affect rhythms in a target phrase at the end of the piece in an outtro.

In short, I think the concept could probably emulate both phrase morphing and Q/A approaches.  But, it would allow greater rule-based control and could extend beyond what those approaches can currently do.

Steve

Sat, 2018-11-10 - 22:09 Permalink

Thanks for sharing your thoughts. I'm a bit late to the party, mainly because at first I was not able to grasp the idea. Still not sure I understand it fully. Maybe a picture would help. The setup however, sounds pretty complex to me, much like programming.

As for morphing, Synfire can already do that: Crossfade from one container to the next, covering many parameters individually, including Figure, of course.

I outlined our roadmap concerning generative features in a blog post earlier this year (see start page). I think much of what you seem to suggest will be possible with the user-defined musical languages in one or the other way. It is still too early for a demo or sneak preview, though.

Mon, 2018-11-12 - 16:38 Permalink

I've attached two pictures with a very simple example of linked phrases.  Assume that the phrases are independent of each other and in independent containers.  In this example, one object is marked in the source phrase.  It is linked to two other objects marked in two other target phrases.  When the source object is shortened, this change is automatically reflected in the respective target phrase objects. 

In this example, it's the same object in the targets as the source, but any objects could be marked in the phrase targets.

This does not depict the user interface.  This also does not depict the rules that would control the links.  This also does not depict instruments.

The intro and outro phrases could be percussion, such as cymbal hits for the selected target objects.  The source might be a melody line. So, in this example, the melody note might be shortened, resulting in the linked intro and outro cymbal hits being shortened.

The rule could become more complex.  In addition to length, it might respond to any change in the marked source object and pass these changes to the marked target objects, perhaps even creating more target objects if, for example, the source object is converted into triplets.

These changes would all happen automatically as the source is edited in the phrase editor, rippling to the targets.

This approach could affect any parameter between source and target objects.  In this way, for example, percussion in an intro or outro could be sensitive to the velocities of objects in a piano melody. 

A rule might also simply introduce a time shift with respect to a source phrase.  For example, a melody phrase that is running concurently with a percussive phrase in the same container, allowing for the precussion to anticipate (before), reflect (concurrent) or repeat (after) an effect from the melody.

 

Sun, 2018-11-18 - 00:14 Permalink

Ah thanks. You can do some of this with container aliases. An alias will automatically represent any parameters set in the original container, PLUS they will be affected by the surrounding of where the alias is placed ;-) Infinite possibilities.

Mon, 2018-11-19 - 13:55 Permalink

This is great!  I am now a fan of container aliases!

me too after this thread :-) 

Mon, 2018-11-19 - 21:00 Permalink

You are getting closer by the day ;-)

Admittedly, I'm a bit lazy and often don't use containers to their full extent. But once you take a little time to explore them, magic will happen. Especially, as containers can carry any kind of parameters, per instrument or for all instruments as a whole (the "Defaults" phrase, aka container name, he he).