Hi David,
Thanks for getting FOMUS to work in Clisp. It does indeed run in Windows too. By that I mean that this works:
(events (new seq :subobjects (list (new midi :time 0))) "test.xml")
and the resulting file is readable by Finale.
Since I don't really know how to use FOMUS (yet), I wanted to run the test-suite, but it can't load and gives this: *** - component :CL-PPCRE not found, required by #<SYSTEM "fomus-test" #x1A2B7449>
Regarding nested tuplets, yes, ETF format can represent them. CM-ETF can output them too, but that feature is mostly useless right now, because the OpenMusic algorithm used to convert raw durations to an abstract notational representation (a "tree"), seems to never produce nested tuplets. For example, rather than a triplet within a triplet, it just uses the common denominator for the whole structure instead; i.e. as a nine-tuplet instead. I assume the fomus algorithm can produce nested tuplets?
Just to prove to myself that CM-ETF *can* do nested tuplets I tried this: (cm-etf::meta->etf '(((4 4)) (TREBLE ((Q NIL NIL ((3 Q 1 H) (3 H 1 W)) NIL ((CM::C4 NIL))) (Q NIL NIL NIL NIL ((CM::C4 NIL))) (Q NIL NIL NIL NIL ((CM::C4 NIL))) (H NIL NIL NIL NIL ((CM::C4 NIL))) (H NIL NIL NIL NIL ((CM::C4 NIL)))))))
The resulting file shows the nested tuplets in Finale and Sibelius.
I'll write a prettier function that lets the user output an ETF from a tree and chord-list; it won't be hard.
By all means, use the code in CM-ETF however you wish, and take whatever is useful for the FOMUS backend. All data is represented as lists so if you rip things apart, you won't have trouble with undefined objects. If you have any questions about it, ask away. I might be able to help by figuring out the ETF format for articulations and expressions.
For the long term, you may want to consider making FOMUS compatible with OpenMusic, especially since IRCAM plans to release a free version for SBCL on Linux. They don't have .ly or .xml support. Just a thought.
Nik
David Psenicka wrote:
Niklas,
I was just trying out cm-etf on Linux (nice!). I was wondering if you'd mind me working with your code and trying to make a "backend" with it for fomus... I tried making an ETF backend a while ago and became frustrated (I wanted all the dynamics, marks, etc. but gave up trying to figure out their format), but it seems like MusicXML (or actually Finale & Sibelius's importing functions) has too many annoyances and bugs to be as useful as I thought it would be... One or two people have asked if there could be an ETF backend. If you think this would be useful I wouldn't mind adding it to the backends.
One of my letdowns with MusicXML was that I couldn't get nested tuplets into Finale (or single ones into Sibelius for that matter)--when I tried it Finale would merge it all into one tuplet--is it possible to get nested tuplets w/ the information that's available on ETF?
Also, I just got fomus to run in CLISP (not sure if it's ok in Windows yet--I'll probably have another update soon)
-David
Niklas Kambeitz wrote:
I am working on a program called CM-ETF that allows output from Common Music to music notation files in Finale's ETF format.
For downloads and more information, visit the project's website: http://cm-etf.sourceforge.net/
I basically made it for myself, but it's now at the point where I thought that other people might get some use out of it too. There are still bugs and missing features, and I would appreciate any comments or bug reports.
In purpose and function it is similar to FOMUS, but more limited in scope; CM-ETF only outputs rhythms and pitches, not dynamics or other markings. It does try to intelligently render rhythm, pitch spelling and cautionary accidentals. I realize that rather than duplicate all this effort, CM-ETF should probably be turned into a backend for FOMUS. When I started working on this though, I needed something that would run in Clisp.
I'm open to any ideas as to how this project should develop, if at all
- is there a need for users of CM and Finale to bypass MusicXML and
Dolet?
If nothing else, CM-ETF provides some documentation on the structure and syntax of enigma files. Anyone interested should look at the source code files "etf-data.lisp" and "file-io.lisp".
Nik
Cmdist mailing list Cmdist@ccrma.stanford.edu http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist