[fomus-devel] Re: [CM] CM-ETF

Niklas Kambeitz nkambe at po-box.mcgill.ca
Mon Jul 31 22:40:39 UTC 2006


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 at ccrma.stanford.edu
>> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist
>>



More information about the Fomus-devel mailing list