Tuning flexibility for VSTi

Started by uncloned, July 07, 2009, 22:11:37

Previous topic - Next topic

uncloned

It would be great to have similar or the same alternate tuning capability for VSTi's in open MPT.

Some VSTi's accomplish this by sending the appropriate pitch bend comment just prior to executing the note.

Harbinger

Has been queried, but waiting for the motivation and time.

From a PM to Relab, and his reply:

Quote from: "Relabsoluness"
Quote from: "Harbinger"When a note is sent to a VSTi from MPT and the Instrument (the VSTi is attached to) operates under a non-standard tuning, that a Pitch Bend event is sent prior to the note to adjust for the new note. The pitch bend amount is determined by the difference in MPT's standard tuning and the non-standard tuning.

Would this be a viable solution or workaround, even if it would be complicated to implement?
If VSTi supports pitch bend I don't see any fundamental problem why this couldn't work. However I haven't examined the matter that deeply so I don't know how difficult it would be to implement or how well it would work in practice.

uncloned

Pitch bend works well - the caveat is that you get 1 pitch bend per channel...


there are some people who program microtonal applications that would be probably happy to help out with their knowledge to assist with putting this capability into Open MPT if this is being seriously considered.

If you want I can ask on the microtonal tuning list for help.

Harbinger

Quote from: "uncloned"Pitch bend works well - the caveat is that you get 1 pitch bend per channel...

That's an interesting limitation i didn't think about. So it would only work for Mono (one note at a time) in the VSTi's channel.

So if you had quarter tones for, say, two notes in the scale, any other note you play with the "bent" note would also be bent, which defeats the purpose.

The only workaround then would be to use a different channel for polyphony of unbent notes, and if the VSTi did not support multiple MIDI channels, you would have to use another instance of the VSTi. Not a good idea... :?

uncloned

Actually quarter tones would be best handled by two instances of the same VSTi with full polyphony.

I don't think there is a way around the bend per channel problem - but having it there even if CPU expensive would beat not having it at all.

bvanoudtshoorn

Maybe the best way around this is to:

a) Use VSTis that are capable of doing microtonal tuning themselves;
b) Using a pitch-correction plugin to 'correct' the tuning of the VSTi to whatever pitch;
c) Post-process the sound of the VSTi (interally in OpenMPT) so that it is pitch-shifted up/down appropriately -- this isn't particularly complex maths.

Personally, I think option (c) is the best -- it also means that you don't have to deal with the fact that many plugins will bend different amounts for the same pitch bend data. Additionally, it eliminates the 'bend per channel' problem.

Harbinger

Excellent brainstorm! Does MPT post-process anything already on a per-voice basis? IOW would a dev have to add functionality?

uncloned

I think option C is awesome!

It would work with any VSTi

I am not aware of a free VSTi that supports microtonal tuning. In fact Open MPT may be pretty unique on being a free usable microtonal sound source.

Saga Musix

I vote for Options a and b, because that means the least work for us. :P
Plus I don't really know what option c means. Realtime pitch-shifting? No thanks. That sounds like a bullshit idea to me, especially since time-preserving pitch-shifting algorithms are still far from perfect.

Quote
Excellent brainstorm! Does MPT post-process anything already on a per-voice basis?
Depends on your defnition of "voice". If you mean a voice as in "a VSTi has multiple voices", then no. I don't know nothing about VST routing, but it sounds quite logical to me that a VSTi only outputs one stream with all voices combined. You can't split that up again. (And yes, I'm aware of VSTs with multiple outputs, but that's another story).
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

bvanoudtshoorn

Jojo's right -- VSTs (in OpenMPT's context) only have two outputs: left and right channels.

I'm not sure, though, that you're right about realtime pitch-shifting being infeasible -- lots of plugins do it really well, and it's generally not noticeable for small alterations.

In terms of option a, Kontakt does really good microtuning -- you can define a tuning for every MIDI note that comes in very easily. Of course, the problem is that Kontakt isn't free, so you have to shell out for the functionality.

g

Quote from: "bvanoudtshoorn"I'm not sure, though, that you're right about realtime pitch-shifting being infeasible -- lots of plugins do it really well, and it's generally not noticeable for small alterations.
Sorry if this it OT, but do you know of any free/cheap ones? (I know of GSpot)

Saga Musix

Aren't you sure you mean GSnap? :nuts:
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

g

Quote from: "Jojo"Aren't you sure you mean GSnap? :nuts:
I'm pretty damn sure I mean GSnap...  :oops:  but GSpot is a pretty cool tool too for those wondering what codecs a video file requires.

nobuyuki

Couldn't MPT just pass transposed MIDI data to the VST, or are we talking about tuning in-between semitones ?

Saga Musix

It's the latter... Well actually it's something inbetween, it's about choosing another tuning that 12TET.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.