Thanks, glad you found it useful. There's some background I should get
into here...
There's been a lot of discussion about tuning standards recently - we
don't really have one, and it sucks. Manufacturers aren't supporting
us because we aren't telling them what to support, but we aren't
telling them what to support because there's no standard for them to
support. Everyone agrees that we need a way to bootstrap ourselves out
of this crummy situation. So, I sought out to see if MTS was actually
viable as a standard for us to get behind. Turns out it does have all
the features we need - actually, it has too many, most of which are
useless.
I worked in isolation on this for a while, and then started talking
with Graham on Gchat about it too. We made some good progress,
especially in identifying some lurking issues with naive MTS
implementations that really screw things up. Even with just the two
tuning change messages, naive implementations can run into all sorts
of characteristic problems:
- artifacts where release trails bounce around (what I've termed the
"Doppler effect"),
- artifacts where samples are "pitch bent up" like three octaves (the
"Mickey Mouse" effect),
- where the register becomes absurdly small ("register cramp"),
- where "voice stealing" occurs, utterly destroying polyphony unless
you play certain chords that stick closely to a skeleton of 12-EDO or
other arbitrary requirements,
- others, etc.
These artifacts are so common and endemic to the architecture that
they should be treated similarly to how "aliasing" and "imaging"
artifacts are treated in wavetable synthesis. Everyone should know
about them and how to avoid them, but the problem is that a naive MTS
implementation can inadvertently lead to one or more of the above
behaviors in very common situations.
The core issue is: while MTS outlines how synths should respond to
tuning messages, it doesn't outline any sort of best-practice for how
controllers should generate those messages. This unfortunate problem
is compounded by the fact that the spec leaves open certain key things
about the synth's behavior which should have really been nailed down.
If synths and controllers don't agree on these key unspoken things,
you end up with artifact hell.
I've run into every single one of these issues at one point or
another. These situations turn out to be *very* non-trivial, and
difficult to avoid unless you really think through the details of an
implementation carefully. If you aren't careful, you end up with a
useless piece of junk which sounds great, but which I can't actually
use to play music in, say, 31-EDO. Unfortunately, no document exists
that outlines all of this clearly, so synth manufacturers are forced
to work all of this crap out on their own from scratch and fill in the
gaps however they randomly do it.
What's sorely needed is something stating clearly what synths should
expect from controllers and vice versa, and both sides need to know
the proper high-level paradigm so they can understand *why* things are
set up the way they are.
I'd like to work towards some kind of community consensus on a
"clarification" of the MTS standard which outlines clearly which
messages are useful, which are deprecated, which are basically
useless, what the best practices are for controllers, what synths
should know to avoid and to comply with (even if not explicitly
outlined in the MTS standard), etc.
It should especially detail clearly the high-level paradigm through
which MTS is viewed from the perspective of a modern microtonalist -
features we need, features we don't care about, etc. Things as basic
as "we don't only care about 12-note tunings" are likely to be a
revelation to many synth manufacturers.
Whether this is called an MTS "clarification," or a set of "best
practices" for MTS, or a "new protocol" that's really just a
standardized way of using MTS plus some additional restrictions, etc -
all of that's largely a matter of selling the idea, so none of it
matters to me. It's all the same idea - MTS is a framework for
transmitting tuning-related information, but does not clearly and
completely specify how controllers and synths should generate and
interpret such information, so that's what I want to work towards.
So, I'll be periodically writing posts here that are in line with
that.
Mike
> --
> --
> You received this message because you are subscribed to the
> "Making Microtonal Tools" Google group.
>
> To unsubscribe from this group, send email to
>
microtools-...@googlegroups.com
>
> For more options, visit this group's web site at
>
http://groups.google.com/group/microtools
> ---
> You received this message because you are subscribed to the Google Groups
> "Making Microtonal Tools" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to
microtools+...@googlegroups.com.
> For more options, visit
https://groups.google.com/groups/opt_out.