Polyphonic Guitar to MIDI VST/AU "MIDI Guitar"- BETA TEST

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

[quote="JamOrigin"]There is actually a standard for midi tunings:
http://www.midi.org/techspecs/midituning.php
Do major synths actually respond to such tuning messages?

yes. for me anyway. I have never had a synth not respond to scala's alternate tunings.

Post

memyselfandus wrote:
JamOrigin wrote:There is actually a standard for midi tunings:
http://www.midi.org/techspecs/midituning.php
Do major synths actually respond to such tuning messages?

yes. for me anyway. I have never had a synth not respond to scala's alternate tunings.
I find that difficult to believe. (What synths do you use?) And again, alternate tunings are not what we need for guitar pitch tracking as they're not meant to be sent in real time, just once to redefine the note scale. There's no point in quantizing pitch values to anything other than exact semitones, as that's what the frets of your guitar are set to.

For guitar tracking Pitch Bend is more than sufficient. The only issue is making sure the converter and the instrument are both set to matching bend ranges. (I believe the Roland boxes default to +/- 12 semitones.)

Post

Example

I load up scala with a tun file. set the midi input to scala (relay) in ableton live. I record me playing. the pitch bend data goes into the "piano roll" to compensate for the tuning. so maybe the host does everything at that point?

Thanks for the tips by the way :)

Post

memyselfandus wrote:Example

I load up scala with a tun file. set the midi input to scala (relay) in ableton live. I record me playing. the pitch bend data goes into the "piano roll" to compensate for the tuning. so maybe the host does everything at that point?

Thanks for the tips by the way :)
Oh, if the host is converting Scala's tuning to pitch bend then sure. But pitch bend is shared by all notes on a channel, so this should only work for monophonic instruments (or if it splits it into multichannel, instruments that are designed to take multichannel guitar input, or multiple monophonic instances of the same instrument on several channels).

Post

I have only done it with a piano keyboard.(polyphonic)

scala is sending the pitch bend data to the host I guess. so maybe it's a matter of getting MIDI Guitar to send pitch bend data based on tun file settings to the host. either way pitch bend would be needed?

Post

memyselfandus wrote:I have only done it with a piano keyboard.(polyphonic)

scala is sending the pitch bend data to the host I guess. so maybe it's a matter of getting MIDI Guitar to send pitch bend data based on tun file settings to the host. either way pitch bend would be needed?
Again, .tun files are meant for setting a new scale, to be used for an entire performace (or section of performance). But definitely not meant to be modulated in real-time. Guitars don't need or want a new scale, as they're fixed to semitone intervals.

Okay, maybe fretless bass or slide/steel guitar might deliver non-semitone intervals, if the player chooses to play it that way. But even in these cases, pitch bend would suffice.

One of the hard parts about implementing pitch bend tracking is it makes it somewhat ambiguous as to whether to bend an already-going note, or to trigger a new note. Right now, with no attempt at pitch bending, MIDI-guitar can only trigger new notes, which actually makes it respond surprisingly well to slides. I was expecting to have to pluck each note discreetly, but no, it does a very good job with slides and even hammer-ons.

This is a challenge to hardware guitar converters as well. It can be very hard to tell if it's a new discreet note, or a bend of a pre-existing note. I suppose they can look for the sudden change in pitch as the finger crosses the fret, as opposed to the smoother transition in pitch from bending a string or using the vibrato mechanism.

But yes, MIDI tuning commands are meant for setting the whole instrument to different (and possibly uneven) scale intervals, not for encoding real-time bend performances. Pitch bend is what we want here, not alternate tunings.

Post

You are confusing two discussions now.

We all want bends, of course - its comming.

The other discussion is how to implement micro tunings. Pitch bend wont work for simulating micro tunings as it affect all notes. The midi tunings standard linked above is indeed for microtunings. So the questinon is if thats what is generally used, and implemented in synths.
JamOrigin.com

Like us on Facebook.com/JamOrigin and follow us on Twitter @JamOrigin

Post

searching for some solid info right now.

Post

JamOrigin wrote:You are confusing two discussions now.

We all want bends, of course - its comming.

