VOGONS


Reply 100 of 742, by kode54

User metadata
Rank Member
Rank
Member

Interesting. The SCCore00.dll/dylib file included with the synthesizer is a fairly straightforward C API single instance synthesizer. The synthesizer supports multiple instances by duplicating the library around to trick the process into loading multiple instances of it. On OS X, it also searches the file for strings containing the name of the library (SCCore00.dylib) and replaces the SCCore00 with the actual filename it generated for it.

https://gist.github.com/kode54/01929e2f1dfc9ee4f8f1

They probably had something in their license forbidding me to dig into their software and document this. Oh well. Also note that the SCCore module is completely unburdened by the software protection of the frontend VST and Audio Unit components.

Further investigation reveals that all the controls and displays in the actual plugins are handled separate from the synthesizer, and the assumed "set map" feature also works by sending the appropriate GS reset messages to the synthesizer.

Reply 101 of 742, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++

I don't quite understand what that means, but is it possible to patch it, so that when a game sends a reset, it stays in SC-55 mode if that's what the user selected?

YouTube, Facebook, Website

Reply 102 of 742, by kode54

User metadata
Rank Member
Rank
Member

It's possible to write a hook version of the library, which calls its own unique copies of the SCCore library, which catches particular reset messages, and sends the correct ones. For instance, upon seeing any reset message whatsoever, it could send a SC55 reset sequence. Currently, the frontend VST doesn't send any reset sequences at all.

A filter library would not only need to hook all of those API functions that are actually read by that interface, it would also need to "implement" the reset, even though they're not used, since the loader checks for their presence regardless. It would also need to dupe the original library around on its own for the multi-instance loading.

The only functions that really need to be hooked are the TG_ShortMidiIn and TG_LongMidiIn, which would need to be hooked to catch and filter unwanted messages. LongMidiIn sends SysEx messages (without any length count, so make sure you use properly terminated messages!), and ShortMidiIn sends all 2 or 3 byte messages. You'll probably want to filter out control changes which affect bank LSB or MSB or whatever.

Reply 103 of 742, by James-F

User metadata
Rank Oldbie
Rank
Oldbie

I have reached Roland customer service with a detailed explanation of the bug in this release.
Here are his replies:

Thank you for your detailed explanation. I can identify the phenomenon now. I will submit a report to Roland Japan and get them to look into this.

Hi James,
Roland Japan replied with an explanation for your observation. They said that the data that was created for the SC-55 does not have the Bank Select LSB message (cc:32) and this causes the symptom. They went on to say that they will look into this but nothing can be promised at the moment.

Hi James,
Check the SC-VA product page from time to time to see if Roland Japan do an upgrade..

Basically they say that the bug is a user problem of not sending a proper Controller 32 command to select a Map after reset.
That's why I created a "Reset to SC-xx" midi files which I use, these send a cc:32 command to each channel and only then I filter out cc:32 and Sysex in SAVIHost.
It's not a good thing to bypass cc:32 and Sysex commands with more complex GS midi music, but with dosbox games which basically General Midi, it's fine.
As they do with their other plugins, I think Roland will fix that, all we have to do is wait.

Last edited by James-F on 2016-01-22, 07:06. Edited 1 time in total.


my important / useful posts are here

Reply 105 of 742, by James-F

User metadata
Rank Oldbie
Rank
Oldbie

😎 They acknowledged the bug, all we have to do is wait.

Meanwhile, here is a nice tip for you:
I load my "Reset SC-55" midi file in a Media Player (I use MPC-HC), and enable system multimedia keys in the player.
I have multimedia keys on my keyboard, so each time I press the Play button on my keyboard, SC-VA resets without me having to switch windows or minimize dosbox to click the play button in the player.
Just like having a SC-55 besides me....... well no, but close. 😊

Oh, and yes, you can use that trick with the real hardware.
Without having to reach for the front panel of the SC, just press Play on your keyboard.


my important / useful posts are here

Reply 106 of 742, by kode54

User metadata
Rank Member
Rank
Member

If someone can create a C or C++ short and long message filter, I can create a proxy for the plug-in.

Basically, what I need:

