[sdiy] DCB Spec

Adam Inglis 21pointy at tpg.com.au
Mon May 1 02:04:30 CEST 2017


Wow Brian, great summary!

The lack of pitch bend in DCB is the one great failing for me. Given how data-intensive it is, did any other pre-midi protocol manage to implement it? You mention USI had pressure, transpose, knob and switch changes.

> On 30 Apr 2017, at 7:07 PM, rsdio at audiobanshee.com wrote:
> 
> Thanks for those scans, Per. This confirms the information in the Wikipedia article.
> 
> 
> Here is my bullet list and summary:
> 
> DCB (Roland JP-8 and JUNO-60)
> - 1981 (? - did the earliest JP-8 models have DCB?)
> - problems with ground loops, so much so that it's mentioned in the manual with workarounds
> - controls have 241 steps from 0 to 240
> - there are 14 commands, but only 1 or 2 are defined for a given synth
> - notes are 8-bit values with 1-bit gate and 7-bit pitch
> - notes are not assigned to channels, but to voices, with all voice pitches sent in every message, even in dual mode
> - notes range from 0 to 127
> - unused voices have gate bit turned off, but are still transmitted anyway
> - there is no pitch bend, no pressure, no controls, just Patch change
> - there is a special End byte, which isn't really necessary since data values (usually?) cannot be the same as command values
> - custom connector with 14 pins
> - 8-bit odd parity 2 stop bits 31.25 kHz (11 bits total)
> 
> USI (Sequential Circuits, Dave Smith and Chet Wood)
> - 1981 October 30
> - controls range from 0 to 255, or 0 to 65535, or beyond, thanks to encoded message length
> - four command groups with up to 8 commands per group (theoretically 32 commands) with many used
> - notes have optional velocity and optional channel
> - up to 256 channels, or even 65536 channels with long messages
> - 256 velocity levels, or even 65536 velocity levels with long messages
> - any 10 ms gap in transmission is a good sign that a command has ended
> - (probably had ground loop issues)
> - standard 1/4" connector with transmit and receive separated (TRS?)
> - 8-bit off parity 1 stop bit 19.2 kHz (10 bits total)
> 
> MIDI (MMA)
> - 1983/1984
> - no ground loops!
> - controls range from 0 to 127 or 0 to 16383
> - there are 7 channel commands, 6 system real-time commands, 5 system common commands, and 1 system exclusive command (19 total)
> - notes are 7-bit values with 7-bit velocity, with gate encoded in the command (Note On, Note Off)
> - notes are assigned to channels, not voices, except for Channel Mode 4 where channels map directly to voices
> - pitch bends are 14-bit
> - every byte allocates a 1-bit flag to distinguish commands from data
> - 8-bit no parity 1 stop bit 31.25 kHz (9 bits total)
> 
> In my analysis, these protocols are all very different from each other. I can't see any two which are significantly close.
> 
> DCB is particularly odd because there are really only one or two commands, and some synths only implemented one command. Instead of having Note On and Note Off events like MIDI, DCB transmits the state of all voices with every message. This basically ensures that there will never be a stuck note like MIDI. 6-voice synths had a 6-byte payload between the command byte and End byte, making each update 8 bytes long, or 88 bits total. 8-voice synths had an 8-byte payload, 10 bytes total, or 110 bits. The bit rate is a convenient 2MHz/64 value that doesn't require a separate crystal from the CPU. The biggest difference between DCB and MIDI is that DCB transmits the current state, whereas MIDI transmits events that change parts of the state (leaving the potential for a partially unknown state). Notably missing from DCB are Pressure, Aftertouch, Pitch Bend, and Control Changes. All you get with DCB is Patch Change messages with 241 patches maximum, and that message is not available on every synth. DCB is basically nothing at all like MIDI, except being an 8-bit serial interface for keyboards.
> 
> Although 128 steps is enough for chromatic notes, I get the impression that DCB might have been setting the actual pitch CV with a 7-bit value, meaning it would be very coarse. Either that, or they have no remote pitch bend ability at all via DCB.
> 
> USI - Dave Smith's first attempt - is also very different from MIDI. It's closer than DCB, though, because USI and MIDI both have a lot of useful commands. USI is a little crazy, though, because things like velocity and channel are optional, and when they're present in a command they can be 8-bit or 16-bit or 24-bit or … there really isn't any limit in the specification! The strange thing is that all data present in a command must be the same size, so if you want 16-bit velocity then you have to specify 16-bit channel numbers, too, unless you skip the channel number entirely. The command byte is broken into 2-bit and 3-bit parts, somewhat like MIDI, yet different. The 2-bit value distinguishes Key, Auxiliary, Bulk, and Interface/Miscellaneous commands. The first 3-bit part selects sub-commands, while the second 3-bit part specifies the data length. The USI Bulk commands have Query, Response, Save, Data, Load, Ready, and Receipt messages. The Auxiliary commands includes Program change, Pressure, multiple Transpose variations (relative and absolute), Knob and Switch changes. Due to the flexibility, USI messages could be quite long, meaning that a receiver that powers up in the middle of a message might have to wait for a 10 millisecond gap in data transmission before it can start decoding. The length of each command is encoded in the message, though, allowing receivers to easily skip unrecognized commands. USI uses a common modem speed of 19.2 kbaud, but that requires a separate crystal if the main processor is running at a common speed like 1 MHz, 4 MHz, etc. It looks like USI was intended for 1/4" stereo TRS jacks, with bidirectional communications.
> 
> As a protocol, MIDI is quite different from both of these. Some of the big differences are that MIDI has a 1-bit flag in each byte that distinguishes between a command (status) and data. Since the maximum data size is 2 bytes for all commands except System Exclusive, this allows a receiver to jump in the middle of a conversation and quickly decode without waiting for a 10 millisecond gap or other trick. Unfortunately, this reduces the typical control range from 241 (DCB) or 256 (USI) to 128 (MIDI), although USI and MIDI each have larger ranges available: 16384 for MIDI, and 65536 or even higher for USI. The rest of the MIDI status byte is broken into a 3-bit command and 4-bit channel, which looks a little like USI yet still quite different. MIDI is more like USI, being an event protocol rather than state transfer, but MIDI was streamlined by removing the parity bit and reducing the messages sizes so that the transmission speed could be maximized. The Japanese companies apparently all had a lot of input into these differences, as they were seemingly very focused on efficiency, both in terms of reducing parts (no separate crystal) and increasing bandwidth (higher rate and shorter messages).
> 
> Brian Willoughby
> Sound Consulting
> 
> 
> On Apr 29, 2017, at 8:21 PM, Mattsson Per <per.mattsson at miun.se> wrote:
>> These are scans from the J60 SM:
>> http://www.permattsson.se/electronics/DCB/
>> 
>> 30 apr. 2017 kl. 03:49 skrev Adam Inglis <21pointy at tpg.com.au>:
>>> Hi Grant
>>> actually, I’ve just checked and the doc I have has exactly the same text and diagrams as that found in the Juno 60 SM, starting on page 17, regarding the DCB data format and spec.
>>> 
>>> Like you, I was of the understanding that DCB informed the midi spec to a large degree, but I know nothing about code etc, so I’d be interested in Brian’s assessment.
>>> 
>>> AI
>>> On 30 Apr 2017, at 2:43 AM, MTG <grant at musictechnologiesgroup.com> wrote:
>>>> Hi Adam,
>>>> 
>>>> Can you tell me the name or number of the doc? That way I can maybe search online for it first. I don't think I have a printed copy anymore.
>>>> 
>>>> GB
>>>> 
>>>> On 4/28/2017 6:51 PM, Adam Inglis wrote:
>>>>> I have a printed copy of the DCB spec somewhere if you need it (I’m still using it for my JP-8).
>>>>> Also there is some info in the service manual for the JSQ-60 sequencer, and if memory serves, the OP8-M add on for the MC-4.
>>>>> 
>>>>> AI
>>>>> On 29 Apr 2017, at 1:44 AM, MTG <grant at musictechnologiesgroup.com> wrote:
>>>>>> I see I have some homework then. This is from memory and there was a Roland document on DCB. I don't know if it was in the Service Notes for one of the synths or one of the PC interfaces (not sure why that would be , but...). I will try and find some info and see if my memory is correct or way off the mark. Anyway, thanks for pointing that stuff out. I'm sure it will be an interesting read.
>>>>>> 
>>>>>> GB
>>>>>> 
>>>>>> On 4/28/2017 1:43 AM, rsdio at audiobanshee.com wrote:
>>>>>>> Reading the Wikipedia page for Roland DCB, I do not see any resemblance to MIDI. Can you explain any way that they're similar, other than being 8-bit codes for keyboards? I'd be curious to see some details.
>>>>>>> 
>>>>>>> I was browsing the MIDI.org site recently, where they mentioned that the first proposal for MIDI was published at an AES convention. As an AES member, I was able to find the paper, and I must admit that I was surprised. The original MIDI proposal was a very different protocol from what we have today. It was more like other 8-bit protocols of the day.
>>>>>>> 
>>>>>>> However, modern MIDI has much more in common with the short-lived original proposal than anything I see in DCB.
>>>>>>> 
>>>>>>> My viewpoint may be skewed (jaded?) because I've seen so many 8-bit protocols over the decades, and have invented several of my own for commercial products for clients. When there is a communication need, it's not too difficult to invent a protocol, especially if you don't need it to last for very long or be compatible with more than a handful of products. Surprisingly, modern processors are still often limited to 8-bit serial links, even though a few processors can handle 24-bit and 32-bit serial protocols. In other words, I think you're giving far too much credit to Roland for DCB.
>>>>>>> 
>>>>>>> However, I do have a strong suspicion that the differences between the first MIDI proposal and the final 1.0 spec were due to the input of companies like Roland. Not that DCB was spliced onto MIDI 1.0, but that MIDI 1.0 was more like what Roland wished they had done, and was a result of several manufacturers learning curve from their own proprietary protocols.
>>>>>>> 
>>>>>>> Brian
> 
> 
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org
> http://synth-diy.org/mailman/listinfo/synth-diy
> 





More information about the Synth-diy mailing list