From andersvi at extern.uio.no Mon Apr 2 07:46:53 2007 From: andersvi at extern.uio.no (andersvi at extern.uio.no) Date: Mon, 02 Apr 2007 09:46:53 +0200 Subject: [fomus-devel] n-tuplets Message-ID: 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. From ml13 at onlinehome.de Mon Apr 2 08:41:28 2007 From: ml13 at onlinehome.de (Kilian Sprotte) Date: Mon, 2 Apr 2007 10:41:28 +0200 Subject: [fomus-devel] n-tuplets In-Reply-To: References: Message-ID: <259BA9A2-71DB-4F17-A80F-2680F4ADA64F@onlinehome.de> 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 at 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 at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/fomus-devel From andersvi at extern.uio.no Mon Apr 2 20:23:25 2007 From: andersvi at extern.uio.no (andersvi at extern.uio.no) Date: Mon, 02 Apr 2007 22:23:25 +0200 Subject: [fomus-devel] n-tuplets In-Reply-To: <259BA9A2-71DB-4F17-A80F-2680F4ADA64F@onlinehome.de> (Kilian Sprotte's message of "Mon\, 2 Apr 2007 10\:41\:28 +0200") References: <259BA9A2-71DB-4F17-A80F-2680F4ADA64F@onlinehome.de> Message-ID: >>>>> " " == Kilian Sprotte 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)))))) -------------- next part -------------- A non-text attachment was scrubbed... Name: fomus.fms Type: application/octet-stream Size: 5504 bytes Desc: :data output URL: From dpsenick at uiuc.edu Mon Apr 2 21:02:32 2007 From: dpsenick at uiuc.edu (David Psenicka) Date: Mon, 02 Apr 2007 16:02:32 -0500 Subject: [fomus-devel] n-tuplets In-Reply-To: <259BA9A2-71DB-4F17-A80F-2680F4ADA64F@onlinehome.de> References: <259BA9A2-71DB-4F17-A80F-2680F4ADA64F@onlinehome.de> Message-ID: <46116F68.4040003@uiuc.edu> 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 at 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 at common-lisp.net >> http://common-lisp.net/cgi-bin/mailman/listinfo/fomus-devel > > _______________________________________________ > fomus-devel mailing list > fomus-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/fomus-devel > From dpsenick at uiuc.edu Mon Apr 2 21:20:56 2007 From: dpsenick at uiuc.edu (David Psenicka) Date: Mon, 02 Apr 2007 16:20:56 -0500 Subject: [fomus-devel] n-tuplets In-Reply-To: References: <259BA9A2-71DB-4F17-A80F-2680F4ADA64F@onlinehome.de> Message-ID: <461173B8.3070606@uiuc.edu> An HTML attachment was scrubbed... URL: From robcanning at eircom.net Tue Apr 3 14:30:15 2007 From: robcanning at eircom.net (rob canning) Date: Tue, 03 Apr 2007 14:30:15 +0000 Subject: [fomus-devel] :textnote relative to measure position in finale via xml Message-ID: <461264F7.9040409@eircom.net> hi again this may be the fault of music xml rather than fomus but FYI: :textnote marks when imported into finale via xml are relative to measure position rather than attached to the note (as an articulation would be) - so once you start doing things like inserting bars, the text markings get out of alignment with the note heads cheers rob From robcanning at eircom.net Tue Apr 3 15:58:52 2007 From: robcanning at eircom.net (rob canning) Date: Tue, 03 Apr 2007 15:58:52 +0000 Subject: [fomus-devel] :textnote relative to measure position in finale via xml In-Reply-To: <461264F7.9040409@eircom.net> References: <461264F7.9040409@eircom.net> Message-ID: <461279BC.40305@eircom.net> rob canning wrote: > hi > > again this may be the fault of music xml rather than fomus but FYI: > > :textnote marks when imported into finale via xml are relative to > measure position rather than attached to the note (as an articulation > would be) - so once you start doing things like inserting bars, the > text markings get out of alignment with the note heads > > cheers > > rob > is there any way i can attach numbers to notes so they will stay associated with the notes after xml import into finale? thanks rob From dpsenick at uiuc.edu Tue Apr 3 23:56:48 2007 From: dpsenick at uiuc.edu (David Psenicka) Date: Tue, 03 Apr 2007 18:56:48 -0500 Subject: [fomus-devel] :textnote relative to measure position in finale via xml In-Reply-To: <461279BC.40305@eircom.net> References: <461264F7.9040409@eircom.net> <461279BC.40305@eircom.net> Message-ID: <4612E9C0.4070103@uiuc.edu> There doesn't seem to be a way of doing that--text notes have to be put into "directions" in MusicXML, at least this is what I gather from looking at the DTD and exporting files with Dolet. I think the best solution for importing into Finale will be to just create a plugin--I haven't looked into or dealt with ECL yet, but I should be able to create a Finale plugin which can read a .fms file, do all of the fomus processing on it, then create Finale objects directly. Once I have enough time (mid-May probably) I'll try this. rob canning wrote: > rob canning wrote: >> hi >> >> again this may be the fault of music xml rather than fomus but FYI: >> >> :textnote marks when imported into finale via xml are relative to >> measure position rather than attached to the note (as an >> articulation would be) - so once you start doing things like >> inserting bars, the text markings get out of alignment with the note >> heads >> >> cheers >> >> rob >> > is there any way i can attach numbers to notes so they will stay > associated with the notes after xml import into finale? > > thanks > > rob > From dpsenick at uiuc.edu Wed Apr 4 01:07:33 2007 From: dpsenick at uiuc.edu (David Psenicka) Date: Tue, 03 Apr 2007 20:07:33 -0500 Subject: [fomus-devel] v0-2-24 Message-ID: <4612FA55.1080005@uiuc.edu> v0.2.24 Fixed tuplet note values when they span an irregular number of beats (6:5, 8:7, etc.) From ml13 at onlinehome.de Wed Apr 4 09:34:54 2007 From: ml13 at onlinehome.de (Kilian Sprotte) Date: Wed, 4 Apr 2007 11:34:54 +0200 Subject: [fomus-devel] :textnote relative to measure position in finale via xml In-Reply-To: <4612E9C0.4070103@uiuc.edu> References: <461264F7.9040409@eircom.net> <461279BC.40305@eircom.net> <4612E9C0.4070103@uiuc.edu> Message-ID: <427BCA32-A06C-4B88-87C5-E26746D67237@onlinehome.de> Am 04.04.2007 um 01:56 schrieb David Psenicka: > I think the best solution for importing into Finale will be to just > create a plugin--I haven't looked into or dealt with ECL yet, but I > should be able to create a Finale plugin which can read a .fms > file, do all of the fomus processing on it, then create Finale > objects directly. Once I have enough time (mid-May probably) I'll > try this. Hi David, that's an extremely cool idea!! Let me know when you get to this, I am very curious in general about interfacing LISP with other systems. I could give it a try to at least have fomus running with ECL. Cheers, Kilian -------------- next part -------------- An HTML attachment was scrubbed... URL: From andersvi at extern.uio.no Mon Apr 9 10:36:16 2007 From: andersvi at extern.uio.no (andersvi at extern.uio.no) Date: Mon, 09 Apr 2007 12:36:16 +0200 Subject: [fomus-devel] n-tuplets In-Reply-To: <46116F68.4040003@uiuc.edu> (David Psenicka's message of "Mon\, 02 Apr 2007 16\:02\:32 -0500") References: <259BA9A2-71DB-4F17-A80F-2680F4ADA64F@onlinehome.de> <46116F68.4040003@uiuc.edu> Message-ID: >>>>> "D" == David Psenicka 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 From taube at uiuc.edu Mon Apr 9 11:53:17 2007 From: taube at uiuc.edu (Rick Taube) Date: Mon, 9 Apr 2007 06:53:17 -0500 Subject: [fomus-devel] n-tuplets In-Reply-To: References: <259BA9A2-71DB-4F17-A80F-2680F4ADA64F@onlinehome.de> <46116F68.4040003@uiuc.edu> Message-ID: 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 at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/fomus-devel From dpsenick at uiuc.edu Mon Apr 9 20:40:53 2007 From: dpsenick at uiuc.edu (David Psenicka) Date: Mon, 09 Apr 2007 15:40:53 -0500 Subject: [fomus-devel] n-tuplets In-Reply-To: References: <259BA9A2-71DB-4F17-A80F-2680F4ADA64F@onlinehome.de> <46116F68.4040003@uiuc.edu> Message-ID: <461AA4D5.5000509@uiuc.edu> > "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 From andersvi at extern.uio.no Tue Apr 10 10:48:15 2007 From: andersvi at extern.uio.no (andersvi at extern.uio.no) Date: Tue, 10 Apr 2007 12:48:15 +0200 Subject: [fomus-devel] ratio tuplets in lilypond v. > 2.8 Message-ID: Seems lilypond changed its way of specifying fractional tuplet-numbers after v.2.8. Heres a diff to fomus' lilypond-backend to suite: cd /div/notam02/site/localdomain/cm-sys/fomus/ diff -c /div/notam02/site/localdomain/cm-sys/fomus/backend_ly.lisp\~ /div/notam02/site/localdomain/cm-sys/fomus/backend_ly.lisp *** /div/notam02/site/localdomain/cm-sys/fomus/backend_ly.lisp~ 2007-03-26 14:40:05.000000000 +0200 --- /div/notam02/site/localdomain/cm-sys/fomus/backend_ly.lisp 2007-04-10 12:44:48.000000000 +0200 *************** *** 289,295 **** (loop for s from 1 to ns do (format f " \\change Staff = ~A \\override Staff.TimeSignature #'style = #'()~%" (code-char (+ 64 s)))) (format f " \\override Staff.TimeSignature #'style = #'()~%"))) ! (when (eq *tuplet-style* :ratio) (format f " \\set tupletNumberFormatFunction = #fraction-tuplet-formatter~%")) (format f " \\autoBeamOff~%") (if *acc-throughout-meas* (format f " #(set-accidental-style 'default)~%") --- 289,297 ---- (loop for s from 1 to ns do (format f " \\change Staff = ~A \\override Staff.TimeSignature #'style = #'()~%" (code-char (+ 64 s)))) (format f " \\override Staff.TimeSignature #'style = #'()~%"))) ! (when (eq *tuplet-style* :ratio) (format f " \\override TupletNumber #'text = #tuplet-number::calc-fraction-text~%")) ! ! (format f " \\autoBeamOff~%") (if *acc-throughout-meas* (format f " #(set-accidental-style 'default)~%") Diff finished at Tue Apr 10 12:45:04 From dpsenick at uiuc.edu Wed Apr 11 21:41:53 2007 From: dpsenick at uiuc.edu (David Psenicka) Date: Wed, 11 Apr 2007 16:41:53 -0500 Subject: [fomus-devel] ratio tuplets in lilypond v. > 2.8 In-Reply-To: References: Message-ID: <461D5621.4000809@uiuc.edu> Thanks, the change is in the dev branch now andersvi at extern.uio.no wrote: > Seems lilypond changed its way of specifying fractional tuplet-numbers > after v.2.8. Heres a diff to fomus' lilypond-backend to suite: > From robcanning at eircom.net Sat Apr 28 19:33:58 2007 From: robcanning at eircom.net (rob canning) Date: Sat, 28 Apr 2007 19:33:58 +0000 Subject: [fomus-devel] :harpsichord Message-ID: <4633A1A6.8020508@eircom.net> hi i am writing a piece for a harpsichord with two manuals part 1 :name "harpsichord" :abbrev "hpschd." :instr :harpsichord; what is the best way to do this - atm i am sending :voice 1 and :voice 2 to send the two different parts to the two different manuals both manuals start in bass clef and both climb in to treble clef - the problem is the bottom stave stays in bass clef and the music jumps into the manual 1 part. i would like to be able to switch between single line cross-stave writing and two part writing. so to summarise... i want to lock voice two to stave two of :harpsichord and have it so it changes into treble clef where necessary. anyone know how to do this? thanks rob once again... many thanks for fomus i am finding it incredibly useful :) very soon i hope to become very prolific ;) From dpsenick at uiuc.edu Sat Apr 28 20:49:42 2007 From: dpsenick at uiuc.edu (David Psenicka) Date: Sat, 28 Apr 2007 15:49:42 -0500 Subject: [fomus-devel] :harpsichord In-Reply-To: <4633A1A6.8020508@eircom.net> References: <4633A1A6.8020508@eircom.net> Message-ID: <4633B366.8090900@uiuc.edu> I've had a "force-staff" mark on the TODO list for a while--I think this should solve your problem and should be quick to implement--update will come shortly -DP rob canning wrote: > hi > > i am writing a piece for a harpsichord with two manuals > > part 1 :name "harpsichord" :abbrev "hpschd." :instr :harpsichord; > > what is the best way to do this - atm i am sending :voice 1 and :voice > 2 to send the two different parts to the two different manuals > > both manuals start in bass clef and both climb in to treble clef - > > the problem is the bottom stave stays in bass clef and the music jumps > into the manual 1 part. > > i would like to be able to switch between single line cross-stave > writing and two part writing. > > so to summarise... i want to lock voice two to stave two of > :harpsichord and have it so it changes into treble clef where necessary. > > anyone know how to do this? > > thanks > > rob > > once again... > many thanks for fomus i am finding it incredibly useful :) > very soon i hope to become very prolific ;) > > _______________________________________________ > fomus-devel mailing list > fomus-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/fomus-devel >