lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bmc2ly: Braille music to LilyPond conversion


From: Mario Lang
Subject: Re: bmc2ly: Braille music to LilyPond conversion
Date: Mon, 12 Nov 2012 14:05:47 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux)

David Kastrup <address@hidden> writes:

> Mario Lang <address@hidden> writes:
>
>> Since about 4 years now I am working on Open Source software to
>> process (first write, now read) braille music code.
>>
>> My current subproject in that area is parsing braille music code and
>> converting it to another (visual) representation.  While I have worked
>> lots with MusicXML in the past, it made more sense to start with
>> LilyPond when it comes to exporting my parse results.
>
> It's nicer to generate than XML I should think, like PostScript is nicer
> to generate than PDF (and indeed, LilyPond goes via the PostScript
> path).

Yes, it turned out to be nicer to generated, indeed.  However, my
primary motivation for using LilyPond was actually that there is free
software to convert .ly source to PDF, namely LilyPond :-).  It is not
that easy to actually convert MusicXML to something meaningful directly
in the free software world.  Granted, some tools do import (like
Rosegarden) but that is not as convenient as sending ly code through a
pipe and getting PDF and MIDI output ready-made.

> But of course it is a bit more of a moving target.

I *think* I can handle that.

>> As a small teaser, I include two examples in this mail directly.
>> First is the braille music code, followed by the LilyPond source
>> created from bmc2ly.
>
> If it is supposed to tease, this begs the question whether there is a
> considerable corpus of BMC available online.

There is braille music code online, although probably not as easy to
find for someone not involed in the field.  However, braille music code
can also be written by hand by people who know it, so they could use
braille music to write a score in their (natural) representation and use
LilyPond to listen to performance output (MIDI) or send a visual copy to
a sighted friend.  Thats really what BMC (my software) is all about: it
creates a bridge between the tactile and visual music notation worlds.

> Would it be useful if LilyPond could export BMC?

Of course!  Actually, thats something that blind people are wishing for
for a long time so that they could make use of the huge body of LilyPond
music on Mutopiaproject for instance.

> Possibly even just for verifying that your conversion has retained
> meaning?

Yes, that would be useful too, of course.

> Would that be realistic?

I am not sure, I think it would be quite hard to implement.  I have
looked at how to start such an endeavour at least two times in the past
and have never really understood the internals of LilyPond enough to end
up anywhere useful.  I guess what we need is a function that receives
music expressions and translates them into braille music, outputting to
some file.  However, the transformations required to produce proper
braille music are quite involved.  I'd be happy to work together with
anyone with enough Lily internals knowledge who would be interested to
attack this problem.

My initial thought regarding this was to somehow implement a new
output-format, since I dont really like having to modify the .ly code to
specify the output format I want to get.  However, looking at examples
like articulate.ly, its probably more realistic to do it that way.

Still, some of the algorithms necessary to produce proper braille music
could be (depending on the time signature and number of notes per
measure) quite computational expensive.  For instance, BMC has one test
case (bwv988 variation 3, \time 12/8) which needs about 4 seconds of CPU time
on a modern CPU, and that is C++ code compiled to binary code.
Granted, this is an extreme case, and most other material I have found
yet doesn't explode so must complexity-wise, but I still wonder if pure
Scheme is a good approach for that.

-- 
CYa,
  ⡍⠁⠗⠊⠕



reply via email to

[Prev in Thread] Current Thread [Next in Thread]