Moog are unlikely to release Pro kits -
When you supply a kit, you need to supply a schematic - And for whatever reason, Moog keeps the E-Vox and E-Pro schematics under wraps -
I suspect that a reason for this probably comes back to Bob Moog.. Bob developed a clever scheme for register switching on the E-Pro, and a different clever scheme for MIDI on the E-Vox, but both had a "uncool" aspect to them - something that people like me, back then, would have ignorantly scoffed at and derided - Bob also had, I suspect, some discomfort about revealing his "crude" approach, so chose to keep it under wraps.
Times have moved on - "digital" and "logic gates" used in analogue instruments is probably far more acceptable now than it was then.. Back then those in "the know" probably would have regarded an XOR mixer as well below "Pro" standard - I certainly would have counted myself in that group - and the purist in me still does - but the pragmatist in me acknowledges that logic mixing confers massive advantages.
So here's a question:
If someone was to sell Pro-level boards - boards which gave register switching, waveforms the builder could set to taste, response (linearity, span etc) and all sorts of adjustment the builder could either take to the control panel or set up on presets or perhaps via a USB lead, would there be a market?
Because this is what I am working on at the moment - I am hoping to have an instrument for a renowned thereminist to play by early next year.. But I will not be in any position to put these instruments into production if it was liked - So I have been thinking of selling boards for DIY constructors or hopefully OEM'S which they could put in the cases they choose or manufacture and sell.
The heart of this instrument is analogue, but it operates with a PSoC4 (or two if one wants a editor with LCD etc so one can edit sounds and configuration of probably 64 presets) -the topology is based on the "upside-down" theremin I proposed a while back..
I have a limited time in which I must fully complete the above - If I dont reach this deadline, then I will call it a day, publish everything I have done (including sound samples etc) and hope people get it up and into production without me.
I have absolutely no idea though about what the kit-builder market is like, how large it is, how competent it is, what sort of support builders need, what sort of price they would pay..
So would be interested..
None of the above will make any difference to my direction though - even if only one person was interested, I am driven by something else - probably insanity!
;-)
Fred.
Below is a preliminary table of adjustable functions - there are a stack of heterodyning derived waveforms, each of these feeds a pair of analogue filters with adjustable highpass and lowpass filtesr (forming high, low or bandpass) - these waveforms are mixed, so one can morph from say a pulse to ramp to triangle to sine as pitch changes, and have any such configuration you choose - the level and frequency response of each waveform being independent.
Then there are FM functions which feed selected audio back to modulate the pitch oscillator - this gives tonal richness, particularly if taken via some formant filters.
Then there are four formant filters (2 pairs) which also have separate HP and LP filters so the formants can morph with frequency (this is an unnatural sound, but interesting). The audio section has its own controls for global tone control and drives multiple DCAs to allow mixing of external input audio to any route, including to modulate the pitch oscillator or to feed to the preview output, so preview can play a mix of the 'preview' and theremin and external audio.
The system is being designed as two boards - one being a basic register switching theremin which just dumps out raw waveforms and has potentiometers or presets wired for user controls. The second board adds all the other features and user interface - one fits digital potentiometers in the first board, and the second board takes control with these.
Much of what is in the diagram is inside the PSoCs - The volume CV for example is converted to digital and drives Log DCA's - PWM's are generated by the PSoC which control other functions - The bit which is not affected by digital stuff is the audio generation, this is near instant (the latency comes down to any latency in the Phase-Locked oscillators, and should be down at microseconds).
The table below is just the skeleton - one needs to have some structure to start dealing with the digital aspects of a project like this and get some idea about what is needed - Names for waveforms / voices etc are just preliminart - particularly on the analogue waveforms (rather than the mixed-signal ones) as I plan to have several analogue mixers which can be switched, including a conventional diode mixer and a true multiplier and probably a Fet mixer.. I may choose to lose some mixed signal voicing if I run out of space for analogue voices.
Also, I have included everything essential I can think of in the protocol - but things like pitch and volume tuning will probably not be implemented through the UI, but will be potentiometers hard-wired.. I think there are some functions probably too important to have in a DUI, so these are likely to be free for other commands.
I intend to convert WICP to MIDI controller messages for transmission, and convert incoming MIDI CC messages to WICP so that external MIDI controllers can be used - I actually wanted to use MIDI internally, but the MIDI limitation of 7 bits is something I cannot live with - And although it would probably be sensible to use MIDI CC internally, at this time wasting an entire byte to transfer a single bit ..... :-( ..... I may change my mind though..
WaveCrafter Internal Communication Protocol (WICP) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. ) One command byte followed by one or two data bytes. |
|
|
|
|
|
|
|
|
2.) Like MIDI, command bytes always have their most significant bit set, data bytes always have this bit at 0. |
|
|
|
|
3.) Bit 0 of the command byte also carries the most significant data bit, allowing command and 8 bits data to be sent in two bytes. |
|
|
4.) The command defines the length of the data, and commands can initiate transfer of 2 data bytes, giving a total of 1+7+7 = 15 data bits. |
|
5.) Commands with one following data byte can be running status if only the least significant 7 bits change. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
1 |
|
COMMAND MESSAGE |
|
|
MSB |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Creating the Command Byte: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The command message is composed of 6 bits as detailed below, this value is shifted left by 1 bit, 0x80 is then orred with this as is the MSB of the |
data byte into bit 0. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Commands - Group 0: |
This group is primarily for system level communications requiring 8 data bits. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
{TBD} Pitch tuning if used / not using multibyte. |
|
|
|
|
|
|
1 |
1 |
|
Pitch linearity 1 (far field) |
|
|
|
|
|
|
|
|
|
2 |
2 |
|
Pitch linearity 2 (near field) |
|
|
|
|
|
|
|
|
|
3 |
3 |
|
Pitch Span |
{TBD} |
|
|
|
|
|
|
|
|
4 |
4 |
|
{TBD} Volume tuning if used / not using multibyte. |
|
|
|
|
|
|
5 |
5 |
|
Volume Linearity 1 |
(far field) |
|
|
|
|
|
|
|
|
6 |
6 |
|
Volume Linearity 2 |
(near field) |
|
|
|
|
|
|
|
|
7 |
7 |
|
Volume Linearity 3 (audio side) |
|
|
|
|
|
|
|
|
8 |
8 |
|
Volume Span |
{TBD} |
|
|
|
|
|
|
|
|
9 |
9 |
|
Register Selection |
|
|
|
|
|
|
|
|
|
A |
10 |
|
Audio Output Level (to main) |
|
|
|
|
|
|
|
|
B |
11 |
|
Audio Tilt |
|
|
|
|
|
|
|
|
|
|
C |
12 |
|
Audio Balance |
|
|
|
|
|
|
|
|
|
D |
13 |
|
Preview Level Out |
[Monitor] |
{TBD} |
|
|
|
|
|
|
|
E |
14 |
|
Main / Preview Mix |
[Monitor] |
{TBD} |
|
|
|
|
|
|
|
F |
15 |
|
External input -> Monitor |
{TBD} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Commands - Group 1: |
This group is primarily for general and waveform adjustments with 8 data bits. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
16 |
|
Voice 0 (analogue / Sine) level |
|
|
|
|
|
|
|
|
11 |
17 |
|
Voice 0 (analogue / Sine) High Pass |
|
|
|
|
|
|
|
12 |
18 |
|
Voice 0 (analogue / Sine) Low Pass |
|
|
|
|
|
|
|
13 |
19 |
|
Voice 0 (analogue / Sine) Send |
|
|
|
|
|
|
|
|
14 |
20 |
|
Voice 1 (Ramp) level |
|
|
|
|
|
|
|
|
|
15 |
21 |
|
Voice 1 (Ramp) High Pass |
|
|
|
|
|
|
|
|
16 |
22 |
|
Voice 1 (Ramp) Low Pass |
|
|
|
|
|
|
|
|
17 |
23 |
|
Voice 1 (Ramp) Send |
|
|
|
|
|
|
|
|
18 |
24 |
|
Voice 2 (Triangle) level |
|
|
|
|
|
|
|
|
19 |
25 |
|
Voice 2 (Triangle) High Pass |
|
|
|
|
|
|
|
|
1A |
26 |
|
Voice 2 (Triangle) Low Pass |
|
|
|
|
|
|
|
|
1B |
27 |
|
Voice 2 (Triangle) Send |
|
|
|
|
|
|
|
|
1C |
28 |
|
Voice 3 (PulseRamp) level |
|
|
|
|
|
|
|
|
1D |
29 |
|
Voice 3 (PulseRamp) High Pass |
|
|
|
|
|
|
|
|
1E |
30 |
|
Voice 3 (PulseRamp) Low Pass |
|
|
|
|
|
|
|
|
1F |
31 |
|
Voice 3 (PulseRamp) Send |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Commands - Group 2: |
This group is primarily for general and waveform adjustments with 8 data bits. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
32 |
|
Voice 4 (Square / Pulse / Special) level |
|
|
|
|
|
|
|
21 |
33 |
|
Voice 4 (Square / Pulse / Special) High Pass |
|
|
|
|
|
|
22 |
34 |
|
Voice 4 (Square / Pulse / Special) Low Pass |
|
|
|
|
|
|
23 |
35 |
|
Voice 4 (Square / Pulse / Special) Send |
|
|
|
|
|
|
|
24 |
36 |
|
Voice [Special] PWM |
|
|
|
|
|
|
|
|
25 |
37 |
|
FM from Mix |
|
|
|
|
|
|
|
|
|
26 |
38 |
|
Formant A F1 Frequency |
|
|
|
|
|
|
|
|
27 |
39 |
|
Formant A F2 Frequency |
|
|
|
|
|
|
|
|
28 |
40 |
|
Formant A Lowpass Frequency |
|
|
|
|
|
|
|
|
29 |
41 |
|
Formant A Highpass Frequency |
|
|
|
|
|
|
|
2A |
42 |
|
Formant A Level |
|
|
|
|
|
|
|
|
|
2B |
43 |
|
Formant B F1 Frequency |
|
|
|
|
|
|
|
|
2C |
44 |
|
Formant B F2 Frequency |
|
|
|
|
|
|
|
|
2D |
45 |
|
Formant B Lowpass Frequency |
|
|
|
|
|
|
|
|
2E |
46 |
|
Formant B Highpass Frequency |
|
|
|
|
|
|
|
2F |
47 |
|
Formant B Level |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Commands - Group 3: |
This group is primarily transfer of more than 8 data bits. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
48 |
|
{TBD} Pitch tuning if used / not using single byte |
|
|
|
|
|
|
31 |
49 |
|
{TBD} Volume tuning if used / not using single byte. |
|
|
|
|
|
|
32 |
50 |
|
FM Functions - |
|
|
|
|
|
|
|
|
|
33 |
51 |
|
|
|
|
|
|
|
|
|
|
|
|
34 |
52 |
|
|
|
|
|
|
|
|
|
|
|
|
35 |
53 |
|
|
|
|
|
|
|
|
|
|
|
|
36 |
54 |
|
|
|
|
|
|
|
|
|
|
|
|
37 |
55 |
|
|
|
|
|
|
|
|
|
|
|
|
38 |
56 |
|
|
|
|
|
|
|
|
|
|
|
|
39 |
57 |
|
|
|
|
|
|
|
|
|
|
|
|
3A |
58 |
|
|
|
|
|
|
|
|
|
|
|
|
3B |
59 |
|
|
|
|
|
|
|
|
|
|
|
|
3C |
60 |
|
|
|
|
|
|
|
|
|
|
|
|
3D |
61 |
|
|
|
|
|
|
|
|
|
|
|
|
3E |
62 |
|
|
|
|
|
|
|
|
|
|
|
|
3F |
63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|