[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Denemo-devel] MIDI convert of recorded midi
From: |
Jeremiah Benham |
Subject: |
Re: [Denemo-devel] MIDI convert of recorded midi |
Date: |
Thu, 18 Mar 2010 00:00:29 -0500 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Wed, Mar 17, 2010 at 05:22:57PM +0000, Richard Shann wrote:
> 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.
Is this because of the ppqn value? I will look to see what is causing it?
>
> 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.
I think there should be a higher level note insertion function. This function
will detect if the measure has enough room for this note value. If not it
subtracts the remaining bartime from the notes value. Then the remainder would
be tied onto the next measure. This higher level insertion would check for not
collision. If colliding notes have the same starttime and duration it can be
added as a chord tone. If collision of uniquely timed notes happen it is passed
to the next voice. If the voice does not exist it is created.
>
> 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.
Ok. That would not be hard.
>
> On the whole, I think we should be looking to something else to provide
> this midi conversion functionality
A script?
>- 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.
Yes. We don't have support for in inportmidi for tupplets, Lyrics, timesig
changes, tempo changes, etc...
>(Did
> you mention MMA in this context? That seems not to be a MIDI to notation
> convertor).
MMA is a midi accompanyment generator.
http://www.mellowood.ca/mma/
Its written in python to create an midi accompanyment file based off some chord
definitions. My idea was this:
Fakechord can be insert above a melody line in denemo. Then a script creates an
mma file based off the fakechords and user parameters. A dropdown menu or
directive could used to set the style or styles used in this autogeneration.
Then the script executes mma. The midi file that was created from mma would be
imported into denemo current project in parallel with the pre-exising
tracks/staffs. This accompanyment that would be generated would probably have
notes that collided over one another.
>
> I don't know where you want to take this...
It would not be much of a stretch to record midi input from a controller if we
had an easy way of dealing with the collision and ties.
Jeremiah
> Richard
>
>
>
>
> _______________________________________________
> Denemo-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/denemo-devel