Skip to main content

Random Elements in Synfire?

Posted

Hi,

I've got a long way to go to learn the program better, so I apologize if I ask about the potentially obvious, but what are some of the key random elements in Synfire?

IOW, where in Synfire can I press a Regen/Dice/Lightning button and have the program give me a new, serendipitous result?  (e.g. by doing some kind of (semi-)random substitution of one or more elements which are currently part of the Arrangement).

 

 


Tue, 2023-12-19 - 18:54 Permalink

Variation parameter.

Morphing parameter.

Factories have dice all over the place.

Harmony changes everything (not random but equally surprising results)

Interpretation settings (ditto).

Snippets grid makes random arrangements.

Moving containers.

Transforming segments ...

Tue, 2023-12-19 - 20:42 Permalink

Great, lots to learn about there.   Thanks!

Wrt. Transform, where these are the menu items:

 

Is it possible to press a button or keystroke somewhere and have Synfire choose randomly from among those to offer up a "surprise" alteration of a selected phrase(s)?

 

 

Tue, 2023-12-19 - 20:49 Permalink

The Variation parameter maps numbers to transformations. Higher numbers have more impact. If you like a result you can save Variation to the Figure.

Tue, 2023-12-19 - 20:57 Permalink

Also, am I correct to observe there is no facility for random substitution of Figures?

One approach I would like to take is to have libraries which contain many, many more phrases/Figures than I am actually familiar with in my memory personally.    Then, I would like to have Dice which reach into the library(ies) and offer me a new instantiation of selected phrases/Figures, randomly fetched for me to audition and decide about.  Then I would lock down the ones I like and want to keep, and then repeat the process until I am liking all the accumulated results.

IOW, I would like the computer to most rapidly help me find needles from the haystack! 

For the above I'm basically thinking about phrases being substituted on a single track as a baseline capability.  However, once tracks are tied to "source libraries", a further step up would be to ask Synfire to "remake all tracks" or "remake the container".

As food for thought, I would ask at every point of any workflow:  "Could the program (given it's overall design and architecture) reasonably offer me random results to audition here?".  

If the answer is "Yes, it could", then AFAIAC that's a valid wish list item and a significant enhancement of capability.

 

Tue, 2023-12-19 - 20:59 Permalink

The Variation parameter maps numbers to transformations. Higher numbers have more impact. If you like a result you can save Variation to the Figure.

I will look into that, thanks!

P.S.  Is there a video on that subject?

Wed, 2023-12-20 - 02:28 Permalink

One tip, keep all phrases really short. You can then just replace them from a library, ok it's not as random as a dice, but you can preview a library phrase before you swap it in rather than spending days wearing out your mouse button clicking on a 'dice' icon. It is surprising, how, when combined with the harmony and other parameters, these simple phrases repeat and morph into long interesting passages.

Wed, 2023-12-20 - 09:47 Permalink

Picking random phrases has limits. Completely random combinations of arbitrary phrases don't work most of the time. You get exactly what you ask for: It sounds ... random.

If you had a curated "style kit" of sorts that includes pre-selected phrases, that's another thing. But that also limits your output to what the designer of the kit had in mind. There's an audience for well-worn popular standards, but I sense that you want something different.

If you want a unique groove that really works, customize a piano factory, generate phrases, keep the best and split them by symbol type. Then assign different instruments to the resulting lines (e.g. bass, guitar, piano, synths, pads, ...). If you need variations, just generate more of them. They will be thematically coherent and work together well.

In our lab we have factories that generate arrangements with a container hierarchy populated with phrases and variations and everything. It's fun but impossible to control the many parameters.

Wed, 2023-12-20 - 11:30 Permalink

The "Blender" button on the click board also introduces great variations by shuffling random spans inside a parameter. Works with all parameters. Harmony makes nice surprises.

Wed, 2023-12-20 - 15:40 Permalink

In our lab we have factories that generate arrangements with a container hierarchy populated with phrases and variations and everything. It's fun but impossible to control the many parameters.

This is very interesting to me.    I'd really love to have that capability available to me here in Synfire.

A few comments  - 

