[tpm] Abstracts for the March 26 TPM Talks

Antonio Sun antoniosun at lavabit.com
Sun Mar 8 10:38:02 PDT 2009

On Sat, Mar 7, 2009 at 11:26 PM, Abram Hindle
<abram.hindle at softwareprocess.us> wrote:
> . . .  here are the abstracts for the 2
> parts of the talk I plan to give:
> Talk 1:
> **** Harbinger: Making your desktop sing with the help of PERL. . .
>  I present to you Harbinger, a PERL based musical event
> middle man. Harbinger is built to massage events streamed from other
> applications into musical events for software such CSound, Pure-Data
> or hardware attached to your midi ports!
> Talk 2:
> **** Lispy Perl Abstract
> . . .  In this
> presentation I will demonstrate how to abuse PERL's SourceFilter such
> that you can make it parse a whole new language, generate and compile
> that code and language down to Perl Code and execute it. . . .

Excellent, excellent!

It'll be extremely helpful to me, because I'm planning on writing an
abcplayer, which simplifies the approach to play ABC music notation
[1] files. The first part might help me find an API to play the tunes
on the sound card, and the second part will open a new way for me to
parse the ABC music notations.

[1]ABC music notation language

A bit more about my "abcplayer", currently all the tools that I found
use a two-step approach, 1) "compile" the ABC notation to some other
formats, then 2) play it using other tools, mainly via midi. But the
midi support is by far the least supported HW in Linux. I want to
write a tools to play ABC music notations directly through sound card,
no intermediate files or alien tools necessary.

Further, a bit more about ABC notation, I'm always a big fan of documenting
complicated things using plain text. With ABC to notate music in plain text,
even as complicated as Beethoven's Symphony No. 7 can be done,
(http://www.ucolick.org/~sla/abcmusic/sym7mov2.html), music notations can be
easily and portably stored or transported electronically. IMHO, midi is
machine language, whereas ABC is hight level language, i.e., midi is the
notation for music instruments; while ABC is the notation for human, and
computer too. For machine to analyze tunes (via artificial intelligence etc),
plain text based notation is the first step.

A common editor such as vi or emacs is all that is needed to write an abc
file. After the file has been written, it can be converted to a standard
MIDI file using abc2mid or to a print-ready format using abc2mtex
(MusicTeX), abc2ps (PostScript) or abc2pdf (Adobe PDF).

With ABC notation, one can not only produce professional-looking scores, or
MIDI sound files, but also can translate MIDI files into plain text
notations as well, with the help of Midi2abc
(YAPS, http://abc.sourceforge.net/abcMIDI/).

The ABC music notation language is a wonderful tool to typeset sheet
music. ABC is one of the best designed, easy to use, well-thought out,
and nicely implemented notation formats I've ever seen: IMHO, it
surpasses other good notation languages like GNU Lilypond or MusiXTeX.
(Philip's Music Writer is a serious contender though.) You can write
music in a very simple ASCII format and convert it to MIDI, or typeset
it to make professional-looking scores.

More information about the toronto-pm mailing list