[sdiy] DCB Spec

S Ridley spridley1 at gmail.com
Sun Apr 30 23:21:27 CEST 2017


There was also an early Yamaha protocol too, called "Keycode", but this
seems to have been a basic parallel system sending key pressed data.  Used
on the CS70m, SK30, SK50D and CP35.  There's a bit about it in the CP35
manual, p15 onwards.  It seems even less sophisticated than DBC or USI.

Steve

(20 yrs mainly lurking)

On 30 April 2017 at 10:07, <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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20170430/08edb82f/attachment.htm>


More information about the Synth-diy mailing list