Fun is a valid objective, sufficient unto itself.    Fun is also a major wellspring of creativity.   I am all for giving the user that which is fun.  What the user does with it is impossible to predict, and can sometimes be amazing!   (But even if not finally amazing, if it was fun along the way, that is a value-fulfillment of it's own.)

A workflow model I find very compelling (and fun!) is:   

  1.  Generate widely  (i.e.   everything, structures, sub-structures, variations, etc. ala the quote above)
  2.   Lock what you like to have it be kept.
  3.   Regenerate all that remains unlocked.
  4.   Repeat 2 and 3 until you decide it's "time to go manual" for fine tuning, recording human performance, production polishing, or whatever!

I'd love to be able to tell Synfire:   Give me 4 minutes-worth of what you've got, and then I'll refine from there.

Of course, what Synfire's "got" is infinite, assuming some libraries are in-place to begin from.

Please let us have advanced capabilities such as described (so long as they actually work!) without pre-judging whether we can put them to good use, aesthetically or otherwise.  That's exactly the part (meaning the evaluation/curation of results) that I want to do myself!

 

Wed, 2023-12-20 - 16:06 Permalink

No pre-judgement here. Random music is simply an impossibility. There must be constraints and parameters that limit the combinatorial space. And the phrases must be related to each other in a coherent way. This coherence is what separates music from noise. The number of parameters required to meaningfully distinguish all possible music is too high to be practical.

The mere capability to generate something, no matter how big and complex, is not enough.

Thu, 2023-12-21 - 13:22 Permalink


There must be constraints and parameters that limit the combinatorial space. And the phrases must be related to each other in a coherent way.

Yes, agreed (and it would be true, I think, even if not agreed <g>).

As I understand the workings of Synfire so far, it seem to me the primary source of constraints and parameters to limit the combinatorial space would be the library(ies) chosen as input for the operation.

For example, if I have a well-prepared library built from just a single Bach composition, why wouldn't it be a valid goal to have Synfire offer me one-button full compositions based on that library?

Consider the list of variations shown in the picture above.  Nice list!  Of course, all those things could be done by a human in a DAW - but it would have to be an educated human with alot of time available.  Instead, we look to the computer (as programmed by developers) to automate those operations.  Obviously that is considered acceptable by Cognitone or Synfire as we have it today would not exist.

All I'm suggesting/asking is that the remaining pipeline from where we are today to a (potentially) final composition be filled in with computer assistance in the same way.

When I say "Generate widely" in #1 above, that doesn't mean "infinitely random".  It means "generate a complete job" within the constraints given  (e.g. the source library, plus any other constraints we are given a UI to provide).
 

Thu, 2023-12-21 - 13:33 Permalink

Two very specific possibilities that come to mind are:

a.  A Structure Creation Factory - it just generates potentially interesting, empty, structures.   Input could be as simple as Tempo and Target Time Range.  I roll the dice, observe the structure returned, and then decide if I want to go down the road to work more with it or not.  

b.  A Structure Population Factory  -  pulls phrases from the current library and fills the structure in, giving me some specific music to judge.

Offhand, it seem like these are both separable and achievable goals.


And then it is on to the audition/lock/regen cycle mentioned above.  This cycle is actually a well-proven approach to computer-assisted composition, IMO.  Is this approach objectionable on any grounds for Synfire?
 

Thu, 2023-12-21 - 15:57 Permalink

If you have a library that's stylistically coherent, then half the job is already done. It much simplifies the (manual) selection of phrases to try. You won't even consider phrases that are obviously a mismatch from the looks already. Only the user can pick phrases according to their goal.

Building and filling a structure randomly is fun for about 30 minutes (done that). Then you realize that random pixels don't make a picture. Every new pixel (to stay in the metaphor) narrows down what is acceptable in its neighborhood. We don't yet have a model that could do this.

We have these song templates that work well for some popular genres, but most other music is not based on loops. There's build-up and collapse, prelude, coda, suspense, climax, references, development, ... you can't emulate that with a generic algorithm. Algorithm is style.

That said, I see how random selection may work for loop-based music. Just to kick you out of writer's block.

For other music, I see Factories at the horizon that generate long (like 24m) developing phrases with increasing or declining density and variations that make sense, maybe for multiple instruments. These could serve as building blocks for a narrative and save a lot of time fiddling with smaller phrases.