[LAD] Plugin 1/oct frequency controls (AMS/MCP/VCO)

David Robillard d at drobilla.net
Wed Aug 22 01:56:45 UTC 2012


On Wed, 2012-08-22 at 03:24 +0200, Nick Copeland wrote:
[...]
> Well, in the voltage controlled synths there were properties of an
> oscillator. If your synth does not have controls but only ports then
> how
> do you select the waveshaping code? How do you select 12+24dB/Oct
> filters,
> how do you select keyboard tracking versus non-keyboard tracking
> oscillators,
> are these all input ports with implied semantics?

Yes.  "Controls" and "ports" are interchangeable.

> There are other examples but when I was starting on Bristol this
> single issue
> lead me to separate out mod/volt controls and property controls since
> the option
> of using an input port to define a constant is a waste of CPU cycles
> and is also
> going to be pretty arbitrary. I also liked the concept of it being
> 'fully bussed' but 
> that truth is that it does not apply itself that well. Having separate
> modules for 
> each waveform, filter type, tracking methods, etc, is also a waste of
> time and even 
> more so if different modules have to be invoked each time somebody
> changes 
> parameters.

The context and goal here is modular synthesizers.

You may not like modular synthesizers.  Fair enough.  Some do.

> The other parameter that is going to be an issue is transpose. You
> could
> look at this as another input port but that is another waste of CPU to
> have
> a port for a constant value.

I am not sure why you think ports are a "waste of CPU", but that is not
the case at all.

>  Also, the original synths did not have a
> voltage value that represented transpose, it was a property that
> adjusted
> the rate of the oscillator which drove the waveshaping circuits. The
> issue
> here (with the originals) is that the waveshaping was dependent on the
> frequency so if an oscillator is transposed then some changes may also
> be needed to the parameters of the shaping circuit. This is difficult
> to
> emulate if you literally only have ports rather than
> properties/controls.

"Properties", "controls", "ports", whatever.  I am not sure what kind of
semantic mapping for these terms you are imagining, but we have input
and outputs ("ports"), and that's it (and that's a good thing).

> It can be argued here that you are not intending to actually emulate
> any
> specific synth in which case these interactions are not necessary but
> if
> you are not emulating then why do you want V/Oct which is an emulation
> of
> the controls of the analogue synths?

Because these plugins use 1/Oct and I want to use them.  These filters
are an emulation of the Moog filters.

I am not talking about the internals of a static program here.  These
plugins are generic and can be used in any program, which is why the
interface matters.

> Also, if you do want to use V/Oct then perhaps also get rid of -ve
> values.
> I mentioned this before and I always get ainsy when considering 'what
> if the
> control bus goes negative?' It is unanticipated results for an AMP and
> -ve
> values to a filter cutoff can be, well, put it this way, I check for
> them.
> The Moog spec for CV was 0..10v, the value does change according to
> your
> sources but it never included -ve volts.

Frankly I don't see how this idea makes any sense at all in a digital
system.  If you want to modulate frequencies - which you certainly do -
then you'll need negative values.  This position is a blatant
contradiction of basically everything else you've said Re: absolute
units.  In your previous email you went on about how the absolute unit
is bad because you can't use it for an amp... well, amp gains usually
center about zero (0db being unity gain), and negative values are
neither uncommon nor problematic.  In floating point systems like this
one, audio itself centers about zero.  Things *not* also being centred
about zero is annoying for this reason.

Perhaps you are thinking about integer audio?  Like Jack, we do not use
integer audio.

In short, for relative signals this is nonsense.  For absolute
frequency, it is a possibility.  It raises some questions:

1) If absolute is bad, then... why use a range that is inherently
absolute?  "No negatives" => "not usable for relative modulation"

2) What frequency is 0?  Note that this number, doubled repeatedly, is
going to have to hit 440 (or at least some note) at some point for this
unit to be at all sensible.  That means it isn't going to be a nice
round one.  Why spec a unit based on some very strange ugly low
frequency rather than standard 440?

3) What is the advantage of using a unit completely *unlike* audio, when
the entire point of CV is to be interchangeable with audio?  For
example, if you connect a normal audio sine wave to a zero centred
frequency port, it will give you a frequency sweep of 2 octaves.
Multiply that audio and you get a wider range, and so on.  Presumably
this is why AMS and by extension Fons' plugins chose this unit in the
first place.  A positive-only unit is very non-modular and less useful. 

3) What exactly has been gained to compensate for the loss of ability to
represent any frequency below whatever you choose for 0, and the nice
CV-like behaviour described in point 2?

Blind emulation of voltage is not the goal here.  The audio in these
digital systems is different.  The point of modular synth-like systems
is interchangeability between CV and audio.  Since the audio is centered
about zero, the correct way to capture the spirit of modular synths is
to also center CV about zero.  Presumably this is why AMS went with it
in the first place.

-dr


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-dev/attachments/20120821/4f846dea/attachment.pgp>


More information about the Linux-audio-dev mailing list