I've created a perl script that load a MIDI drum tracks and convert it
as a hydrogen file. This is still experimental but it somehow does the
job (i.e: I can load it, play it and export it as WAV, which is
what I needed).

This was tested on a linux machine, and relies in two external
cpan.org packages (see script comments).

Doing this program raised a few issues related to midi import:

- instrument mapping between GMidi and H2 is not necessarily trivial

- the pattern/note/score representation of H2 does not match well
   the nature of MIDI events (I sliced the whole thing in
   fixed length patterns). "intelligent" slicing in the hope of
   reusing similar/identical patterns is likely complex.
   (anyone has an idea?)

- I never messed with MIDI before; I might have missed a few
   important things :)

- we would need to expose a lot of parameters to make this import flexible
   enough (instrument map, handling of some MIDI controls, etc)

Anyway, that's more a proof of concept than a definitive solution. It
could be used as a base to implement the MIDI import feature within
the main program.

Let me know if you've any suggestion or problem using this program.



PS: I still have a problem changing generated songs (which was not
my main goal). When I save the changes, I constantly get this error:

 > hydrogen: src/lib/LocalFileMng.cpp:1213: void SongWriter::writeSong(Song*, 
 > Assertion `instr->m_pADSR' failed.
 > Aborted (core dumped)

Attachment: midi2hydrogen.pl
Description: Perl program

This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
Hydrogen-users mailing list

Reply via email to