VOGONS


About Roland Virtual Sound Canvas 3

Topic actions

Reply 60 of 375, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie

SC55 Sound bank of VSC 2.x has "226 Tones + 9 Drumsets". That coincides exactly with what Microsoft GM.DLS file has - i am attaching picture to show that.
....
I am able to find only 217 tones (216 on my picture as I count from 0) - see the attached picture. That's another unexpected thing - maybe I missed something obvious - anyway as next step I will need to compare my list and the list I got from MS GM.DLS to see which 9 "tones" I am missing and why, i.e. where they are to be found in SC55 VSC 2.x Sound Bank.

Hi,
I do not want to be a party killer but you have not found 217 tones. Everything on your picture starting from '169: High Q' are part of the 9 Drumsets and not the 226 tones. If you inspect the names carefully you should recognize the individual drum sounds that make a drumset (such as Hi-hats, Cymbals, Kick drums, Snares, Congas etc.).
According to GM specification (and also in GS) in case of channel 10 every single note represent an individual drum sound, not the same sound/instrument on different pitches.
In GM (and in GS Standard drumset) these individual drum sounds are the following ( they can be reached from note 35 to note 81):

35 Acoustic Bass Drum
36 Electric Bass Drum
37 Side Stick
38 Acoustic Snare
39 Hand Clap
40 Electric Snare
41 Low Floor Tom
42 Closed Hi-hat
43 High Floor Tom
44 Pedal Hi-hat
45 Low Tom
46 Open Hi-hat
47 Low-Mid Tom
48 Hi-Mid Tom
49 Crash Cymbal 1
50 High Tom
51 Ride Cymbal 1
52 Chinese Cymbal
53 Ride Bell
54 Tambourine
55 Splash Cymbal
56 Cowbell
57 Crash Cymbal 2
58 Vibra Slap
59 Ride Cymbal 2
60 High Bongo
61 Low Bongo
62 Mute High Conga
63 Open High Conga
64 Low Conga
65 High Timbale
66 Low Timbale
67 High Agogô
68 Low Agogô
69 Cabasa
70 Maracas
71 Short Whistle
72 Long Whistle
73 Short Guiro
74 Long Guiro
75 Claves
76 High Woodblock
77 Low Woodblock
78 Mute Cuica
79 Open Cuica
80 Mute Triangle
81 Open Triangle

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 61 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

hi Falcosoft,

not a party killer at all, actually very valuable comment. Could you please, help and define what is supposed to be tone, what is supposed to be instrument, because as I mentioned here:

Re: About Roland Virtual Sound Canvas 3

I am confused by the terms used by Roland and Microsoft?

Other than that - you're totally correct '169: High Q' (and all the rest after it) is not in the list from GM.DLS of those 226 "instruments" as Microsoft call them (and Roland call them "tones" in the GUI of VSC).

So, yeah, that spoils my 1-to-1 map between VSC SC55 soundbank and MS GM.GLS. I need to look more into it, but first I guess I need to clear my confusion about the definition of the "tone" (by Roland) and "instrument" (by Microsoft).

Reply 62 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

Falconsoft, BTW, if the following definition that combines Roland and Microsoft terms, is correct (I've just came to it), then there is no contradiction:

Definition:
* Instruments (from 0 to 127, total of 128)
* Tones: all instruments from all Midi banks, because same instrument number could be different tone (actually different instrument, but it gets really confusing if i say it like that) in different Midi bank

is that makes sense to you?

[EDIT] Actually, it seems to me, what MS calls "instrument", Roland call "Patch Number" and then everything goes in place like this:

{ "Patch Number", "Bank Number } = Instrument (MS) or tone (Roland)

I see no contradiction, but maybe I am missing again something...

Reply 63 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

OMG, it looks like "block2" data are stored unencrypted in Roland Sound Canvas VA VSTi Plugin - 20 years newer software, but less protected than VSC 1.x from 1996, is that for real?! Also, they are packed the same way I explained here:

Re: About Roland Virtual Sound Canvas 3

Attachments

  • scva.PNG
    Filename
    scva.PNG
    File size
    49.37 KiB
    Views
    1751 views
    File license
    Public domain

Reply 64 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

Falconsoft, I re-check MS GM.DLS - there is no contradiction they count the sounds that form the drumkits as individual instruments (in MS speak). So, it's still correct statement that both GM.DLS and VSC SC55 soundbank have 226 instruments (MS speak) or 226 tones (Roland speak). So, i guess, what i suggested as definition:

{ "Patch Number", "Bank Number } = Instrument (MS) or tone (Roland)

is kind of correct, but it is not accurate when we talk for drumsets. More correct is that by "tone" Roland mean all different { "Patch Number", "Bank Number } (because it's possible to have the same sound on different bank number) sounds plus all different sounds (or tones) that form a drumset. It's something like that, I believe...

Reply 65 of 375, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
mattw wrote on 2020-09-29, 18:40:

Falconsoft, I re-check MS GM.DLS - there is no contradiction they count the sounds that form the drumkits as individual instruments (in MS speak). So, it's still correct statement that both GM.DLS and VSC SC55 soundbank have 226 instruments (MS speak) or 226 tones (Roland speak)...

No, 226 is not correct if drum sounds are included 😀. If full drum sets are included as individual instruments the correct number is 235. These are the patches/instruments from GM.DLS :
(I have just generated this list with one of my programs directly from gm.dls . As you can see there are 226 real/melodic instruments and 9 full drum sets moreover each drum set contains at least ~46 additional drum sounds, but many are shared between different drum sets)

Click to see instrument list

0. Patch:0 Bank:0 Name:Piano 1
1. Patch:0 Bank:8 Name:Piano 1
2. Patch:0 Bank:16 Name:Piano 1d
3. Patch:1 Bank:0 Name:Piano 2
4. Patch:1 Bank:8 Name:Piano 2
5. Patch:2 Bank:0 Name:Piano 3
6. Patch:2 Bank:8 Name:Piano 3
7. Patch:3 Bank:0 Name:Honky-tonk
8. Patch:3 Bank:8 Name:Honky-tonk
9. Patch:4 Bank:0 Name:E.Piano 1
10. Patch:4 Bank:8 Name:Detuned EP 1
11. Patch:4 Bank:16 Name:E.Piano 1v
12. Patch:4 Bank:24 Name:60's E.Piano
13. Patch:5 Bank:0 Name:E.Piano 2
14. Patch:5 Bank:8 Name:Detuned EP 2
15. Patch:5 Bank:16 Name:E.Piano 2v
16. Patch:6 Bank:0 Name:Harpsichord
17. Patch:6 Bank:8 Name:Coupled Hps.
18. Patch:6 Bank:16 Name:Harpsichord
19. Patch:6 Bank:24 Name:Harpsi.o
20. Patch:7 Bank:0 Name:Clav.
21. Patch:8 Bank:0 Name:Celesta
22. Patch:9 Bank:0 Name:Glockenspiel
23. Patch:10 Bank:0 Name:Music Box
24. Patch:11 Bank:0 Name:Vibraphone
25. Patch:11 Bank:8 Name:Vibraphone
26. Patch:12 Bank:0 Name:Marimba
27. Patch:12 Bank:8 Name:Marimba
28. Patch:13 Bank:0 Name:Xylophone
29. Patch:14 Bank:0 Name:Tubular-bell
30. Patch:14 Bank:8 Name:Church Bell
31. Patch:14 Bank:9 Name:Carillon
32. Patch:15 Bank:0 Name:Santur
33. Patch:16 Bank:0 Name:Organ 1
34. Patch:16 Bank:8 Name:Detuned Or.1
35. Patch:16 Bank:16 Name:60's Organ 1
36. Patch:16 Bank:32 Name:Organ 4
37. Patch:17 Bank:0 Name:Organ 2
38. Patch:17 Bank:8 Name:Detuned Or.2
39. Patch:17 Bank:32 Name:Organ 5
40. Patch:18 Bank:0 Name:Organ 3
41. Patch:19 Bank:0 Name:Church Org.1
42. Patch:19 Bank:8 Name:Church Org.2
43. Patch:19 Bank:16 Name:Church Org.3
44. Patch:20 Bank:0 Name:Reed Organ
45. Patch:21 Bank:0 Name:Accordion Fr
46. Patch:21 Bank:8 Name:Accordion It
47. Patch:22 Bank:0 Name:Harmonica
48. Patch:23 Bank:0 Name:Bandoneon
49. Patch:24 Bank:0 Name:Nylon-str.Gt
50. Patch:24 Bank:8 Name:Ukulele
51. Patch:24 Bank:16 Name:Nylon Gt.o
52. Patch:24 Bank:32 Name:Nylon Gt.2
53. Patch:25 Bank:0 Name:Steel-str.Gt
54. Patch:25 Bank:8 Name:12-str.Gt
55. Patch:25 Bank:16 Name:Mandolin
56. Patch:26 Bank:0 Name:Jazz Gt.
57. Patch:26 Bank:8 Name:Hawaiian Gt.
58. Patch:27 Bank:0 Name:Clean Gt.
59. Patch:27 Bank:8 Name:Chorus Gt.
60. Patch:28 Bank:0 Name:Muted Gt.
61. Patch:28 Bank:8 Name:Funk Gt.
62. Patch:28 Bank:16 Name:Funk Gt.2
63. Patch:29 Bank:0 Name:Overdrive Gt
64. Patch:30 Bank:0 Name:DistortionGt
65. Patch:30 Bank:8 Name:Feedback Gt.
66. Patch:31 Bank:0 Name:Gt.Harmonics
67. Patch:31 Bank:8 Name:Gt. Feedback
68. Patch:32 Bank:0 Name:Acoustic Bs.
69. Patch:33 Bank:0 Name:Fingered Bs.
70. Patch:34 Bank:0 Name:Picked Bs.
71. Patch:35 Bank:0 Name:Fretless Bs.
72. Patch:36 Bank:0 Name:Slap Bass 1
73. Patch:37 Bank:0 Name:Slap Bass 2
74. Patch:38 Bank:0 Name:Synth Bass 1
75. Patch:38 Bank:1 Name:SynthBass101
76. Patch:38 Bank:8 Name:Synth Bass 3
77. Patch:39 Bank:0 Name:Synth Bass 2
78. Patch:39 Bank:8 Name:Synth Bass 4
79. Patch:39 Bank:16 Name:Rubber Bass
80. Patch:40 Bank:0 Name:Violin
81. Patch:40 Bank:8 Name:Slow Violin
82. Patch:41 Bank:0 Name:Viola
83. Patch:42 Bank:0 Name:Cello
84. Patch:43 Bank:0 Name:Contrabass
85. Patch:44 Bank:0 Name:Tremolo Str
86. Patch:45 Bank:0 Name:PizzicatoStr
87. Patch:46 Bank:0 Name:Harp
88. Patch:47 Bank:0 Name:Timpani
89. Patch:48 Bank:0 Name:Strings
90. Patch:48 Bank:8 Name:Orchestra
91. Patch:49 Bank:0 Name:Slow Strings
92. Patch:50 Bank:0 Name:Syn.Strings1
93. Patch:50 Bank:8 Name:Syn.Strings3
94. Patch:51 Bank:0 Name:Syn.Strings2
95. Patch:52 Bank:0 Name:Choir Aahs
96. Patch:52 Bank:32 Name:Choir Aahs 2
97. Patch:53 Bank:0 Name:Voice Oohs
98. Patch:54 Bank:0 Name:SynVox
99. Patch:55 Bank:0 Name:OrchestraHit
100. Patch:56 Bank:0 Name:Trumpet
101. Patch:57 Bank:0 Name:Trombone
102. Patch:57 Bank:1 Name:Trombone 2
103. Patch:58 Bank:0 Name:Tuba
104. Patch:59 Bank:0 Name:MutedTrumpet
105. Patch:60 Bank:0 Name:French Horns
106. Patch:60 Bank:1 Name:Fr.Horn 2
107. Patch:61 Bank:0 Name:Brass 1
108. Patch:61 Bank:8 Name:Brass 2
109. Patch:62 Bank:0 Name:Synth Brass1
110. Patch:62 Bank:8 Name:Synth Brass3
111. Patch:62 Bank:16 Name:AnalogBrass1
112. Patch:63 Bank:0 Name:Synth Brass2
113. Patch:63 Bank:8 Name:Synth Brass4
114. Patch:63 Bank:16 Name:AnalogBrass2
115. Patch:64 Bank:0 Name:Soprano Sax
116. Patch:65 Bank:0 Name:Alto Sax
117. Patch:66 Bank:0 Name:Tenor Sax
118. Patch:67 Bank:0 Name:Baritone Sax
119. Patch:68 Bank:0 Name:Oboe
120. Patch:69 Bank:0 Name:English Horn
121. Patch:70 Bank:0 Name:Bassoon
122. Patch:71 Bank:0 Name:Clarinet
123. Patch:72 Bank:0 Name:Piccolo
124. Patch:73 Bank:0 Name:Flute
125. Patch:74 Bank:0 Name:Recorder
126. Patch:75 Bank:0 Name:Pan Flute
127. Patch:76 Bank:0 Name:Bottle Blow
128. Patch:77 Bank:0 Name:Shakuhachi
129. Patch:78 Bank:0 Name:Whistle
130. Patch:79 Bank:0 Name:Ocarina
131. Patch:80 Bank:0 Name:Square Wave
132. Patch:80 Bank:1 Name:Square
133. Patch:80 Bank:8 Name:Sine Wave
134. Patch:81 Bank:0 Name:Saw Wave
135. Patch:81 Bank:1 Name:Saw
136. Patch:81 Bank:8 Name:Doctor Solo
137. Patch:82 Bank:0 Name:Syn.Calliope
138. Patch:83 Bank:0 Name:Chiffer Lead
139. Patch:84 Bank:0 Name:Charang
140. Patch:85 Bank:0 Name:Solo Vox
141. Patch:86 Bank:0 Name:5th Saw Wave
142. Patch:87 Bank:0 Name:Bass & Lead
143. Patch:88 Bank:0 Name:Fantasia
144. Patch:89 Bank:0 Name:Warm Pad
145. Patch:90 Bank:0 Name:Polysynth
146. Patch:91 Bank:0 Name:Space Voice
147. Patch:92 Bank:0 Name:Bowed Glass
148. Patch:93 Bank:0 Name:Metal Pad
149. Patch:94 Bank:0 Name:Halo Pad
150. Patch:95 Bank:0 Name:Sweep Pad
151. Patch:96 Bank:0 Name:Ice Rain
152. Patch:97 Bank:0 Name:Soundtrack
153. Patch:98 Bank:0 Name:Crystal
154. Patch:98 Bank:1 Name:Syn Mallet
155. Patch:99 Bank:0 Name:Atmosphere
156. Patch:100 Bank:0 Name:Brightness
157. Patch:101 Bank:0 Name:Goblin
158. Patch:102 Bank:0 Name:Echo Drops
159. Patch:102 Bank:1 Name:Echo Bell
160. Patch:102 Bank:2 Name:Echo Pan
161. Patch:103 Bank:0 Name:Star Theme
162. Patch:104 Bank:0 Name:Sitar
163. Patch:104 Bank:1 Name:Sitar 2
164. Patch:105 Bank:0 Name:Banjo
165. Patch:106 Bank:0 Name:Shamisen
166. Patch:107 Bank:0 Name:Koto
167. Patch:107 Bank:8 Name:Taisho Koto
168. Patch:108 Bank:0 Name:Kalimba
169. Patch:109 Bank:0 Name:Bagpipe
170. Patch:110 Bank:0 Name:Fiddle
171. Patch:111 Bank:0 Name:Shanai
172. Patch:112 Bank:0 Name:Tinkle Bell
173. Patch:113 Bank:0 Name:Agogo
174. Patch:114 Bank:0 Name:Steel Drums
175. Patch:115 Bank:0 Name:Woodblock
176. Patch:115 Bank:8 Name:Castanets
177. Patch:116 Bank:0 Name:Taiko
178. Patch:116 Bank:8 Name:Concert BD
179. Patch:117 Bank:0 Name:Melo. Tom 1
180. Patch:117 Bank:8 Name:Melo. Tom 2
181. Patch:118 Bank:0 Name:Synth Drum
182. Patch:118 Bank:8 Name:808 Tom
183. Patch:118 Bank:9 Name:Elec Perc.
184. Patch:119 Bank:0 Name:Reverse Cym.
185. Patch:120 Bank:0 Name:Gt.FretNoise
186. Patch:120 Bank:1 Name:Gt.Cut Noise
187. Patch:120 Bank:2 Name:String Slap
188. Patch:121 Bank:0 Name:Breath Noise
189. Patch:121 Bank:1 Name:Fl.Key Click
190. Patch:122 Bank:0 Name:Seashore
191. Patch:122 Bank:1 Name:Rain
192. Patch:122 Bank:2 Name:Thunder
193. Patch:122 Bank:3 Name:Wind
194. Patch:122 Bank:4 Name:Stream
195. Patch:122 Bank:5 Name:Bubble
196. Patch:123 Bank:0 Name:Bird
197. Patch:123 Bank:1 Name:Dog
198. Patch:123 Bank:2 Name:Horse-Gallop
199. Patch:123 Bank:3 Name:Bird 2
200. Patch:124 Bank:0 Name:Telephone 1
201. Patch:124 Bank:1 Name:Telephone 2
202. Patch:124 Bank:2 Name:DoorCreaking
203. Patch:124 Bank:3 Name:Door
204. Patch:124 Bank:4 Name:Scratch
205. Patch:124 Bank:5 Name:Wind Chimes
206. Patch:125 Bank:0 Name:Helicopter
207. Patch:125 Bank:1 Name:Car-Engine
208. Patch:125 Bank:2 Name:Car-Stop
209. Patch:125 Bank:3 Name:Car-Pass
210. Patch:125 Bank:4 Name:Car-Crash
211. Patch:125 Bank:5 Name:Siren
212. Patch:125 Bank:6 Name:Train
213. Patch:125 Bank:7 Name:Jetplane
214. Patch:125 Bank:8 Name:Starship
215. Patch:125 Bank:9 Name:Burst Noise
216. Patch:126 Bank:0 Name:Applause
217. Patch:126 Bank:1 Name:Laughing
218. Patch:126 Bank:2 Name:Screaming
219. Patch:126 Bank:3 Name:Punch
220. Patch:126 Bank:4 Name:Heart Beat
221. Patch:126 Bank:5 Name:Footsteps
222. Patch:127 Bank:0 Name:Gun Shot
223. Patch:127 Bank:1 Name:Machine Gun
224. Patch:127 Bank:2 Name:Lasergun
225. Patch:127 Bank:3 Name:Explosion

!----------!!!! Drums from here !!!! ---------------!
226. Drum - Patch:0 Bank:0 Name:Standard
227. Drum - Patch:8 Bank:0 Name:Room
228. Drum - Patch:16 Bank:0 Name:Power
229. Drum - Patch:24 Bank:0 Name:Electronic
230. Drum - Patch:25 Bank:0 Name:TR-808
231. Drum - Patch:32 Bank:0 Name:Jazz
232. Drum - Patch:40 Bank:0 Name:Brush
233. Drum - Patch:48 Bank:0 Name:Orchestra
234. Drum - Patch:56 Bank:0 Name:SFX

Also in SC-55 documentation (and in SC-VA documentation as SC-55 Map) you can see the same. MS Soft Synth/GM.dls actually contains the instruments from SC-55 except the MT-32 compatible insteruments at Bank 127 and MT-32 compatible drum set at Channel 10 program 127.

@Edit
Roland itself refers in documentation to tones as instruments (e.g. in parts like 'Instrument maps'). And the instruments in main bank (Bank 0) are usually mentioned as 'Capital Tones', and instruments in other banks as 'Variation Tones'.
But tones/instruments in Roland documentation means mainly melodic instruments. Drum sounds are listed separately in 'Drum set tables'.

Here you can download cut parts from SC-55 mkII documentation (Instrument map + Drum set table):

Filename
SC55_Inst_map.pdf
File size
867.46 KiB
Downloads
89 downloads
File license
CC-BY-4.0

My list follows the Midi protocol so programs are 0 based (0 -127), but Roland instrument map is 1 based (1 -128)

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 66 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

@Falcosoft :

Many many thanks, I am working hard on making sense of it based on the structure of VSC soundbanks, what I already reversed-engineered of that structure and the excellent information you provided!

So, I believe I made huge progress today and I finally found how the big "block2"where all the sound samples (their WAV/PCM data) are located is structured, i.e. how to tell where each individual sound sample starts and where it ends and effectively cut and extract them.

Please give me some time to automate the process in a small tool - let's see how many "sound samples" it will can count there...In any way that's really huge, because effectively allows us to "patch" the bank and replace a sound, which is the sole goal of it.

Of course, still SC55 ROM structure to get the highest quality SC55 samples is totally an open question - it will be good if someone can give any ideas on that - even how the 3 x 1MB soundbank ROMs of SC55 are supposed to be "stitched" together - currently I just "interleave" them, but I have doubts that is the correct way - when I look at the datasteam it just doesn't feel right, but it's not based on a fact, but on my intuition. So, I could be very well wrong.

Reply 67 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

@Falcosoft :

correct me, if I am wrong, but MS GM.DLS has 495 WAV/PCM sounds in total, from which those 226 instruments and 9 drum-sets are made?

I counted 529 WAV/PCM samples in VSC 2.x SC55 soundbank - that looks correct to me, after all VSC is both GS and GM and I guess 34 extra WAV/PCM samples is not abnormal.

At least the good news is that I can now extract, unpack and listed to each WAV/PCM sample in VSC 2.x SC55 bank - even better double confirm that I reversed-engineered that correctly comparing with VSC 1.c SC55 bank - luckily VSC 2.x bank has only 1 extra PCM sound compared to VSC 1.x and my current tool give results consistent with that.

Reply 68 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

Another big OMG, Guys! all the structures I found out yesterday from unencrypted VSC soundbank (VCSSB) are available in Real Hardware SC55 module ROM Dump (dump of IC23 on the PCB)!

So, what (if you follow this thread), I called "block1" from VSCSB and it's encrypted with what I called "1st layer encryption", is actually available in SC55ROM in unencrypted form!! That means currently what seems possible (with very simple tool actually) is making the whole "block1" of VSCSB by converting the corresponding data from the SC55ROM (encrypted or unencrypted since the 1st layer encryption algo is known).

If I figure out how PCM/WAV data are stored in SC55ROM, then making full VSCSB (with encrypted "block1" and "unencrypted block2") from SC55ROM is done and only how to patch VSC to disable "block2" decryption on VSCSB load (that way it will be able to work with unencrypted banks) will be left for full success of this project.

Last, but not least, probably my findings so far, when release some source code that illustrates them could greatly help if someone is interested in making free and open-source emulator of SC55.

Last edited by mattw on 2020-10-02, 07:20. Edited 2 times in total.

Reply 69 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

ok, now after I understand some of the SC55ROM structures, what I can tell with certainty is that Real Hardware SC55 module has a little over 6MB of PCM/WAV data, but they are stored in 3 x 1MB dumps. So, I guess mu-law compression as @Cloudschatze suggested here:

Re: About Roland Virtual Sound Canvas 3

or some other sort of compression is used for sure.

[EDIT] hmm, in SC55ROM what I call "samples offsets table" looked very similar to VSC, but now after I dig more into it, seems it's different format and so my conclusion that the last sample in SC55ROM is located on address 6MB+ seems wrong at the moment.
[EDIT2] got confused with SC55ROM again - maybe I am tired or maybe it's because Intel x86 is little-endian and what is used in SC55 module is big-endian. maybe for the time being is better to continue with VSC and learn more of the soundbank stucture on Intel x86.

Reply 70 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

i progressed more in RE of the VSC soundbank format, actually very few remains not fully RE, let me give status update:

1. first roughly segment of 70KB is not yet fully RE - that maybe sound like a big number, but it's actually not, because those are 300 or so chunks of 216 bytes each. So, when one such chunk is fully reversed-engineered the whole segment is done. I don't know what to call those definitions "instruments" or something else (check my discussions with Falcosoft above), but what is obvious in those chunks is they contain name and the names are like "Piano 1", "Honky-tonk", etc

2. then there is another segment of 10K, which RE is not done yet - it contains the Drumsets definitions, except the names of those sets, I did not RE anything more about it

3. All the rest of the VSC is fully reversed-engineered, including where each sound sample starts and ends and how those are convert to playable WAV/PCM data

So, unless 1. and 2 are not super hard to understand, we can say the format is already reversed-engineered on 99%, at least on bytes with known function vs those bytes with yet unknown function.

Reply 71 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

@Falcosoft:

please, look at the 2 attached list of "things" (i sorted them alphabetically) - i am calling them "things", because i don't know what to call them instruments tones or whatever exactly they are.

So, list1 has 284 unique entries (there were duplicates, but i removed them; with the duplicated it's over 300 entries), list2 has 214 entries.

All metadata related to list2 are very simple and I already reversed-engineered - essentially their metadata contain list of address offsets of the PCM samples (in the PCM data block) from which they are made.

List2 metadata I still don't understand, but hope what is the difference, what those 2 different list represents, will help me to understand.

There are many names from list1 missing in list2, but there are names like "Train" that are in both list.

Attachments

  • Filename
    list1__.txt
    File size
    3.22 KiB
    Downloads
    81 downloads
    File license
    Public domain
  • Filename
    list2__.txt
    File size
    2.06 KiB
    Downloads
    73 downloads
    File license
    Public domain

Reply 72 of 375, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
mattw wrote on 2020-10-02, 16:25:
@Falcosoft: […]
Show full quote

@Falcosoft:

please, look at the 2 attached list of "things" (i sorted them alphabetically) - i am calling them "things", because i don't know what to call them instruments tones or whatever exactly they are.

So, list1 has 284 unique entries (there were duplicates, but i removed them; with the duplicated it's over 300 entries), list2 has 214 entries.

All metadata related to list2 are very simple and I already reversed-engineered - essentially their metadata contain list of address offsets of the PCM samples (in the PCM data block) from which they are made.

List2 metadata I still don't understand, but hope what is the difference, what those 2 different list represents, will help me to understand.

There are many names from list1 missing in list2, but there are names like "Train" that are in both list.

Yeah, it seems both lists have melodic instruments and drum sounds mixed. I'm not sure if either of them is the full list. To tell you the truth even 284 seems to be a small number if we consider that VSC 3 contains even MT-32 compatible bank with 128 unique non GM/GS compatible instruments like Water Bell or Jungle Tune... ( I have not seen them on the list but you can inspect them on VSC 3 interface if you select GS mode and switch to bank 127).

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 73 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

@Falcosoft:

I understand, but there is just nothing more inside neither VSC soundbank , nor Hardware SC55 ROMs - it fact in the list "SC55_Inst_map.pdf" you provided from the manual, there is for example "Piano 3w",but there is just no such thing to be found in SC55 firmware ROM v1.21.

As I mentioned above I now found all Hardware SC55 ROM structure and their corresponding ones in VSC bank. So, excluding "0","f", etc. used for padding, we have the following:

1. several hundreds chunks with size of 216 bytes each, those are "list 1", from those 216 bytes I currently know only first bytes, that indicate the name, but I guess the rest is Midi patches/Midi banks assignment, etc. also, which one is GM, which is GS.
2. several hundred chunks, but less than "list 1", that is "list 2", their size is 60 bytes each - all those 60 bytes, I fully reversed engineered, they are the name plus list of indexes - those indexes point to what i am calling "pcm data address map". That allows everything from "list 2" to be directly extracted as playable WAV sound (i can do that currently)
3. then there are several chunks describing each drumset
4. then is the "pcm data address map" : basically array with format "index, start address(offset), size" of each individual pcm sample
5. all the rest is the pcm samples with resolution 12-bits and encoded as 2-samples in 3bytes (using same algorithm as Yamaha TG100 ROM - see some of my previous posts, when I went in full details about it)

and that's it - there is just nothing more there!!

Also, let me list the differences (I found so far) in the above 5 points between Hardware SC55 ROM and VSC:

A. in VSC the names are "null-terminated" (like in C language), in SC55ROM they are "space-terminated" (i.e. using "0x20" byte to indicate the end of it)
B. all indexes, 16-bit addresses, etc in SC55ROM are Big-endian compared to VSC, for example index 456 in SC55ROM is "01 d5" and "d5 01"in VSC
C. the "pcm data address map" in SC55ROM is different structure (I still cannot make full sense of it), because with VSC we have the whole Sound Bank in RAM, which means we have 24-bit addresses (enough to address the size of a lot more than the whole block2 of pcm data), but in SC55ROM there is no such amount of RAM and so how pcm samples and their offsets are organized in Hardware SC55 is still mystery to me based on the "pcm data address map" in SC55ROM (the addressing could even include something like ROM number as there are 3 rom chips and offset within that ROM), but anyway the point here is I found the bytes from which the "pcm data address map" consist in SC55 ROMs

So, there is just nothing more neither in VSC, nor in Hardware SC55 ROMs - there are not even many of the names mentioned in "SC55_Inst_map.pdf" - Each byte is currently accounted for and each byte is in one of the above categories.

Reply 74 of 375, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
mattw wrote on 2020-10-03, 04:52:
@Falcosoft: […]
Show full quote

@Falcosoft:

I understand, but there is just nothing more inside neither VSC soundbank , nor Hardware SC55 ROMs - it fact in the list "SC55_Inst_map.pdf" you provided from the manual, there is for example "Piano 3w",but there is just no such thing to be found in SC55 firmware ROM v1.21.
...
So, there is just nothing more neither in VSC, nor in Hardware SC55 ROMs - there are not even many of the names mentioned in "SC55_Inst_map.pdf"

Hi,
This is because you use use the 'wrong' SC-55 firmware. As I wrote at the attachment of SC55_Inst_map.pdf that was from the documentation of SC-55 mkII.
This was an upgraded SC-55 with more polyphony (28 instead of 24) and instruments (354 instead of 317).
Later emulations such as MS GM/GS Softsynth, VSC3, SC-55 map of SC-VA are based on the instrument set of SC-55 mkII.
https://en.wikipedia.org/wiki/Roland_SC-55

So e.g. your mentioned Piano 3w can be found only in SC-55 mkII not in original SC-55, but it also can be found in VSC3 at Bank 8 Patch 3 (with 1 based patches).

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 75 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

@Falcosoft:

many thanks again!

I understand now about SC55 vs SC55mkII, but in my "vsc55.dat" from VSC there is no "Piano 3w" - are you sure you're not looking at "vsc88.dat" or "vsc88pro.dat" or maybe it depends on the exact VSC version itself and that makes the inconsistency between us? (I will re-check mine as well, because I changed mixed several version, but in my current "vsc55.dat" there is no "Piano 3w").

@All:
guys, do you know are there SC55mkII (or SC88) ROM dumps available anywhere or know how to make one?

[EDIT] Falcosoft - I sorted it myself:

SC55 Soundbank from VSC 1.x and VSC 2.s has no "Piano 3w"
SC55 Soundbank from VSC 3.x has "Piano 3w"

I was actually lucky I made that mistake, because I don't have SC55mkII ROMS. So, for reverse-engineering with currently only SC55 ROMs available, then SC55 Soundbank from VSC 1.x and VSC 2.x are supposed to be used. I guess what we have is that VSC 1.x and VSC 2.x are SC55-compatible and VSC 3.x is SC55mkII-compatible. Bottom like, SC55 Soundbank from VSC 1.x and VSC 2.x must be compared with SC55ROM - as what I did (by mistake, but this mistakes was at the end right) and not with VSC 3.x soundbank. It's good with discussion with you we got to the bottom of it!

Reply 76 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

just to add SC55 Soundbank from VSC 2.x and SC55ROM match that much even addresses are similar for the blocks with same function, for example what is at 0x0DEC0 in VSC is at 0x1DEC0 and 0x2DEC0 in SC55ROM - the reason I guess they split it that way in SC55ROM, because of lack of resources and RAM with the hardware module compare to PC emulation.

Reply 77 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

I have just found out that SC55 program code is actually not dumped as of 2020.
So, IC26, IC27 and IC28 are the 3 x 1MB ROMs in SC55 that correspond to "block2" in VSC Sound bank, i.e. the PCM/WAC sound data. IC23 (based on my analysis) is mostly what is "block1" in VSC Sound bank - you can almost directly convert them into each other. Unfortunately, the firmware itself of SC55 is not dumped - that's IC30. I guess without being able to inspect the code in IC30 it will be kind of impossible to figure out the format of IC26/7/8 and the "pcm data address map" in IC23, which I'm already struggling to understand - the corresponding one in VSC is so easy to make sense of it.

Reply 78 of 375, by bnz99

User metadata
Rank Newbie
Rank
Newbie

Extremely fascinating work mattw. I'll have to read through it one or two more times to digest everything. Have you tried to look at the jd800 program dump from dbwbp (jd800 waveroms), the guy who dumped them managed to extract the companded waveforms from the JD800? The waveform dumps look pretty similar to the SC-55 (and some a different dump I'm currently looking at). Just from looking at the hex editor contents, it seems there are similarities among JD800, SC-55 and JV80/JV-cards.

Reply 79 of 375, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

@bnz99

I've just looked at the jd800 dump from dbwbp, but it's only 256KB . So, it doesn't seem to contain the waverom data. It looks very differently structured to me compared to IC23 dump of SC-55, which is almost identical to "block1" content of VSC soundbank. It's possible waverom data are encoded the same between JD800 and SC55, but since I don't know anything about how jd800 wavedata were extracted and I cannot extract those from SC55 3x1MB waverom dumps, I just cannot say anything more on this subject, I simply don't know anything more. What I can tell you though - wav data are 2 layers encrypted in VSC and while the 1st layer is easy to remove, the 2nd layer algo is currently unknown - the only way to remove the 2nd layer encryption is to make "ram dump" and extract "block2" from there where Roland software already decrypted it. Also, that approach, curiously enough works only with VSC 2.x (most of the time I use VSC 2.1a to do it), because both VSC 1.x and VSC 3.x doesn't store the decrypted "block2" of the sound-bank as continuously memory , but scatter those data all over the place in 4KB chunks (1 memory page in Intel x86) and it's almost impossible to reconstruct gathering those pieces.. So, at least in VSC Roland made significant effort to protect their wav data.