TAB=6 SYS-772 Ver.2.0 for S-750/770 Hard Disk/MO Disk/DC-ROM Format Manual revision 1.00 May 7, 1991 Copyright 1991. (C) R&D J-1 Roland Electronics Corp. [ 1] Definitions 1 block = 512 bytes 1 cluster = 18 blocks (512 * 18 = 9216 bytes) [ 2] Table of area of HD/MO/CD-ROM start lock(Hex) ----------------------------------------------------------------- 1. ID area 0000 - 2. Reserved area work (work area for device check 0001 - 0003 3. System Program area 0004 - 0403 4. FAT (File Allocation Table) area 0404 - 0503 5. Directory area - Volume files 0504 - 050B - Performance files 050C - 052B - Patch files 052C - 056B - Partial files 056C - 066B - Sample files 066C - 086B 6. Parameter area - Volume files 086C - 08AB - Performance files 08AC - 0AAB - Patch files 0AAC - 0EAB - Partial files 0AEC - 12AB - Sample files 12AC - 15AB 7. Wave Data area 15AC - [ 3] ID area 0000 - Start: 0000_0000 block / lenght 0000_0001 block ----------------------------------------------------------------- (block/offset) 0000/000h: .byte 00h,00h,00h,00h 0000/004h: .byte 'S770 MR25A',00h,20h 0000/010h: .byte ' ',FEh 0000/020h: .byte 'S-770 Hard Disk Ver. X.XX ',FEh 0000/040h: .byte ' Copyright Roland ',FEh 0000/060h: (reserved FFh) (160 byte) 0000/100h: Hard Disk name ( Drive name ) ( 16 byte) 0000/110h: Hard Disk capacity ( 4 byte) 0000/114h: file number of volume ( 2 byte) 0000/116h: file number of performance ( 2 byte) 0000/118h: file number of patch ( 2 byte) 0000/11Ah: file number of partial ( 2 byte) 0000/11Ch: file number of sample ( 2 byte) 0000/11E4h: ( reserved FFh ) (226 byte) [ 4] Reserved area (work area for device check) 0001 - 0003 Start: 0000_0001 block / lenght 0000_0003 block ----------------------------------------------------------------- *) work area for device check ( read or write ) [ 5] System Program area 0004 - 0403 Start: 0000_0004 block / lenght 0000_0400 block ----------------------------------------------------------------- *) You should not write this area without the S-770/S-750 !! [ 6] FAT (File Allocation Table) area 0404 - 0503 Start: 0000_0404 block / lenght 0000_0100 block ----------------------------------------------------------------- FAT[ 0] = FFFAh (reserved) FAT ID FAT[ 1] = FAT remain (*1) FAT[ 2] = next FAT or FFF8h (FAT end) FAT[ 3] = next FAT or FFF8h (FAT end) FAT[FFF4] = next FAT or FFF8h (FAT end) FAT[FFF5] = next FAT or FFF8h (FAT end) FAT[FFF6] = FFF8h (FAT end) FAT[FFF7] = FFFFh FAT[FFF8] = FFFFh FAT[FFF9] = FFFFh FAT[FFFA] = FFFFh FAT[FFFB] = FFFFh FAT[FFFC] = FFFFh FAT[FFFD] = FFFFh FAT[FFFE] = FFFFh FAT[FFFF] = FFF?h (*2) Format type (Ver.1.0/Ver.2.0) (65536 - 11) * 18 * 512 = 603,878,400 byte Max (*) FAT entry 0000h Free (Not use) 0001h Reserved 0002h - FFF6h FAT chai FFF7h Error Cluster FFF8h - FFFFh End Cluster (*1) Total number of Free (Not used) Clusters. (*2) In case of 'FFFFh', Ver.1.0 Format In case of 'FFFEh', Ver.2.0 Format, using Link pointer in Directory area. [ 7] Directory area 0504 - 086B +Volume Directory. Volume: 128 Start: 0000_0504 block / lenght 0000_0008 block ----------------------------------------------------------------- (block/offset) 0504/000h: Volume - 1 Directory ( 32 byte) 0504/020h: Volume - 2 Directory ( 32 byte) 0504/040h: Volume - 3 Directory ( 32 byte) 0504/060h: Volume - 4 Directory ( 32 byte) 0504/080h: Volume - 5 Directory ( 32 byte) .. .. .. 050B/1E0h: Volume -128 Directory ( 32 byte) +Performance Directory. Performance: 512 Start: 0000_050C block / lenght 0000_0020 block ----------------------------------------------------------------- (block/offset) 050C/000h: Performance - 1 Directory ( 32 byte) 050C/020h: Performance - 2 Directory ( 32 byte) 050C/040h: Performance - 3 Directory ( 32 byte) 050C/060h: Performance - 4 Directory ( 32 byte) 050C/080h: Performance - 5 Directory ( 32 byte) .. .. .. 052B/1E0h: Performance -512 Directory ( 32 byte) +Patch Directory. Patch: 1024 Start: 0000_052C block / lenght 0000_0040 block ----------------------------------------------------------------- (block/offset) 052C/000h: Patch - 1 Directory ( 32 byte) 052C/020h: Patch - 2 Directory ( 32 byte) 052C/040h: Patch - 3 Directory ( 32 byte) 052C/060h: Patch - 4 Directory ( 32 byte) 052C/080h: Patch - 5 Directory ( 32 byte) .. .. .. 056B/1E0h: Patch -1024 Directory ( 32 byte) +Partial Directory. Partial: 4096 Start: 0000_056C block / lenght 0000_0100 block ----------------------------------------------------------------- (block/offset) 056C/000h: Partial - 1 Directory ( 32 byte) 056C/020h: Partial - 2 Directory ( 32 byte) 056C/040h: Partial - 3 Directory ( 32 byte) 056C/060h: Partial - 4 Directory ( 32 byte) 056C/080h: Partial - 5 Directory ( 32 byte) .. .. .. 066B/1E0h: Partial -4096 Directory ( 32 byte) +Sample Directory. Sample: 8192 Start: 0000_066C block / lenght 0000_0200 block ----------------------------------------------------------------- (block/offset) 066C/000h: Sample - 1 Directory ( 32 byte) 066C/020h: Sample - 2 Directory ( 32 byte) 066C/040h: Sample - 3 Directory ( 32 byte) 066C/060h: Sample - 4 Directory ( 32 byte) 066C/080h: Sample - 5 Directory ( 32 byte) .. .. .. 086B/1E0h: Sample -8192 Directory ( 32 byte) (*) Directory Format +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 000 | Name ( 16 byte in ASCII) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 010 |(1)|(2)| (5) | (6) | (7) | (X) | (3) | (4) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ (1) = File type. 40h = Volume 41h = Performance 42h = Patch 43h = Partial 44h = Sample (2) = File attribution (ignore) bit 0 ... Write Protect bit 1 ... Read Only bit 2 ... bit 3 ... bit 4 ... bit 5 ... bit 6 ... bit 7 ... (3) = FAT entry (only Sample file) (4) = File capacity (number of total clusters, only Sample) (5) = Forward Link pointer 0000h ; in case of Ver.1.0 format 8000h + N ; to #N file FFFFh ; end of list (this file is the bottom of list) (6) = Backward Link pointer 0000h ; in case of Ver.1.0 format 8000h + N ; to #N file FFFFh ; end of list (this file is the top of list) (7) = Link Number (8) = Program Change number (for Volume and Performance) 00h ; in case of Ver.1.0 format 80h + N ; Program Change number = N (X) = Reserved 00h (**) The top of the file name in case of '00h', this file is virginal one in case of 'FEh', this file was deleted [ 8] Parameter area 086C - 15AB +Volume Parameter. Volume: 128 Start: 0000_086C block / lenght 0000_0040 block ----------------------------------------------------------------- (block/offset) 086C/000h: Volume - 1 Parameter (256 byte) 086C/100h: Volume - 2 Parameter (256 byte) 086D/000h: Volume - 3 Parameter (256 byte) 086D/100h: Volume - 4 Parameter (256 byte) 086E/000h: Volume - 5 Parameter (256 byte) .. .. .. 08AB/100h: Volume -128 Parameter (256 byte) (*) Parameter area format for Volume +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 000 | Volume Name ( 16 byte in ASCII) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 010 |(1)|(2)| (5) | (6) | (7) | (X) | (3) | (4) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 020 | | + + .. | Performance List ( 2 * 64 = 128 byte ) | .. | point to Performance in Disk | + + 090 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0A0 | | + + .. | ( Reserved 00h ) | + + 0F0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ (1) = Total number of Performance (ignore) (2) = Total number of Patch (ignore) (3) = Total number of Partial (ignore) (4) = Total number of Sample (ignore) +Performance Parameter. Performance: 512 Start: 0000_08AC block / lenght 0000_0200 block ----------------------------------------------------------------- (block/offset) 08AC/000h: Performance - 1 Parameter (512 byte) 08AD/000h: Performance - 2 Parameter (512 byte) 08AE/000h: Performance - 3 Parameter (512 byte) 08AF/000h: Performance - 4 Parameter (512 byte) 086E/000h: Performance - 5 Parameter (512 byte) .. .. .. 0AAB/000h: Performance -512 Parameter (512 byte) (*) Parameter area format for Performance +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 000 | | + + .. | Performance Parameter ( 256 byte ) | .. | (*) see [10] Parameter Map | + + 0F0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 100 | | + + .. | Patch List ( 2 * 32 = 64 byte ) | .. | point to Patch# in Disk | + + 130 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 140 | | + + .. | ( Reserved 00h ) | + + 1F0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +Patch Parameter. Patch: 1024 Start: 0000_0AAC block / lenght 0000_0400 block ----------------------------------------------------------------- (block/offset) 0AAC/000h: Patch - 1 Parameter (512 byte) 0AAD/000h: Patch - 2 Parameter (512 byte) 0AAE/000h: Patch - 3 Parameter (512 byte) 0AAF/000h: Patch - 4 Parameter (512 byte) 0A6E/000h: Patch - 5 Parameter (512 byte) .. .. .. 0EAB/000h: Patch -1024 Parameter (512 byte) (*) Parameter area format for Patch +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 000 | | + + .. | Patch Parameter ( 256 byte ) | .. | (*) see [10] Parameter Map | + + 0F0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 100 | | + + .. | Patch List ( 2 * 88 = 176 byte ) | .. | point to Partial# in Disk | + + 1A0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 1B0 | | + + .. | ( Reserved 00h ) | + + 1F0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +Partial Parameter. Partial: 4096 Start: 0000_0EAC block / lenght 0000_0400 block ----------------------------------------------------------------- (block/offset) 0EAC/000h: Partial - 1 Parameter (128 byte) 0EAC/080h: Partial - 2 Parameter (128 byte) 0EAC/100h: Partial - 3 Parameter (128 byte) 0EAC/180h: Partial - 4 Parameter (128 byte) 0EAD/000h: Partial - 5 Parameter (128 byte) .. .. .. 12AB/180h: Partial -4096 Parameter (128 byte) (*) see [10] Parameter Map +Sample Parameter. Sample: 8192 Start: 0000_12AC block / lenght 0000_0300 block ----------------------------------------------------------------- (block/offset) 12AC/000h: Partial - 1 Parameter ( 48 byte) 12AC/030h: Partial - 2 Parameter ( 48 byte) 12AC/060h: Partial - 3 Parameter ( 48 byte) 12AC/090h: Partial - 4 Parameter ( 48 byte) 12AD/0C0h: Partial - 5 Parameter ( 48 byte) .. .. .. 15AB/1D0h: Partial -8192 Parameter ( 48 byte) (*) see [10] Parameter Map [ 9] Wave Data area 15AC - Start: 0000_15AC block / lenght XXXX_XXXX block ----------------------------------------------------------------- + 40M Hard Disk (Total 82,755 blocks = 42,370,560 byte) ( 82,755 - 5,548) / 18 = 4,289 (10C1h) Cluster + 80M Hard Disk (Total 156,370 blocks = 80,061,440 byte) (156,370 - 5,548) / 18 = 8,379 (20BBh) Cluster + 300M MO Disk (Total 542,618 blocks = 277,820,416 byte) (542,618 - 5,548) / 18 = 29,837 (748Dh) Cluster [10] Paramater Map + Performance Parameter ( 256 byte) ----------------------------------------------------------------- 0 1 2 3 4 5 6 7 8 9 A B C D E F +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 000 | Performance Name ( 16 byte in ASCII ) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 010 | | + Patch Sel ( Part 1-32 ) + 020 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 030 | MIDI Channel (*1) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 040 | | + Part Level (*1) + 050 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 060 | | + Part Zone Lower + 070 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 080 | | + Part Zone Upper + 090 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0A0 | | + Lower Fade Width + 0B0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0C0 | | + Upper Fade Width + 0D0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0E0 | (1) | (2) | (3) | (4) | (5) | (6) | (7) | (8) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0F0 | Velocity Curve Type | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ (1) = Program Change (0=Off/1=On, bit image) (2) = Pitch Bend (0=Off/1=On, bit image) (3) = Modulation (0=Off/1=On, bit image) (4) = Hold Pedal (0=Off/1=On, bit image) (5) = Bend Range (0=Off/1=On, bit image) (6) = MIDI Volume (0=Off/1=On, bit image) (7) = After Touch Switch (0=Off/1=On, bit image) (8) = After Touch Mode (0=Channel/1=Poly, bit image) (*1) MIDI Channel, Part Level ADRS 030h lower 4 bit = Part - 1 MIDI Channel ADRS 030h upper 4 bit = Part - 2 MIDI Channel ............................................. ADRS 03Fh lower 4 bit = Part -31 MIDI Channel ADRS 03Fh upper 4 bit = Part -32 MIDI Channel ADRS 040h bit7 = Part - 1 MIDI Channel Off/On Switch (0=Off/1=On) ADRS 040h lower 7 bit = Part - 1 Level ADRS 041h bit7 = Part - 2 MIDI Channel Off/On Switch (0=Off/1=On) ADRS 041h lower 7 bit = Part - 2 Level ...................................... + Patch Parameter ( 256 byte) ----------------------------------------------------------------- 0 1 2 3 4 5 6 7 8 9 A B C D E F +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 000 | Patch Name ( 16 byte in ASCII ) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 010 |(1)|(2)|(3)|(4)|(5)|(6)|(7)|(8)|(9)|(A)|(B)|(C)|(D)|(I)|(J)|(X)| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 020 | | + Partial Sel ( 88key ) + 030 | | | | + +---+---+---+---+---+---+---+---+ 070 | | ( reserved ) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 080 | | + Assign Type ( 88key ) + 090 | | | | + +---+---+---+---+---+---+---+---+ 0D0 | | ( reserved ) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0E0 | Bender(C) | After Touch (F) | Modulation (G)(X) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0F0 | Controller (H) | ( reserved ) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ (1) = Program Change # (2) = Stereo MIX Level (3) = Total Pan (4) = Patch Level (5) = Output Assign (8outs Mode) (6) = Priority (7) = CutOff (8) = Velocity Sens (9) = Octave Shift (A) = Coarse Tune (B) = Fine Tune (C) = SMT Ctrl sel (D) = SMT Ctrl Sens (E) = Bender 0E0: = Pitch Ctrl Up 0E1: = Pitch Ctrl Down 0E2: = TVA Ctrl 0E3: = TVF Ctrl (F) = After Touch 0E4: = Pitch Ctrl 0E5: = TVA Ctrl 0E6: = TVF Ctrl 0E7: = LFO Rate Ctrl 0E8: = LFO Pitch Ctrl 0E9: = LFO TVA Depth 0EA: = LFO TVF Depth (G) = Modulation 0EB: = LFO Rate Ctrl 0EC: = LFO Pitch Ctrl 0ED: = LFO TVA Depth 0EE: = LFO TVF Depth (H) = Controller 0F0: = Control # 0F1: = Pitch Ctrl 0F2: = TVA Ctrl 0F3: = TVF Ctrl 0F4: = LFO Rate Ctrl 0F5: = LFO Pitch Ctrl 0F6: = LFO TVA Depth 0F7: = LFO TVF Depth (I) = Out Assign (8outs Mode) (J) = Analog Feel (X) = 00h + Partial Parameter ( 128 byte) ----------------------------------------------------------------- 0 1 2 3 4 5 6 7 8 9 A B C D E F +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 000 | Partial Name ( 16 byte in ASCII ) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 010 | Sample 1 (C) |(X)|(1)|(2)|(3)|(4)| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 020 | Sample 2 (C) |(X)|(5)|(6)|(7)|(8)| +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 030 | Sample 3 (C) | (reserved) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 040 | Sample 4 (C) | | +---+---+---+---+---+---+---+---+---+---+---+ + 050 | TVF (9) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 060 | TVA (A) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 070 | LFO Generator (B) | (reserved) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ (1) = Output Assign (8outs Mode) (2) = Stereo MIX Level (3) = Partial Level (4) = Output Assign (6outs Mode) (5) = Pan (6) = Coarse Tune (7) = Fine Tune (8) = Breath Ctrl (9) = TVF 04B: = Filter Mode 056: = Time 1 04C: = CutOff 057: = Time 2 04D: = Resonance 058: = Time 3 04E: = Velocity Curve Type 059: = Time 4 (R) 04F: = Velocity Curve Ratio 05A: = ENV TVF Depth 050: = Time Velocity Sens 05B: = ENV Pitch Depth 051: = CutOff Velocity Sens 05C: = TVF KF Point 052: = Level 0,4 05D: = ENV Time KF 053: = Level 1 05E: = ENV Depth KF 054: = Level 2 05F: = CutOff KF 055: = Level 3 (S) (A) = TVA 060: = Velocity Curve Type 068: = Time 2 061: = Velocity Curve Ratio 069: = Time 3 062: = Time Velocity Sens 06A: = Time 4 (R) 063: = Level 0,4 06B: = (reserved) 064: = Level 1 06C: = TVA KF Point 065: = Level 2 06D: = ENV Time KF 066: = Level 3 06E: = (reserved) 067: = Time 1 06F: = Level KF (B) = LFO Generator 070: = Wave Form 075: = Detune 071: = Rate 076: = Pitch 072: = Key sync 077: = TVF Mod Depth 073: = Delay 078: = TVA Mod depth 074: = Delay KF (C) = Sample 1 - 4 offset 000: = Sample Sel (word) offset 001: = Pitch KF offset 002: = Sample Level offset 003: = Pan offset 004: = Coarse Tune offset 005: = Fine Tune offset 007: = SMT Velocity Lower offset 008: = SMT Lower Fade Width offset 009: = SMT Velocity Upper offset 00A: = SMT Upper Fade Width (X) = 00h + Sample Parameter ( 48 byte) ----------------------------------------------------------------- 0 1 2 3 4 5 6 7 8 9 A B C D E F +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 000 | Sample Name ( 16 byte in ASCII ) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 010 | Start point | S-Loop point | S-Loop point | R-Loop point | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 020 | R-Loop point |(1)|(2)|(3)|(4)|seg top|seg len|(5)|(6)| (7) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ (1) = Loop Mode (2) = S-Loop Enable (3) = S-Loop Tune (4) = R-Loop Tune (5) = Sample Frequency / Sample Mode (6) = Original Key (7) = (ignore) * start/loopl/endl/loop2/end2 offset 000: fine offset 000: address LSB offset 000: address offset 000: address MSB * seg top 0 - segment top number * seg len 1 - segment length