Hi all,
Version 0.4.2.3 is as of now available on the google code page and
PyPi (easyinstall).
== extra/MusicXML ==
This is the new, as of yet unfinished MusicXML module by Javier
Palanca. He has been sending me patches in private, but has received
svn access today and has been welcomed as the second developer to make
continued work on this module easier.
The API of this module is comparable to the other exporter modules
(LilyPond, tablature), in that it uses the from_* to convert
mingus.containers into MusicXML strings:
>>> from mingus.containers import *
>>> from mingus.extra import MusicXML as mxl
>>> mxl.from_Note(Note("C"))
'<score-partwise version="2.0">\n\t<movement-title>\n\t\tUntitled\n\t</
movement-title>\n\t<identification>\n\t\t<encoding>\n\t\t\t<software>\n
\t\t\t\tmingus\n\t\t\t</software>\n\t\t\t<encoding-date>\n\t\t\t
\t2009-07-07\n\t\t\t</encoding-date>\n\t\t</encoding>\n\t</
identification>\n\t<part-list/>\n</score-partwise>\n'
A write_Composition is also available, which saves the Composition as
(compressed) XML.
== midi/SequencerObserver ==
This is a module I promised in the release notes of 0.4.1.0 (http://
groups.google.com/group/mingus-python/browse_thread/thread/
92bfdcb490292858). It implements all the messages a Sequencer can send
and you just have to override the methods you are interested in to
keep yourself notified. Here is a little sample script, that doesn't
do anything too interesting, but shows how it works:
from mingus.containers import *
from mingus.midi.SequencerObserver import SequencerObserver
from mingus.midi.Sequencer import Sequencer
class MySequencer(SequencerObserver):
# high level: notifies you of every Note
def play_Note(self, note, channel, velocity):
print note
# high level: notifies you of every NoteContainer
def play_NoteContainer(self, nc, channel):
print nc
seq = Sequencer()
seq.attach(MySequencer())
seq.play_NoteContainer(NoteContainer(["A", "C", "E"]))
Similarly, more interesting high level functions like play_Bar,
play_Track, etc are also available. See for all the supported methods:
http://code.google.com/p/mingus/source/browse/trunk/mingus/midi/SequencerObserver.py
== AUTHORS, THANKS ==
These new files were added to give credit to the people who have
reported problems and contributed improvements and code. I've went
through all past issues and mails and have done my best to find full
names and addresses, but let me know if your name has been left out,
if you'd rather not be listed or if you'd prefer a different address
be used.
== Copyright related updates ==
Finally, all copyright information was updated and a full copy of the
GPL v3 license has also been added. This isn't very exciting news in
itself, but was done to meet requirements of the official Ubuntu
packaging process, because it looks like the package maintained by
Stefan Huchler might become available in the official index of the
next Ubuntu Karmic release, which is good news indeed.
That was it for now. Development is picking up again so the next
release shouldn't take too long and will include more MusicXML related
code and updates to the documentation, among other unforeseen stuff
that always seems to creep in :)
Best regards,
Bart Spaans.