alda-lang / alda

A music programming language for musicians. :notes:
https://alda.io
Eclipse Public License 2.0
5.6k stars 287 forks source link

Export to MIDI #145

Closed daveyarwood closed 7 years ago

daveyarwood commented 8 years ago

Gathering thoughts here, spinning off of issue #62.

MIDI export should be a separate mode of use for Alda, i.e. rather than playing a score (which will use Alda's event scheduling system to play the score in real time), you can export it to MIDI.

I like the idea of reusing the machinery we have in place as much as we can -- the score would still parse the same way into alda.lisp code, and we would still evaluate it in order to produce a map of score data. But from there, we'll implement a totally new system that will take the score map and use it to produce a MIDI file. If we need to, we can add additional context to the score map via the functions in alda.lisp (e.g. adding fields to the note event). But, I think it should be fairly doable to take the information we already have in the score map and use it to generate a MIDI file.

elydpg commented 8 years ago

I think this is a good idea. You mentioned in other issues that you wanted to be able to generate sheet music from alda scores. Exporting to MIDI would make for a seamless way to do this, via software like MuseScore (though there's a good chance you're going to implement sheet music generation natively too ^^).

jimcheetham commented 8 years ago

I think that with alda's strengths in non-traditional note formation, we should leave sheet music generation to an external program. That way all the difficulty of representing millisecond note durations and the output of a Clojure function lies on the external program :-) Exporting the MIDI seems to be the way to go here. -jim

On Sun, Mar 13, 2016 at 1:30 PM, elyisgreat notifications@github.com wrote:

I think this is a good idea. You mentioned in other issues that you wanted to be able to generate sheet music https://github.com/alda-lang/alda/issues/196 from alda scores. Exporting to MIDI would make for a seamless way to do this, via software like MuseScore (though there's a good chance you're going to implement sheet music generation natively too ^^).

— Reply to this email directly or view it on GitHub https://github.com/alda-lang/alda/issues/145#issuecomment-195838874.

Pomax commented 8 years ago

Missed this issue before I filed #270, so: I was looking for a decent step sequencer with keyboard input (computer keyboard, good luck finding that through google) in the old "tracker" style for creating some nice arpeggiator riffs, and coming up with nothing.

However, there's alda! I can just program an arpeggio pattern in seconds, and if that could be exported to a .mid file, I can import that into my DAW (Cakewalk Sonar pro) or even a fair number of VST instruments (like Z3TA+ 2), so while I see that midi import is on the TODO list, MIDI output at least to me seems more important in terms of interoperability with existing audio equipment and software.

daveyarwood commented 7 years ago

Moved to https://github.com/alda-lang/alda-core/issues/9.