Description | Jupiter-8 Data Stream | Juno-60 Data Stream | Hardware Solution | Interconnecting Cables
DCB is the abbreviation for the Digital Communication Bus. This kind of interconnecting between devices was created by Roland in early eighties. Any Roland products were provided with the ability of controlling by DCB. The DCB is the MIDI predecessor – DCB and MIDI communication have many common parameters. Some different devices (e.g. sequencers, microcomposers, converters, Juno-60 and Jupiter-8 synths) can communicate via DCB. The DCB works in both directions, the data are simultaneously transmitted and received by any device.
DCB is the serial bus with the asynchronous communication (DATA signal) and with the hardware data-flow control (BUSY ignal). The CLOCK signal for UART receiver is generated by transmitter (see fig. 6.). Communication rate is 31250 Bd – the same as in MIDI communication. The course of signals is shown on fig. 1. The data transfer starts by start-bit, then the transfer continues by eight data-bits, odd-parity-bit and two stop-bits.
Fig. 1 – DCB signals
Fig. 2 – Data block
The data-bytes are transmitted in blocks (fig. 2) that are started by the “Identifier” byte. This byte is analogy of the Status Byte in MIDI communication. The value of Identifier can be from F1h up to FFh, the value of data-byte can be from 00h up to F0h. All valid values of Identifier are not used. Only these have been defined:
Fig. 3 – Data byte for “Key Code” Identifier
The “Key Code” Identifier (fig. 3) is transfered before the data bytes that define which of voice generators should be active and it`s frequency. The quantity of data bytes is the same as the number of voice generators of instrument (Jupiter-8 has eight voices, Juno-60 has six voices). The most significant bit (named “Gate”) of each data byte controls the activity of voice generator (0 = off, 1 = on), other bits (named “Key Number”) define the frequency (tone) of voice generator – see fig. 3. The control of voice generators by the databytes is different for each kind of device – see below. The “Key Numbers” for 5-octaves keyboard are described in table commonly with corresponding frequencies of voice generators:
|Key Nr.||Tone||Key Nr.||Tone|
|18h||C / 65,7 Hz||37h||g1 / 393,8 Hz|
|19h||C# / 69,6 Hz||38h||g#1 / 417,2 Hz|
|1Ah||D / 73,7 Hz||39h||a1 / 442,0 Hz|
|1Bh||D# / 78,1 Hz||3Ah||a#1 / 468,3 Hz|
|1Ch||E / 82,8 Hz||3Bh||b1 / 496,1 Hz|
|1Dh||F / 87,7 Hz||3Ch||c2 / 525,6 Hz|
|1Eh||F# / 92,9 Hz||3Dh||c#2 / 556,9 Hz|
|1Fh||G / 98,4 Hz||3Eh||d2 / 590,0 Hz|
|20h||G# / 104,3 Hz||3Fh||d#2 / 625,1 Hz|
|21h||A / 110,5 Hz||40h||e2 / 662,3 Hz|
|22h||A# / 117,1 Hz||41h||f2 / 701,6 Hz|
|23h||B / 124,0 Hz||42h||f#2 / 743,4 Hz|
|24h||c / 131,4 Hz||43h||g2 / 787,6 Hz|
|25h||c# / 139,2 Hz||44h||g#2 / 834,4 Hz|
|26h||d / 147,5 Hz||45h||a2 / 884,0 Hz|
|27h||d# / 156,3 Hz||46h||a#2 / 936,6 Hz|
|28h||e / 165,6 Hz||47h||b2 / 992,3 Hz|
|29h||f / 175,4 Hz||48h||c3 / 1051,3 Hz|
|2Ah||f# / 185,8 Hz||49h||c#3 / 1113,8 Hz|
|2Bh||g / 196,9 Hz||4Ah||d3 / 1180,0 Hz|
|2Ch||g# / 208,6 Hz||4Bh||d#3 / 1250,2 Hz|
|2Dh||a / 221,0 Hz||4Ch||e3 / 1324,5 Hz|
|2Eh||a# / 234,1 Hz||4Dh||f3 / 1403,3 Hz|
|2Fh||b / 248,1 Hz||4Eh||f#3 / 1486,7 Hz|
|30h||c1 / 262,8 Hz||4Fh||g3 / 1575,1 Hz|
|31h||c#1 / 278,4 Hz||50h||g#3 / 1668,8 Hz|
|32h||d1 / 295,0 Hz||51h||a3 / 1768,0 Hz|
|33h||d#1 / 312,5 Hz||52h||a#3 / 1873,1 Hz|
|34h||e1 / 331,1 Hz||52h||b3 / 1984,5 Hz|
|35h||f1 / 350,8 Hz||54h||c4 / 2102,5 Hz|
|36h||f#1 / 371,7 Hz|
The data block started by “Patch Code” Identifier always contains only one data byte. This byte defines which sound (program) is selected.
The “End Mark” Identifier is of special significance. It is not located on the start of data block but it closes the data block which is started by “Key Code” Identifier – see description of Jupiter-8 communication.
The Jupiter-8 synthesizer recognizes “Key Code” Identifier with eight data bytes in the same data block (the instrument has eight voices). Jupiter-8 has fixed assignment of voice generators – if it already knows all of he possible eight tones, all other attempts to activate the generator are ignored.
Jupiter-8 also recognizes “Patch Code” Identifier. Only one data byte is transfered after “Patch Code” Identifier, the value of this data byte defines the number of selected program (sound) directly.
The data received from DCB are recognized as the data from second keyboard (or control panel respectively) which is parallely connected to the keyboard (or control panel respectively) of instrument itself. The tone generators (or program changes respectively) are then controlled by the logical sum of both data sources. The result of data sum is also sent to DCB interface output.
The data blocks are transfered by two kinds of data flow. Firstly, the data blocks are transfered block by block (the Identifier of next data block is transfered after the last data byte of previous data block) if the rate of the status changes is relatively high. Secondly, the last data block is transfered repeatedly (in cycle), but the “End Mark” Identifier is inserted to the end of each data block. The measure with lenght about 100 ms is inserted to the data flow between the cycles in this case. The “End Mark” Identifier informs the instrument that the data block is ended and the voice generators can be activated or the program can be changed. The data flow is shown on fig. 4.
Fig. 4 – Data flow for Jupiter-8
Juno-60 synthesizer recognizes only “Key Code” Identifier so there is only possibility to start and to stop the voice generators of instrument via DCB. There is no possibility to change the programs. The data blocks which start by other Identifier than the “Key Code” are ignored by Juno-60. Six data bytes are transfered in data block which is starting by “Key Code” Identifier (Juno-60 has six voices). But Juno-60 can receive more than six data bytes in one data block because it includes the “voice rotation” function. The CPU of instrument controls the voice generators with the priority of last preceding key in this case.
The data received from DCB are recognized as the data from second keyboard which is parallely connected to the keyboard of instrument itself. The tone generators are then controlled by the logical sum of both keyboards. The result of data sum is also sent to DCB output.
The data blocks are transmitted (or received) in cycle block by block. No measures or “End Mark” Identifiers are used as in Jupiter-8 communication. The data flow is shown on fig. 5.
Fig. 5 – Data flow for Juno-60
The special integrated circuits UART (8251A type) are used in most of DCB devices. This component converts the parallel 8-bit bus of CPU to asynchronous serial bus and in opposite direction too (fig. 6). The UART includes the circuits for hardware data-flow control (RTS/CTS, DTR/DSR). The inverters are connected to outputs of UART. The input signals are connected to UART inputs via the Schmitt inverters. It means that all signals on DCB interface are inverted in opposite with the standard serial communication (see fig. 7). No voltage or current converters are used on in/out signals – the TTL logic voltage levels of output invertors are used for the transfer directly.
Fig. 6 – DCB units interconnecting
Fig. 7 – Juno-60 hardware solution
The interconnecting cables for Juno-60 and Jupiter-8 are different because Jupiter-8 enables the voltage control of its VCO, VCF, VCA and Juno-60 does not support this control. If you do not want to use the voltage control for Jupiter-8, it is possible to use the seven-wires cable only. You can use both types of cables for Juno-60 interconnecting. The pins from #8 to #14 are not connected on DCB connector of Juno-60. The meaning of wires in cables is descripted below:
|1||Busy / Rx|
|2||Data / Rx|
|3||Clock / Rx|
|5||Busy / Tx|
|6||Data / Tx|
|7||Clock / Tx|
|9||VCA / Lower|
|10||VCA / Upper|
|11||VCF / Lower|
|12||VCF / Upper|
|13||VCO / 2|
|14||VCO / 1|