The other discussion is how to implement micro tunings. Pitch bend wont work for simulating micro tunings as it affect all notes. The midi tunings standard linked above is indeed for microtunings. So the questinon is if thats what is generally used, and implemented in synths.
But, what guitar implements microtunings? And if you have pitch bend tracking working, then the synth(s) will play whatever pitch the guitar is playing. (Or is this to make the synth play totally different notes than the guitar is playing? In this case it's transparent to the controller, the .tun files are loaded by the instrument.)

And sorry, I see there actually is a real-time MIDI tuning message along with the non-real-time tuning commands.

http://www.midi.org/techspecs/midituning.php

So I guess that's a kind of polyphonic pitch bend. Still, you'll find relatively few instruments that respond to it. I'm also not aware of any hardware guitar converters that send it (could be wrong on this, let me know if there are any).

This message also permanently re-tunes the particular note number permanently (until a tuning message is received putting it back into proper tune). So using it as a single-channel multi-note pitch bend, while possible, will be a bit unwieldy and again, only work with the rare instruments that support it.

Note the comments on that page:
MIDI Spec wrote: Comments:

There is some question as to whether instantaneous response to real-time tuning changes is desirable in every circumstance. In some performance situations it makes more sense if a tuning change affect only those notes which occur subsequent to the change, and not affect sounding notes. But there are also situations in which tuning changes should take place instantaneously, as specified in the standard, and should affect sounding notes without disrupting their continuity.

If the instrument responds well in the latter situation, some work-around is possible for the former. The reverse is not true. Therefore the standard requires that tuning changes immediately affect sounding notes. Manufacturers might, however, consider implementing a switchable "instantaneous/next-note-on" option within an instrument.
I'd interpret this as "all bets are off" and avoid getting in to it at all.

Post

right now. I can use MIDI guitar to control say Dimension Pro in ableton. with any tun file loaded in Dimension pro. for a harry partch 41 tone scale tun file.
the fretboard corresponds to the tun file after the fact. meaning, when I play fret 1 its say a F note then fret two is a 1/4 tone up and so on.

any vst that does not have a built in "tun" loader with need scala or midi guitar with tun file options to run microtonal stuff.

if we can figure out how to load a tun file in midi guitar it will work.

Post

memyselfandus wrote:right now. I can use MIDI guitar to control say Dimension Pro in ableton. with any tun file loaded in Dimension pro. for a harry partch 41 tone scale tun file.
the fretboard corresponds to the tun file after the fact. meaning, when I play fret 1 its say a F note then fret two is a 1/4 tone up and so on.

any vst that does not have a built in "tun" loader with need scala or midi guitar with tun file options to run microtonal stuff.
Right. This all happens transparent to the controller. Just like if you were using a keyboard. That's why I'd advise them to avoid getting into this. Users who want it can already do it, and the controller doesn't need to know.

Post

Yes, the only reason to get into this on our side is to make it work with MIDI Guitar hosted VSTs.

We will most likely devote on major update for MIDI stuff later: MIDI learn, split "keyboard", MIDI pedals, alternative tunings and put micro tunings in this update, but for now, lets focus on core features.
JamOrigin.com

Like us on Facebook.com/JamOrigin and follow us on Twitter @JamOrigin

Post

sounds good to me :)

Post

Hi,

I'm Robert Walker, author of Tune Smithy, anyway haven't read all through this thread - so might be missing something here - but I can certainly help with pitch bends and the tuning standard.

TUNING SYSEXES

Yes there is a tuning standard, the MTS sysexes. Sadly it's not widely supported in hardware, because each manufacturer came up with their own standards to match their own synths, and there are very few actual hardware synths that support MTS syexes.

But with a software synth, then if you want to support tuning sysexes than the MTS route is the way to go. NI's FM7 supports MTS sysexes, though sadly their new version the FM8 dropped that support. Not sure what else supports them.

