Discussion:
CM-ETF
Niklas Kambeitz
2006-07-27 06:16:00 UTC
Permalink
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
Niklas Kambeitz
2006-07-31 22:40:39 UTC
Permalink
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
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
Post by Niklas Kambeitz
I am working on a program called CM-ETF that allows output from Common
Music to music notation files in Finale's ETF format.
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
http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist
Loading...