neil's webbly world

me@njohnson.co.uk
Academic Pages
  

Roland W-30 Information

This is my little trove of technical information on the Roland W-30 Music Workstation.

Contents


Floppy Disk


Here are details regarding the structure of W-30 floppy disks and the floppy disk hardware.

DISK FORMAT

This information is based on that of Marc Resibois (mr@nit.be), from January 1995

The basic format is:

Sides2
Densitydouble
Sectors per track9
Bytes per sector512
Tracks80

This sets the maximum capacity of each disk to:

512 * 9 * 2 * 80 = 737,280 bytes (720k)

The byte offset figures are derived from the disk images created by SDISK. This appears to store the data as track 1, side 0, track 1, side 1, track 2, side 0, track 2, side 1, etc. The following formula converts disk coordinates into byte offsets:

byte offset = 4608 * (2 * track + side) + 512 * (sector - 1)

Where:

side
0,1
track
0..79
sector
1..9

TONE PARAMETERS

Location: Side 1, Track 7, Sector 1->8 (byte offset 0x10E00)

128 bytes per tone ... should be pretty much like the S-550

TONE DIRECTORY

Location: Side 1, Track 7, Sector 9 (byte offset 0x11E00)

16 bytes per tone

OffsetSizeFieldRemarks
08Name 
81Output #Often 0
91Sub-tone #indicates the parent subtone number
101Sub-tone flag1 if tone is subtone, otherwise 0
111Rate flag1 if rate=15khz, 0 if rate=30kHz
121Org keyKey where sample is recorded (midi number?)
131RAM #0 if RAM A, 1 if RAM B, 2 if unused
141Data positionUsed to determine where the sample data starts (0..17)
151Data sizeNumber of data blocks (1..18)

There is room for 32 tones in the tone directory, and hence 32 separate samples on each disk.

SAMPLE DATA

Location: Side 0, Track 8, Sector 0 (byte offset 0x12000).

The location of the first tracks containing the sample data can be computed using the following formula :

    Track = 8 + 2 * (Data Position) + 36 * (RAM number)
    Side = 0
    Sector = 1

And is in the following order :

  • Track i
    • Side 0
      • Sector 1,2,...9
    • Side 1
      • Sector 1,2,...9
  • Track i+1
    • Side 0
    • ... and so on

It is stored in chunks of 12,288 samples (18,432 bytes), with each unit made of 2 tracks. This gives:

2 tracks * 2 sides * 9 sectors * 512 bytes per sector = 18342 bytes.

Since the samples are 12-bits, 2 samples are stored in 3 bytes:

Byte 1 2 3
Nibble H1L1 H2L2 H3L3

The two samples values are then assembled as:

Sample 1 2
Nibble H1L1 H2H3 L3L2

At the higher sampling rate (30kHz) this is equivalent to 0.4096 seconds, or 0.8192 seconds at the slower rate (15kHz).

The largest sample size is 18 blocks, which equates to 7.2 seconds of high-rate data, or 14.4 seconds of low-rate data per RAM bank. In total, 14.4 seconds of high-rate data can be stored per disk, split between the two RAM banks.

DISK FILES and the PC

The influence of the great WWWeb means there are now several sites carrying W-30 disk images, for both the OS and sound/patch disks. Unfortunately, the W-30 does not use a DOS-style disk file system, so DOS cannot read or write these disks directly. So how do we read or write W-30 disks on the PC?

The answer which is most often quoted is to use one the several disk image transfer programs. Roland supply one program -- SDISK -- that wil accomplish this. There are several others. But, all these programs are either DOS or Windows programs, and require you to interact with them in some way. Tedious...

Enter Linux (my main desktop operating system). Fortunately, the disk images generally available are direct sector dumps. Which means we can use the Linux dd utility to do a direct binary transfer of the image file to a formatted 720k disk. The following command will do this directly:

dd bs=512 if=filename of=/dev/fd0D720

You need to supply filename, the name of the W-30 image file you've just downloaded (or from an archive, or whatever). The if= specifies this as the in-file. Conversely, the of= specifies the out-file; in this case the device file associated with writing to floppy disk 0 at double-density 720k format (hence the name). Finally, we tell dd the block size with bs=512. Run that and wait.

When completed, dd prints out the number of blocks read (1,440) and the number of blocks written (1,440). Done.

DISK DRIVE

The original disk drive in the W-30 is a Chinon Model FX-354 (well, it is in mine anyway). But, like any mechanical component, it wil eventually fail. Which leaves three options:

  • Buy a replacement drive from Roland
  • Refurbish your old drive
  • Find an alternative

Apparently, the Roland option is expensive, but at least you're guaranteed a manufacturer-approved model.

The second option is only available if you know a company who does this sort of thing.

The third option is probably the most viable these days. You can either go to a specialist company selling drives specific to the W30 (e.g., Route 66 Studios). Or you can hunt around for a replacement yourself. Lars Esser has found a compatible drive in the Teac FD-235HF-A259, and it also has a black front panel.

Apparently the two main problems with standard PC drives are that they are hardwired to Drive Select 1 (drive A:) and they generate a disk change signal instead of a ready signal. Either a drive which allows you to change this, or modify the drive cable accordingly. The Casio FZ-1 also has this issue -- there's more information here which goes into considerable detail about the differences between the PC-style disk interface, and the traditional Shugart-style disk interface, and how to connect the two together. Its actually a very good site, with lots of other useful information too! Browse around the other pages (especially the Ensoniq ones).

Lars has provided further clarification of the W-30's disk drive requirements. Apparently, normal PC floppy drives (especially all drives you can buy in the stores these days) do not work because of the following two reasons:

  • They are fixed to Drive Select 1 -- drive B: in a PC. A twist in the drive cable then makes them appear to be drive A: A W-30 drive is the opposite -- it would look like drive A: untwisted and drive B: twisted. The correct connection would then be to use a twisted cable with a PC drive, i.e. use a standard PC drive cable with the twist in it. These cables should be easily available from any computer shop.
  • Pin 34 is the DISK CHANGE signal. The W-30 has DISK CHANGE at pin 2 and READY at pin 34, so you need to move the drive's pin 34 to pin 2 for the W-30.

These things can be set by jumpers on the mentioned TEAC Industrial PC drive, and has been proven to work in a W-30.

Modern disk drives do not have any jumpers left. You might be lucky and find a PC-drive from the early 1990s or even earlier where the 3.5-inch floppies were drive B: Some of those early drives had jumpers to set things like Drive Select and RC/DC-Signal.

The Pin 34 and Pin 2 problem could be solved by different wiring. The remaining problem is the Drive Select 0/1 issue.

If you do need a replacement then I suggest trawling through eBay and similar -- in the last few days there have been a few Teac drives on eBay, so they are out there!

FLOPPY DISK CONTROLLER

The floppy disk controller (FDC) in the W-30 is a Western Digital WD1772, the same controller as used in the Atari ST, Ensoniq SQ80, the Commodore 1570/1571 and 1581 disk drives, the Acorn BBC and Master series computers, and Andre Fachat's CS/A65 6502-based homebrew computer system.

WD177x datasheet (1.7MB)

Hack: the standard 1772 circuit uses an 8MHZ clock (its only rated up to 10MHz) and handles 720k-capacity double-density disks. But, apparently (according to the ST/STE guys) the "02-02" versions of the FDC can be overclocked to 16MHz, which then allows it to handle higher density 1.44M disks. But, this needs to be switched back to 8MHz for double-density disks. Guess which version of the chip is in my W-30? Go on, guess!! :-)

Its pinout is shown below:

WD1772 pinout

.


Copyright © 2001-2024 Neil Johnson