Tune Smithy can send tuning sysexes, and if you support those then that's great. It doesn't yet support the scale / octave extension to the tuning standard (I don't know of a soft synth that uses that), just the full tuning sysex.

It's a bit tricky to code. If C-code is any use to you, let me know and I can send you the c-code I use for sending and receiving MTS sysexes. I haven't made it up into a library or example project, but it could be useful even so just to check details of how it can be implemented, could save some time.

Pitch Bend retuning

However, you can make your synth work really well with Tune Smithy and Scala and similar programs for many purposes, if you just make it able to receive notes on the 16 midi channels, and respond instantly to pitch bends in each channel.

So - especially if your synth is already multi-timbral that should be easy to do.

There is one GOTCHA for pitch bend retuning synths.

Some synths don't respond instantly to pitch bends. Instead, they make the note adjust slowly - you send a pitch bend and it glides in pitch from the previous pitch to the new one over a few milliseconds. Which is okay if the note is already sounding, and you can understand why they do it in that situation, rather than as a series of pitch steps. But some do a glide even if you send your instant pitch bend before the note sounds. This causes really obvious pitch glides at the start of every note from whatever was the previous pitch bend for that channel, when you try pitch bend retuning.

So - if you receive a pitch bend and there is no note currently sounding in the channel, you need to be sure to do an instant pitch bend change rather than a glide to the new pitch.

The "instant pitch bend" may be received literally immediately before the note to be played - sent during the same millisecond, sequenced immediately before it. So when you decide whether or not the channel is silent, and so whether to glide to the new pitch or jump to it instantly, you need to bear that in mind not to include the note that gets played as a result of the bunch of midi messages you receive in a cluster with the instant pitch bend.

Your question about whether the pitch bend acts on notes already sounding

Yes - normally the pitch bend acts on notes already sounding. Otherwise you wouldn't be able to use the pitch bend wheel to bend a note after you play it.

For pitch bend retuning it would be great if there was an option to make the pitch bend only act on new notes received after the pitch bend. I experimented with this in Tune Smithy - it has an option to work like that with notes received via midi in, and to take advantage of any synth that is designed like that to massively increase the "pitch polyphony" for notes sent via midi out.

However as the only synth I know of that does that is Tune Smithy itself (it's "waveform player") it was more of a "proof of concept" than a useful feature for Tune Smithy users.

But as you can imagine - if a synth is able to be switched into that kind of a mode - then it massively increases the "pitch polyphony" as you can have many pitch bends played simultaneously in each channel.

.Tun tuning and SCALA scl tuning


Another solution you get often nowadays is the option to read a .scl scale or a .tun tuning directly into the synth, which then tunes it to match that tuning.

Tune Smithy has an option "Assume synth is already tuned to this tuning" to deal with that situation, it can export a .tun file, then the user imports that into their synth, and then Tune Smithy knows how the synth is tuned (or vice versa).

HOW TUNE SMITHY AND SCALA DO THE PITCH BEND RETUNING

It might be useful to know how the pitch bend retuning is actually done

With Tune Smithy and Scala and most programs like that which rely on pitch bends, then what you do is to remap the notes to different channels depending on the pitch bend needed.

This is easiest to do if you have a single instrument and all the same controllers for all the notes.

With many scales, so long as it has fewer than 16 notes and repeats at the octave, then it is dead easy, set channel 1 to the pitch bend needed for the first note in the scale, channel 2 for the bend for the 2nd note in the scale and so on. Then just play the appropriate notes on the appropriate channels and you are done.

Some large scales BTW require surprisingly few pitch bends if they also have 12-et intervals in them as well as the octave. For instance you can get all the pitches of 72-et with just six channels each with a different pitch bend and for 24-et you just need two channels, one set to 0 pitch bend and one set to a 50 cents pitch bend.

However, even for "tricky" large scales with no 12-et intervals apart from perhaps the octave - often the performer uses a subset of much less than 16 pitch bends for any given section of the piece - and even if not - most of the time then you need only, say, five distinct notes of the scale at most played simultaneously in a chord (not including octaves as they all require the same pitch bends).

So then even if you have non octave scales, or scales with e.g. 31 or 53 notes per octave or whatever, it really doesn't matter as it is very rare indeed to require as many as 16 distinct pitch bends all played at once (ignoring octaves and 12-et intervals which don't matter for pitch bend retuning). You even have enough leeway so that normally you can easily handle e.g. several different controllers or stereo pan locations as well on top of all the pitch bend retuning.

The only thing that really matters there is that it must be possible to do clean instant pitch bends in channels with no notes currently sounding.

If you can't do that then you are limited to tunings which you can handle by setting a pitch bend for the channel right away - and then never change the pitch bends. Or else you can try setting pitch bends that you expect might be needed as soon as a channel falls silent - but with a large scale then sometimes you will guess wrong and you get those "start of note" pitch glitches at least occasionally; all you can do is to reduce the number of them in that situation.

So that's some of the background.

Hope this helps. Any questions be sure to say.
AdmiralQuality wrote:
JamOrigin wrote:You are confusing two discussions now.

We all want bends, of course - its comming.

The other discussion is how to implement micro tunings. Pitch bend wont work for simulating micro tunings as it affect all notes. The midi tunings standard linked above is indeed for microtunings. So the questinon is if thats what is generally used, and implemented in synths.
But, what guitar implements microtunings? And if you have pitch bend tracking working, then the synth(s) will play whatever pitch the guitar is playing. (Or is this to make the synth play totally different notes than the guitar is playing? In this case it's transparent to the controller, the .tun files are loaded by the instrument.)

And sorry, I see there actually is a real-time MIDI tuning message along with the non-real-time tuning commands.

http://www.midi.org/techspecs/midituning.php

So I guess that's a kind of polyphonic pitch bend. Still, you'll find relatively few instruments that respond to it. I'm also not aware of any hardware guitar converters that send it (could be wrong on this, let me know if there are any).

This message also permanently re-tunes the particular note number permanently (until a tuning message is received putting it back into proper tune). So using it as a single-channel multi-note pitch bend, while possible, will be a bit unwieldy and again, only work with the rare instruments that support it.

Note the comments on that page:
MIDI Spec wrote: Comments:

There is some question as to whether instantaneous response to real-time tuning changes is desirable in every circumstance. In some performance situations it makes more sense if a tuning change affect only those notes which occur subsequent to the change, and not affect sounding notes. But there are also situations in which tuning changes should take place instantaneously, as specified in the standard, and should affect sounding notes without disrupting their continuity.

If the instrument responds well in the latter situation, some work-around is possible for the former. The reverse is not true. Therefore the standard requires that tuning changes immediately affect sounding notes. Manufacturers might, however, consider implementing a switchable "instantaneous/next-note-on" option within an instrument.
Last edited by robertinventor on Mon Nov 12, 2012 1:02 am, edited 3 times in total.

Post

Thanks Robert!
JamOrigin.com

Like us on Facebook.com/JamOrigin and follow us on Twitter @JamOrigin

Post Reply

Return to “Instruments”