1) Initialization function that accepts an enum identifying whether it's an SC-55, SC-88, SC-88Pro, or SC-8820.
2) Uses this initialization to select one or more SysEx commands that reset the device into the given state.
3) Decides based on the current state which short messages to filter out, or which to additionally send. (For instance, automatically sending a bank LSB on every instrument/preset change to force a given map number.

Such a filter can either be inserted into a replacement SCCore00.dll, or inserted into a VST driver.

Remember, the Sound Canvas VA core has no documented configuration, and presumably starts in the 8820 mode by default. Forcing SC-55, at the very least, would require a basic GS reset and dropping all bank LSB notices, and possibly adding bank LSB notices to force the SC-55 map.

If it isn't code, then at the very least, document SysEx dump bytes to send for each device class, and since I can't recall it off the top of my head, the LSB values to send for the different maps.

EDIT: http://static.kode54.net/SCCore_SrcOnly.7z

See the note dumper? Now someone could technically automate the process of preparing something similar to GMSoundFont.com's SF88 SoundFont, only this time dumped directly from the sampler library in floating point.

notedump <sample rate> <bank LSB> <bank MSB> <patch> <note> <velocity>

And it will time out after either 15 seconds, or a silence test threshold. It will then peak minimize or maximize, depending on how loud the sample ends up, and write the decibel correction in the automatically generated filename.

Yes, please only do this if you're within your trial period, or a licensed user.

Reply 107 of 742, by Enverex

User metadata
Rank Newbie
Rank
Newbie

Has anyone had any luck using this with Foobar2000? I normally use FB2K as my go-to transcoding software due to the ease of tag editing and savable convertion presets such but it doesn't seem to play nicely with this plugin (though it worked fine with the Ediron Hyper Canvas and BASSMIDI). It seems to keep opening and closing the plugin over and over and only manages a blip or two of audio when trying to play.

Reply 109 of 742, by Minigunner

User metadata
Rank Newbie
Rank
Newbie
DX7_EP wrote:

I may not be needing that SC-8850 anymore...:U

notindeed wrote:

Not sure how the 8850 compares to the 8820 that the SC VA vsti is trying to emulate.

The SC-8850 still has a few things over the 8820, namely in terms of the new instruments and samples. For example, on the 8820/SCVA, the Dance Dst. Gt (prog. 85, bank 11) is basically a Power Guitar sample with another one an octave + a fifth higher overlaid on it. The 8850's version is an entirely new sample.

In regards to the whole Instrument Map error, I have sent them a request for a checkbox or something that allows the synth to override CC#32 values of 0. And, well, nothing yet.

Reply 110 of 742, by Roland User

User metadata
Rank Member
Rank
Member

An Detected Error , if select MAP Mode as SELECTED - error not found , also error not found if selectable Pitch -20 in synthesizer.... but if selected any other mode - error found and Pitch -20 in sequencer , an not synthesizer program - error found... also select in sequencer Pitch -21 or -19 - error not found.

The error lies in the fact that not plays only one note , if selected fixed mode SC-55 / SC-88 / SC-88 Pro / SC-8820.

Roland SoundCanvas VA 1.01.1001

In file test.zip not playable this one note

In file test2.zip melody for test error of method down pitch... default Pitch 0 , if select in sequencer Pitch -20 will be error

I'm sorry , my english bad.

Attachments

  • Filename
    test2.zip
    File size
    1.42 KiB
    Downloads
    99 downloads
    File license
    Fair use/fair dealing exception
  • Filename
    test.zip
    File size
    228 Bytes
    Downloads
    72 downloads
    File license
    Fair use/fair dealing exception

Reply 111 of 742, by avx

User metadata
Rank Newbie
Rank
Newbie

Can someone record the mid's in the zip with a real SC-55(mk2) or SCC1, not a mapped 88xx. They sound otherwise ok but the effects, panning, balance might have issues but not sure.

Attachments

  • Filename
    GAMEMID.zip
    File size
    6.03 KiB
    Downloads
    85 downloads
    File license
    Fair use/fair dealing exception

Reply 113 of 742, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++
avx wrote:

Can someone record the mid's in the zip with a real SC-55(mk2) or SCC1, not a mapped 88xx. They sound otherwise ok but the effects, panning, balance might have issues but not sure.

Do you have more?

I can put them in a playlist and record the lot.

If nobody beats me to it when I get home I do it.

YouTube, Facebook, Website

Reply 114 of 742, by avx

User metadata
Rank Newbie
Rank
Newbie

Testing 1.02 a bit:

After re-checking things I got the mids to sound like the recording from sc-8850 sc-55 map in the VA VST.

Needed to a) dl the latest VA VST with working reset (gui reset to SC-55 map) b) set it to sc-55 map c) press reset d) undo some of the host filtering changes from previous day that blocked some CC's

There is still a possible bug in the Sound Canvas VA CST - I had some music files that did "reset" it but I didn't dump the midi data yet to verify if they really reset it or just bulk dumped CC's ..

sending old GS_ON or GS_RESET.mid's don't actually reset the VST when sent thru midiyoke from WMP. When importing these same .mid into the VST through the OPTION-Import SMF EXC, they do reset it.

another bug:

If System Menu: Map Mode is SC88-Pro & ALL shows ALL-MAP-SC-88Pro-, then GUI Reset button sets ALL: ALL-MAP-SC-8820 .. while Map Mode stays as SC88-Pro
(Assuming Map Mode and the thing shown in the "virtual LCD" is supposed to be same always)

possible bug:

when switching between mid's using different drum kits, sometimes it shows ---------- as the kit while it clearly does switch the kit. it seems to depend on what the previous song was if it was not reset between.

Last edited by avx on 2016-04-05, 06:02. Edited 1 time in total.

Reply 115 of 742, by avx

User metadata
Rank Newbie
Rank
Newbie

Grab while it's around, might not stay around... Here's a bunch of mid that demo how good SC-55 sounded in some classic games.
Included is a image how to setup the SC VA 1.02 in SAVIHOST so that the songs sound as they should (it's probably easier but as the settings get messed up by bad sysex resets I added few extra steps to make sure it's reset well)

edit: it's possible the sysex filter filters something important but without it, it goes to GM2 in some songs (eg. BattleWaitMusic.mid was compose ~1991-92) that probably were composed for SC-55! So fixing that needs some tool. Also the BASS theme sounds like it might be missing some instrument.
edit2: yeah there is some jittery thing going on in intro.mid I am not sure what is up with that, maybe bad conversion to mid? also not convinced the sshock* sound quite right. capturing direct from game would be best

edit3: You need to press Reset and set volume back down to ~75 between songs otherwise there is risk of incorrect instruments ... the best volume seems to depend on the song but it feels like high master volume in the VA causes some sort of dynamic crush so. I had to back down from 90 after more listening. Upping the soundcard volume is fine obviously.

edit4: I could be crazy but I think the audio quality just keeps going up the lower the volume is.. so pump sound card volume to 100% and lower SC VA to ~30 for even better quality 🤣.

SCVAsetup2.png
Filename
SCVAsetup2.png
File size
237.77 KiB
Views
3568 views
File license
Fair use/fair dealing exception

Attachments

  • Filename
    SCVAgmid.rar
    File size
    387.9 KiB
    Downloads
    176 downloads
    File license
    Fair use/fair dealing exception

Reply 116 of 742, by avx

User metadata
Rank Newbie
Rank
Newbie
PhilsComputerLab wrote:

Do you have more? I can put them in a playlist and record the lot.

See the rar in previous post.. you have to add some reset between the songs. I think the lower volume improves set VST quality, hard to say though. Maybe record one pass with volume 40 vs full volume set after reset.

None of them were recorded from the game though. I recall when doing mt32 recordings, I had to use dosbox to capture the midi as otherwise things didn't sound right. So there maybe few mids in these that don't sound right. I mentioned in previous post the ones I suspect to have issues.

Reply 117 of 742, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++
avx wrote:

you have to add some reset between the songs. I think the lower volume improves set VST quality, hard to say though. Maybe record one pass with volume 40 vs full volume set after reset.

None of them were recorded from the game though. I recall when doing mt32 recordings, I had to use dosbox to capture the midi as otherwise things didn't sound right. So there maybe few mids in these that don't sound right. I mentioned in previous post the ones I suspect to have issues.

Oh. Too hard, sorry I'm strapped for time at the moment...

YouTube, Facebook, Website

Reply 119 of 742, by Roland User

User metadata
Rank Member
Rank
Member

Question
As make so to SoundCanvas VA making auto reset mode after stop play MIDI file , before next play MIDI file ?
This problem Is it possible decide to automaticable in host application or VST Plugin ?
As create resetable ?