denemo-devel
[Top][All Lists]
Advanced

[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




reply via email to

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