"Intuitive settings" - sounds like 'musical' concepts: eighth, sixteenth, triplet-sixteenth etc, no?
These could change as often as the "beat" though from piece to piece... So settings that depend on note dur. values might still have to be tweaked for each piece... I think fomus should just get tuplets right (usually) without any input from the user (but still allow adjustments afterwards)--so there needs to be a function that looks at the duration of a measure, the time signature, dur. values, etc. and figures out what is appropriate for that measure... I'll have to dig around in some notation books to see if there's anything on suggested tuplet sizes
If the above structure allows for local settings of such parameters (and adding local offset-times inside!) it would mimick cmn's 'section, which is a very convenient level to work with.
(fomus :global-settings '(...) (fomus :off 0 :local-settings '(...) (load "A.fms")) (fomus :off 8 :local-settings '(...) :events (generate-random-events :dur 12)) :output-file "B-overlap.fms") (fomus :off 15 :local-settings '(...) (load "C.fms")))
How could the voice-leading algorithms handle abutted sections like this?
The "chunks" that I have half-implemented right now should let you do exactly this (the point is to allow different sections of a score to be computed with different settings), and with local offset times--right now the voice-leading algorithms (or note spelling, etc.) don't really work across chunk-boundaries, but that will be fixed eventually.
D> I'm about halfway through implementing a "preferred-tuplet-dur" D> setting at the moment, but am thinking now that a "preferred D> duration" shouldn't be tied to beat values but change D> dynamically with the context (meter, rhythm, etc.)... A few D> other settings (and internal variables) rely on beat values D> which I think should be changed eventually.
I find more often than not i use measures as a container which spans a certain place in time, not necessarily with any 'metric significance as such, especially when multiple rhythmic voices/layers are running alongside each other. All choices fomus makes towards musical logic are very useful as long as they can be overridden or made explicit at the local level (= note).
Which classes to start to look at to make a 'measure class?
There's no user measure class, just a time signature class--I could add a provision for specifying the start of a measure without having to specify a time signature (it would also have to prevent fomus from automatically making more measures)
(chunk :off 12 :notes (fm-spectrum ...) :dur 2 :part 1)
so the actual rhythms here would be dur / length(spectrum) if the :notes allowed lists of lists then sublists are "chords" etc. it would be great if fomus could save them as chunks too...
--rick
I can add something like this--I'll have to make it as flexible as possible, or maybe offer different types of chunks (maybe the user wants one note/chord and a list of rhythms, etc..), or rhythm chunks that can be merged with note chunks or "mark" chunks