ddg.mono to make a melodic midi phrase containing polyphony into monophonic midi

Aug 5, 2011 at 2:22pm

ddg.mono to make a melodic midi phrase containing polyphony into monophonic midi

Hi,
I have a midifile containing a melody with certain parts of it being polyphonic.
I want to turn the midifile monophonic in a similar way to playing the polyphonic midi with a monophonic synth, with last/low/high priority etc i.e ddg.mono

Thanks

#58353
Aug 5, 2011 at 5:00pm

Should I use borax and through or peak to find highest or lowest note if more than one note held down?

#209719
Aug 5, 2011 at 5:00pm

Should I use borax and through or peak to find highest or lowest note if more than one note held down?

#209733
Aug 7, 2011 at 11:55am

I kind of thought this is what ddg.mono was doing right out of the box,
do I need to make a lind of complicated patch to achieve this, or am I misunderstanding?

Thank you

#209720
Aug 7, 2011 at 11:55am

I kind of thought this is what ddg.mono was doing right out of the box,
do I need to make a lind of complicated patch to achieve this, or am I misunderstanding?

Thank you

#209734
Aug 7, 2011 at 4:18pm

Hi flowdesigner

I had a bash at this, with somewhat limited success using [borax], [zl group] and [zl sort 0]. I guess the degree of success depends on how dense the polyphonic texture is, and how regular/irregular those textures are. It might help if you posted an example patch, cos we’re kind of in the dark here.

Brendan

#209721
Aug 7, 2011 at 4:18pm

Hi flowdesigner

I had a bash at this, with somewhat limited success using [borax], [zl group] and [zl sort 0]. I guess the degree of success depends on how dense the polyphonic texture is, and how regular/irregular those textures are. It might help if you posted an example patch, cos we’re kind of in the dark here.

Brendan

#209735
Aug 8, 2011 at 12:18pm

How are you getting the note data out of your MIDI file and into the Max environment?

#209722
Aug 8, 2011 at 12:18pm

How are you getting the note data out of your MIDI file and into the Max environment?

#209736
Aug 9, 2011 at 1:15pm

Currently midi is getting into max with notein from a midifile playing from a midiclip in Live session view.

Thanks!

#209737
Aug 9, 2011 at 1:45pm

So why aren’t you just using ddg.mono right “out of the box”? If you look at its help file, you can just basically remove the kslider and integer boxes, and just connect the notein right to the ddg.mono. I haven’t done this, but should work I would think?

#209738
Aug 12, 2011 at 9:42pm

That is what i did

– Pasted Max Patch, click to expand. –

but that did not work, I recorded the midi stream after the ddg.mono in a new Live midi clip, and polyphony was still occuring

#209739
Aug 12, 2011 at 11:25pm

Patch looks fine to me, not sure what’s up….

#209740
Aug 13, 2011 at 12:20am

You could try inserting [poly 1 1] after ddg.mono, like this

– Pasted Max Patch, click to expand. –
#209741
Aug 16, 2011 at 8:55pm

I’m late to this thread, but I have an abstraction I call cbm.mono (after ddg.mono) that takes a MIDI stream, and makes a MIDI-compatible mono stream (last note priority.) It can be found here: http://www.xfade.com/max/examples/

#209742
Apr 10, 2012 at 10:20am

Thanks, Chris

but is not dd.mono also meant to do this?

#209743
May 27, 2012 at 5:17pm

anyone able to make this work with noteout and basic objects patched in a smart/simple way?

#209744
May 28, 2012 at 2:46am

I just did some testing with this, and even changed the code to force a note-off at every note-on (a requirement for dealing with an intrinsically polyphonic synthesizer). Even with some code changes, we run into a difficult issue: the serial nature of MIDI notes.

For example, if we hit a chord stack on a keyboard containing C, E, G, D, the notes aren’t sent to the notein object as a chord stack; it is sent to notein as four individual notes in some arbitrary order. Let’s assume that the order is as shown (C, E, G, D). ddg.mono sees each note come in, stores it and sounds it in that order (if Last Note priority is chosen). When you release the notes, the note-off messages are also sent serially (in some arbitrary order), and may also sound because previous notes are being released from the storage stack, and a new note is becoming the ‘current’ note.

In doing some basic testing with Live, it appears that chord stacks are sent in low-to-high note order. Thus, even with changes to the code to support polyphonic synthesizer input, you get faux polyphony as the individual notes are all received, sounded, stored, then potentially re-sounded on key release.

Eliminating this problem would either require some sort of speedlim-like behavior, or receipt-time encoding/decoding – both of which are too fragile to consider at this time. If someone were to have a good theoretical alternative, I’d be willing to try to code it up.

[ddg]

#209745
May 29, 2012 at 10:26pm

OK – so I’m working on the update, but you can check out this thread:

http://cycling74.com/forums/topic.php?id=40245

I’ve got a javascript object that will do what you want it to do, and is a mockup of what I hope to eventually put inside of ddg.mono.

Enjoy!

[ddg]

#209746

You must be logged in to reply to this topic.