VOGONS


About Roland Virtual Sound Canvas 3

Topic actions

Reply 260 of 377, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
nukeykt wrote on 2020-12-16, 00:04:
kitrinx wrote on 2020-12-15, 23:49:

Edit: Added roms

Woah, thanks for sharing these

So, currently, there are MK1, SCB-55 and SC-88 dumps available. Soon, maybe SCC-1, as it was discussed here earlier.

[EDIT] oh, I forgot those I found in the DLL, which are the latest from SC-88 Waverom series:

Re: About Roland Virtual Sound Canvas 3

[EDIT2] most likely based on the DLL, SC-8820 consists of 4MB Waverom (I guess new SC-8820 sounds) plus that last Waverom from the SC-88 series - I not sure if it's from SC-88VL, SC-88Pro or which exactly device, because I read somewhere Roland Sound Canvas VA VSTi Plugin is based on SC-8820.

Last edited by mattw on 2020-12-16, 00:24. Edited 5 times in total.

Reply 261 of 377, by nukeykt

User metadata
Rank Member
Rank
Member

I have sc-55mkII control ROM dump if it is useful to anyone

Attachments

  • Filename
    sc55mkII.zip
    File size
    124.26 KiB
    Downloads
    222 downloads
    File license
    Fair use/fair dealing exception

Reply 262 of 377, by kitrinx

User metadata
Rank Newbie
Rank
Newbie
nukeykt wrote on 2020-12-16, 00:13:

I have sc-55mkII control ROM dump if it is useful to anyone

That control rom seems compatible with the SCB wave roms, although the drums layout is a little different in it.

Reply 263 of 377, by appiah4

User metadata
Rank l33t++
Rank
l33t++
kitrinx wrote on 2020-12-15, 21:39:
appiah4 wrote on 2020-12-15, 20:40:

So when will you guys be making that SC55 SF2 available for download?

If someone posts a windows compiled binary, you could just run it and make one.

Still waiting for that to happen 😀

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 264 of 377, by yawetaG

User metadata
Rank Oldbie
Rank
Oldbie
kitrinx wrote on 2020-12-15, 23:01:
yawetaG wrote on 2020-12-15, 22:52:

Get yourself the SC55 manual and look in the back in the section about sysex control. There should be a section listing the patch part parameters (most settings are set per part, not per individual instrument). Wait, I looked it up, page 80 and onwards, the bit that starts with "MOD PITCH CONTROL" and onwards: https://www.manualslib.com/manual/695759/Rola … ?page=80#manual
If a rompler synth manual has a section about sysex, I tend to look into it first because usually it's the fastest way to see what a rompler can do...

LFO rates are -10Hz to +10 Hz. Not sure how that is controlled, IIRC there's a clock crystal on the circuit board so it could actually use that. On the SC88 there even is a 20Hz one (would match -10 to +10 Hz)...

Yes, I've scrutinized this, but the sysex don't really line up with the data present in the control rom. One of the bytes somewhere in the partial data is likely responsible for controlling the default LFO frequency for the instruments. It's possible it's only a nibble of data or somehow else obscured. There is somewhat similar data one byte after each LFO depth byte, but I don't know its meanings yet.

Some instrument samples have vibrato/tremolo/LFO-like effects by default, but it's internal to the sample (i.e. it was present in the sample when the sample was recorded).

For vibrato, it appears the default setting is zero (or lowest value, Roland is inconsistent in their parameter ranges, sometimes they go from 0-127, and other times they go -63 - +63), because the unedited instrument sounds equal to that and you can only add vibrato, not diminish it, from the default value.

I wouldn't be surprised if it's similar for the other LFOs. If we look at the ancestor of the Sound Canvas line-up, which IMHO are not LA synths like the MT32 etc., but the Roland MV30 (U220-derivative, working name U30, little brother to D70, has proto-GM sound set* with same instrument selection as Sound Canvas - see this thread, filter/complex LFO like D70, only 8 parts instead of 16 like on the SC55), the LFO has to be explicitly enabled to start doing something... U220 has no LFO except for vibrato.
* MV30 ROM is actually partially located on a floppy disk, and there's a disk image available on the web...the rest of the ROM should be equal to that of U220.

However, for those parameters that have a master value, on Roland romplers the part/instrument values usually are either an offset value (+/-) from the master value, or relative to the master value. What's making it more complex is that if there are similar parameters at different hierarchical levels in the synth structure, they stack - so you can get something like "offset value x of value y, where value y is relative to value z".
So in "somewhat similar data one byte after each LFO depth byte" maybe the similar data matches the LFO depth byte offset or relative to the master LFO rate.

Reply 265 of 377, by kitrinx

User metadata
Rank Newbie
Rank
Newbie
yawetaG wrote on 2020-12-16, 07:42:

