fbpx
Skip to main content

MIDI Forum

Notifications
Clear all

SC-88 edit

5 Posts
2 Users
0 Reactions
11.1 K Views
Jonas
Posts: 207
Reputable Member
Topic starter
 

The chorus type change work, but i can't get the reverb type to change.
https://jtmidi.000webhostapp.com/
//REVERB TYPES
function sel_effone(){
var e = document.getElementById("SCeffect1");
eff1 = e.options[e.selectedIndex].text;
if(eff1=="Room 1"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x30,0x0F,0x07,0xF7];
} else if(eff1=="Room 2"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x30,0x1E,0x06,0xF7];
} else if(eff1=="Room 3"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x30,0x2D,0x05,0xF7];
} else if(eff1=="Hall 1"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x30,0x3C,0x04,0xF7];
} else if(eff1=="Hall 2"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x30,0x4B,0x03,0xF7];
} else if(eff1=="Plate"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x30,0x5A,0x02,0xF7];
} else if(eff1=="Delay"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x30,0x69,0x01,0xF7];
} else if(eff1=="Panning Delay(FB)"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x30,0x78,0x00,0xF7];
}
parent.outportarr[parent.outportindex].send(settingChange);
}

//CHORUS TYPES
//FLANGER F0 41 10 42 12 40 01 38 04 03 F7
function sel_efftwo(){
var e = document.getElementById("SCeffect2");
eff2 = e.options[e.selectedIndex].text;
if(eff2=="Chorus 1"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x38,0x00,0x07,0xF7];
} else if(eff2=="Chorus 2"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x38,0x01,0x06,0xF7];
} else if(eff2=="Chorus 3"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x38,0x02,0x05,0xF7];
} else if(eff2=="Chorus 4"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x38,0x03,0x04,0xF7];
} else if(eff2=="Feddback Chorus"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x38,0x04,0x03,0xF7];
} else if(eff2=="Flanger"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x38,0x05,0x02,0xF7];
} else if(eff2=="Short Delay"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x38,0x06,0x01,0xF7];
} else if(eff2=="Short Delay(FB)"){
settingChange=[0xF0,0x41,0x10,0x42,0x12,0x40,0x01,0x38,0x07,0x00,0xF7];
}
parent.outportarr[parent.outportindex].send(settingChange);
}

 
Posted : 26/07/2021 1:43 pm
Jason
Posts: 439
Honorable Member
 

A note: use the "code" wrapper in the editor when you paste in some code so it keeps its formatting and is easier to read. It's the button that looks like "

[code type=markup]
//REVERB TYPES
function sel_effone()
{
var e = document.getElementById("SCeffect1");
eff1 = e.options[e.selectedIndex].text;
if (eff1 == "Room 1")
{
settingChange =[0xF0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x30, 0x0F, 0x07, 0xF7];
}
else if (eff1 == "Room 2")
{
settingChange =[0xF0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x30, 0x1E, 0x06, 0xF7];
}
else if (eff1 == "Room 3")
{
settingChange =[0xF0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x30, 0x2D, 0x05, 0xF7];
}
else if (eff1 == "Hall 1")
{
settingChange =[0xF0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x30, 0x3C, 0x04, 0xF7];
}
else if (eff1 == "Hall 2")
{
settingChange =[0xF0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x30, 0x4B, 0x03, 0xF7];
}
else if (eff1 == "Plate")
{
settingChange =[0xF0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x30, 0x5A, 0x02, 0xF7];
}
else if (eff1 == "Delay")
{
settingChange =[0xF0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x30, 0x69, 0x01, 0xF7];
}
else if (eff1 == "Panning Delay(FB)")
{
settingChange =[0xF0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x30, 0x78, 0x00, 0xF7];
}
parent.outportarr[parent.outportindex].send(settingChange);
}
[/code]

One thing I noticed is that you have spaces in the names that you are checking for. The actual device (at least from what I can see in the manual) does not have spaces in any of the reverb names. So "ROOM1" instead of "ROOM 1". That could be an issue unless the names are taken from your own internal database.

I also see in the manual that there is an "effect send level" on CC 91 (Effect 1 (reverb send level)) that you might have to also change. The default is 40.

And finally, the last thing I see is that your next to last value you are sending (checksum) may be incorrect.
Roland checksums are 0x80 - [(bytes 6+7+8+9) MOD 0x80]
You need to add 0x40 + 0x01 + 0x30 = 0x71.
Then add your data value. For "Room1" you have 0x0F.
0x71 + 0x0F = 0x80
Now do that result MOD 0x80
0x80 % 0x80 = 0x00
Subtract from 0x80 to get your checksum
0x80 - 0x00 = 0x80
(If checksum = 0x80, then checksum = 0x00)
So your SYSEX for Room1 should be
[0xF0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x30, 0x0F, 0x00, 0xF7]

* NOTE: I've just dug through the SC-88 manual and a few websites to find this info, I do not own any Roland hardware, so anyone else can correct me if I'm wrong.

 
Posted : 27/07/2021 5:39 am
Jonas
Posts: 207
Reputable Member
Topic starter
 

Well the name is just a value from a dropdown list i created, and on mouse event"fetched" to select effect.
The effect level work for the room reverb, so it is definitly something wrong with the message construction to change effect, could be the checksum as you say.

But i basicly took the messages that another editor "88 edit" that echo its messages used, and it work for the chorus but not reverb "but i have a RA-95.not a SC-88....
But i also see it have something it calls reverb character, could it be a multi message you must send both to get change.

I fear i have to dwelve into the checksums i tried to avoid it.

Thanks for interest!

JT

 
Posted : 27/07/2021 8:58 am
Jason
Posts: 439
Honorable Member
 

See page 9 of the manual for the RA-95 MIDI Implementation
http://cdn.roland.com/assets/media/pdf/RA-95_MI.pdf

Valid "data" bytes for the RA-95 for "reverb" type selection [40 01 30] are 00 - 07. You currently have from 0F - 78 for data values, so those won't work for this device.
The separate "reverb level" [40 01 33] and "reverb time" [04 01 34] CAN take from values from 00 - FF.

 
Posted : 27/07/2021 12:25 pm
Jason
Posts: 439
Honorable Member
 

I checked the manual for the SC-88 (original version) and I don't think those reverb values would work on there either? Its manual has the same information for reverb 40 01 30, 0-7 for the data values. It also contains some extra reverb parameters that the RA-95 does not.

See page 7-27 (Appendix)
http://cdn.roland.com/assets/media/pdf/SC-88_OM.pdf

 
Posted : 27/07/2021 12:33 pm
Share: