Hello, im just starting to look at this very interesting tool, and trying some simple cases to get going.
First issue is how to control tuplets.
Fex, how can i make fomus "simplify" a 5/8 measure with 6 sixtuplets as one group of six notes with a "6:5" (or "6") subdivision mark, instead of a sequence of tied trioles?
(fomus :output '(:data (:lilypond :view t)) :global (list (make-timesig :off 0 :time '(5 8) :beat 1/8)) :parts (list (make-part :instr :flute :events (loop repeat 6 for off from 0 by 5/6 collect (make-note :off off :note 60 :dur 5/6)))))
Ive tried fiddling with various settings, :default-tuplet-divs and :default-tuplets, :auto-quantize and such without luck.
Try this: :)
(fomus :output '(:data (:lilypond :view t)) :max-tuplet-dur 5 :global (list (make-timesig :off 0 :time '(5 8) :beat 1/8)) :parts (list (make-part :instr :flute :events (loop repeat 6 for off from 0 by 5/6 collect (make-note :off off :note 60 :dur 5/6)))))
Am 02.04.2007 um 09:46 schrieb andersvi@extern.uio.no:
Hello, im just starting to look at this very interesting tool, and trying some simple cases to get going.
First issue is how to control tuplets.
Fex, how can i make fomus "simplify" a 5/8 measure with 6 sixtuplets as one group of six notes with a "6:5" (or "6") subdivision mark, instead of a sequence of tied trioles?
(fomus :output '(:data (:lilypond :view t)) :global (list (make-timesig :off 0 :time '(5 8) :beat 1/8)) :parts (list (make-part :instr :flute :events (loop repeat 6 for off from 0 by 5/6 collect (make-note :off off :note 60 :dur 5/6)))))
Ive tried fiddling with various settings, :default-tuplet-divs and :default-tuplets, :auto-quantize and such without luck. _______________________________________________ fomus-devel mailing list fomus-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/fomus-devel
" " == Kilian Sprotte ml13@onlinehome.de writes:
> Try this: :)
That worked. Great!
Fomus seems to present a very important working-level between CM and notation-clients, especially concerning quantization and voice-leading algorithms.
I have a feeling my hands will get very wet with fomus-code in some time, but for now ill send the questions to this group to look for obvious answers etc.
Related to the recent posts about 3/8 meters: various books on notation quarrel about how to notate tuplets, but some kinds of n-tuplets in fomus turn out strange. Heres some code where durations gradually get longer approaching one whole beat, but the note-values vary wildly. Is this a bug or a feature? If a feature, how to control which notated rhythmic values are chosen for particular durations (inside fomus)?
(defun make-accel-measure (time beats) ;; fills 'beats' duration with 'beats+1' pulses (loop with delta = (/ beats (1+ beats)) for off from time below (+ time beats) by delta collect (make-note :off off :note 60 :dur delta)))
(let* ((measurebeats (loop for b from 1 to 9 collect b)) (offsets (loop with off = 0 for b in measurebeats collect off do (incf off b))))
(fomus :verbose 2 :output '(:data (:cmn :process t) ) :auto-timesig-comp nil :max-tuplet-dur 10 :default-beat 1/8 :global (loop for beats in measurebeats for off in offsets collect (make-timesig :off off :time (list beats 8))) :parts (list (make-part :instr :flute :events (loop for beats in measurebeats for off in offsets nconc (make-accel-measure off beats))))))
Many of these settings use a "beat" as a measurement, so changing the beat value to 1/8 can drastically alter the output--Also, the :max-tuplet-dur and :min-tuplet-dur settings do seem to get in the way often (these settings and related ones have come quite up a few times)--on my TODO list now is to find ways to replace some of the ones that impose hard limits with more flexible + intuitive settings (any suggestions are welcome!).
I'm about halfway through implementing a "preferred-tuplet-dur" setting at the moment, but am thinking now that a "preferred duration" shouldn't be tied to beat values but change dynamically with the context (meter, rhythm, etc.)... A few other settings (and internal variables) rely on beat values which I think should be changed eventually.
-DP
Kilian Sprotte wrote:
Try this: :)
(fomus :output '(:data (:lilypond :view t)) :max-tuplet-dur 5 :global (list (make-timesig :off 0 :time '(5 8) :beat 1/8)) :parts (list (make-part :instr :flute :events (loop repeat 6 for off from 0 by 5/6 collect (make-note :off off :note 60 :dur 5/6)))))
Am 02.04.2007 um 09:46 schrieb andersvi@extern.uio.no:
Hello, im just starting to look at this very interesting tool, and trying some simple cases to get going.
First issue is how to control tuplets.
Fex, how can i make fomus "simplify" a 5/8 measure with 6 sixtuplets as one group of six notes with a "6:5" (or "6") subdivision mark, instead of a sequence of tied trioles?
(fomus :output '(:data (:lilypond :view t)) :global (list (make-timesig :off 0 :time '(5 8) :beat 1/8)) :parts (list (make-part :instr :flute :events (loop repeat 6 for off from 0 by 5/6 collect (make-note :off off :note 60 :dur 5/6)))))
Ive tried fiddling with various settings, :default-tuplet-divs and :default-tuplets, :auto-quantize and such without luck. _______________________________________________ fomus-devel mailing list fomus-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/fomus-devel
fomus-devel mailing list fomus-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/fomus-devel
"D" == David Psenicka dpsenick@uiuc.edu writes:
D> Many of these settings use a "beat" as a measurement, so D> changing the beat value to 1/8 can drastically alter the D> output--Also, the :max-tuplet-dur and :min-tuplet-dur settings D> do seem to get in the way often (these settings and related D> ones have come quite up a few times)--on my TODO list now is to D> find ways to replace some of the ones that impose hard limits D> with more flexible + intuitive settings (any suggestions are D> welcome!).
Suggestions might come when i get more into this tool, but isn't (fomus ... (list (fomus ...) (fomus ...))) a start towards this?
"Intuitive settings" - sounds like 'musical' concepts: eighth, sixteenth, triplet-sixteenth etc, no?
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?
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?
-anders
ive wanted something like this too! ie a "chunk" or "gesture" I can pass to fomus with much of the stuff already figured out. chunks more closely reflects how i actually compute stuff, not note-to-note but, well... in chunks!
(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 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?
-anders _______________________________________________ fomus-devel mailing list fomus-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/fomus-devel
"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