Some instrument samples have vibrato/tremolo/LFO-like effects by default, but it's internal to the sample (i.e. it was present in the sample when the sample was recorded).

This is not the case. Roland's samples were very, very short with lots of looping to save rom space. Most of them have no baked in LFO effects. There is definitely, without question, three independent LFO settings in each partial in the control rom. Most of them are usually not on for most instruments. Vibrato is used quite a lot, sometimes even when you would not expect it to, like a very low value for piano1. Please, go ahead and familiarize with the spreadsheet I posted a couple of pages back if you'd like to learn more about how the internals of the control rom are organized. I will say again that the numbers used for sysex really have no correlation at all to what is present as the base data for each *partial* of a preset, which can have up to two partials. In addition to this there is also a short preset header which contains the overall attenuation, some note off/on flags, reverb and chorus send levels, master pan, and some other bits I'm unsure of.

As far as how sysex interacts with the base values of an instrument, sometimes it's obvious (like pan) sometimes it's not. There is a chunk of sram on a bus with the ASIC that probably stores any ephemeral values that they set. Preset, partial, and sample levels are all pretty distinct. Drums have their own set of individual parameters which I believe override the preset header parameters that they pull the individual keys from. The role of the values in the partials though is to shape the very compressed and flat sample into a nice sounding instrument. Things like synth bass sound like just buzzing without these.

Reply 266 of 377, by mattw

User metadata
Rank Oldbie
Rank
Oldbie

@kitrinx

in VSC code (dissembled) the function that reads the structures of size 0xD8 is named GetToneNames(). So, I do believe what is described by those structures in Roland-terminology is called "tone". Also, that function calls another one named AssignVariation(). I have no idea what those "variation"-s are, but could it be another word for what you're calling "partials". I am really lost...

There are another 2 functions : GetRhythmSetNames(), that I cannot understand clearly from where it reads the names, but the name parsing is very close to how GetToneNames() parse the names. In any way GetRhythmSetNames() calls another function AssignVariationRhythm(), which is very simple - it checks if it's a drum ("0, 8, 16, 24, 25, 32, 40, 48, 56, 57, 58, 59, 60, 127") and if yes, extracts the VariationRhythm from some table, otherwise returns 255. So, do "drums" in Roland-terminology called "Rhythm"-s or "RhythmSet"-s.

Reply 267 of 377, by Alex-aut

User metadata
Rank Newbie
Rank
Newbie

@mattw: hi mattw, i am very sorry, because i red out the first SCC-1 ROM_A, and what can I see is only gabagge. I cannot recognize any structure, nor at the beginning something like "Roland... bla la".
I soldered th lines very very carefuly, i will check the lines tomorrow again 🙁 Not like other SC55 or SC88, the first 32 bytes aren't readable 🙁 very sad 🙁

Attachments

  • Filename
    scc1_rom_a_waveforms.zip
    File size
    983.85 KiB
    Downloads
    183 downloads
    File comment
    SCC-1 ROM_A readout :-(
    File license
    Fair use/fair dealing exception

Reply 268 of 377, by Alex-aut

User metadata
Rank Newbie
Rank
Newbie

Ok, i red out the rom_a 3 times at very slow speed , red the output data 2 timers per adress and the attached file is identical to all read attemps. So the gabage will not be better. I will check the adress-line soldering, perhaps i mixed lines, but this should not be happened. 🙁

Reply 269 of 377, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
Alex-aut wrote on 2020-12-16, 17:03:

Ok, i red out the rom_a 3 times at very slow speed , red the output data 2 timers per adress and the attached file is identical to all read attemps. So the gabage will not be better. I will check the adress-line soldering, perhaps i mixed lines, but this should not be happened. 🙁

It's not total garbage! I was able to descrambler part of it. however, it seems address line 17 (bit 16) is what is wrong. Another option is they just use different structure. I suggest leave that ROM for the time being and try with the next one - especially if you have checked address line 17 (bit 12) and you see no problem there.

Last edited by mattw on 2020-12-16, 18:14. Edited 1 time in total.

Reply 271 of 377, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
Alex-aut wrote on 2020-12-16, 18:01:

@mattw: will check adress line 17 after dinner

no rush, take your time, you're almost there - it uses the same data value bit-shuffling as SC-55/SC-88. So, you didn't dump garbage data. However, it looks like address-lines are messed up, it seems to me something is wrong with address line:

1 0000 0000 0000 0000

which is address line 17, if I count correct or bit 16.

Reply 272 of 377, by kitrinx

User metadata
Rank Newbie
Rank
Newbie
mattw wrote on 2020-12-16, 14:52:

@kitrinx

in VSC code (dissembled) the function that reads the structures of size 0xD8 is named GetToneNames(). So, I do believe what is described by those structures in Roland-terminology is called "tone". Also, that function calls another one named AssignVariation(). I have no idea what those "variation"-s are, but could it be another word for what you're calling "partials". I am really lost...

There are another 2 functions : GetRhythmSetNames(), that I cannot understand clearly from where it reads the names, but the name parsing is very close to how GetToneNames() parse the names. In any way GetRhythmSetNames() calls another function AssignVariationRhythm(), which is very simple - it checks if it's a drum ("0, 8, 16, 24, 25, 32, 40, 48, 56, 57, 58, 59, 60, 127") and if yes, extracts the VariationRhythm from some table, otherwise returns 255. So, do "drums" in Roland-terminology called "Rhythm"-s or "RhythmSet"-s.

Sorry for confusion. Roland actually switches around terms throughout it's various documentation, but I will explain the terms I use:

The top level is a variation (bank). There are 128 variation banks numbering from 0 to 127. Variation 0 is the standard 128 GM instrument set. Higher banks have other instruments. In SC55 variation bank 127 is mt32.

Within each bank are up to 129 presets, with 128 being drums in soundfont terms. These are sometimes also called instruments or tones, but to avoid confusion, I use the same term as soundfonts "preset"

Each preset is made up of up to two partials. A partial has all the data that takes a sample and turns it into a full sounding instrument. Some things like french horn and etc will play two of these at the same time with different parameters to create a choral effect.

Each partial references a table of key breakpoints which link to a sample number. There can be up to 16 breakpoints but there are rarely more than 8. This is how the sc55 uses more suitable samples for a higher or lower key.

Finally at the lowest level we have samples. A sample is a collection of data that provides the address into the wave roms, and other data like basic attenuation, fine volume, fine pitch, root key, sample length, looping mode, and loop length. The top bits of the address are the *physical* bank number, so they will vary depending on the physical layout of the rom data. ie each one refers to a specific chip. These are not part of the scrambled address.

Reply 273 of 377, by kitrinx

User metadata
Rank Newbie
Rank
Newbie
Alex-aut wrote on 2020-12-16, 15:30:

@mattw: hi mattw, i am very sorry, because i red out the first SCC-1 ROM_A, and what can I see is only gabagge. I cannot recognize any structure, nor at the beginning something like "Roland... bla la".
I soldered th lines very very carefuly, i will check the lines tomorrow again 🙁 Not like other SC55 or SC88, the first 32 bytes aren't readable 🙁 very sad 🙁

Does this save you trouble?

Edit: Added the decoded three wave roms as well.

Attachments

  • Filename
    wave_dec.zip
    File size
    2.8 MiB
    Downloads
    222 downloads
    File license
    Fair use/fair dealing exception
  • Filename
    SCC1-SCC1A_Roms.rar
    File size
    4.83 MiB
    Downloads
    264 downloads
    File license
    Fair use/fair dealing exception

Reply 274 of 377, by mattw

User metadata
Rank Oldbie
Rank
Oldbie
kitrinx wrote on 2020-12-16, 19:30:

Sorry for confusion. Roland actually switches around terms throughout it's various documentation...

many thanks for the detailed explanation! I will definitely reading it and re-reading it. I am still mostly focused in the last days on 94B format.

kitrinx wrote on 2020-12-16, 19:53:

Edit: Added the decoded three wave roms as well.

So, SCC-1, SCB-55, SC-55/MKII are all using the exact same scrambling. BTW, have you looked at SC-88, I found the scrambling:

Re: About Roland Virtual Sound Canvas 3

but I haven't looked at the control rom at all.

Reply 275 of 377, by Alex-aut

User metadata
Rank Newbie
Rank
Newbie

@mattw: badass, you where right. I messed up the whole Port F, because i did the read out with atmega2561, and 4 bits of Port F i used as 4 data and the other 4 as the ms 4 bits for adress.
So please check it out 😀

Attachments

  • Filename
    SCC1_ROM_A.zip
    File size
    984.77 KiB
    Downloads
    184 downloads
    File comment
    SCC-1 GS.A ROM /Waveforms ROM_A
    File license
    Fair use/fair dealing exception

Reply 279 of 377, by Alex-aut

User metadata
Rank Newbie
Rank
Newbie
kitrinx wrote on 2020-12-16, 19:53:
Alex-aut wrote on 2020-12-16, 15:30:

@mattw: hi mattw, i am very sorry, because i red out the first SCC-1 ROM_A, and what can I see is only gabagge. I cannot recognize any structure, nor at the beginning something like "Roland... bla la".
I soldered th lines very very carefuly, i will check the lines tomorrow again 🙁 Not like other SC55 or SC88, the first 32 bytes aren't readable 🙁 very sad 🙁

Does this save you trouble?

Edit: Added the decoded three wave roms as well.

Thank you so much! I compared your A ROM with mine, they are exactly the same, byte per byte. Oh my godness .. so i can stop reading the remaining chips.