denemo-devel
[Top][All Lists]
Advanced

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

[Denemo-devel] MIDI convert of recorded midi


From: Richard Shann
Subject: [Denemo-devel] MIDI convert of recorded midi
Date: Wed, 17 Mar 2010 17:22:57 +0000

Jeremiah,

as you will see I have changed importmidi.c to avoid passing a structure
back which was never allocated any heap. I have also had a look at using
the process_track() routine to insert recorded MIDI into a staff. The
version I checked in earlier did insert the MIDI but the timing was
about half that of the recording.

I have sketched out what I think would need doing to get this to work -
in the playback_midi_convert() routine there is code #if 0'd out for
this. The basic idea would be to merge the recorded track with the track
generated for the current staff by exportmidi. This would hopefully
include all the staff, keysig etc information, as well as timesig
changes and anything else that applied to the staff. It *could* even
have notes in it, but I don't think your process_track would recognize
notes that are supposed to be simultaneous, so it shouldn't.

One suggestion - do not try to detect rests: instead assume every note
on continues until another one. The output is far more likely to be near
what the user would want. They would need some editing commands to
shorten notes (by apply staccato signs, or shortening the duration and
making up the duration with a rest), but this is easier than coping with
rests already inserted.

On the whole, I think we should be looking to something else to provide
this midi conversion functionality - it is comparable with OCR in
difficulty, with the added twist that there will be a range of notations
possible for a given input, requiring the user to provide (build-up) a
library of their own cliches for use by the recognition program. (Did
you mention MMA in this context? That seems not to be a MIDI to notation
convertor).

I don't know where you want to take this...

Richard






reply via email to

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