I recently acquired the Hammond B-3X from IK Multimedia. In parallel to this, I put to function as a MIDI controller an old Hammond B3 clone module, which is VOCE v5. Because it has the ability to transmit midi signals while its physical controls are changed, except for the volume, which only controls the volume of internal audio, which it doesn’t matter, because I’m using the gig performer through notebook and audio interface in my performances. Then it works similarly to the DMC-122.
Ok. So I had the same problem, because the positions transmitted by vibrato / chorus control do not correspond to those implemented in the B-3X. And since I can’t change the values of VOCE V5, because they are fixed values in the hardware, I ended up implementing a very simple scriptlet in my rackspace, which I will leave below.
And in my old rackspace, where I drew just a few main controls besides the drawbars, it worked very well.
Then I decided to use Rackspace B-3X Special, created by @npudar, which offers much more features. So the scriptlet not worked. When I monitored the MIDI controls after the scriptlet, it only shows the number 90 control change, but it is quite strange, because the control change number sent by my module is 93. I have to implement the scriptlet code together with the existing code on B-3X Special Rackspace?
I will leave the correspondence between the numbers of my V5 module and the B-3X, where, even if the numbers are not exactly these, they are approximate, and were working before. The numbers on VOCE V5 are displeyed on it’s manual.
| V5 | B-3x |
V1 | 18 | 127 |
V2 | 36 | 27 |
V3 | 58 | 78 |
C1 | 79 | 0 |
C2 | 100 | 52 |
C3 | 122 | 102 |
I’m sorry for the eventual errors in writing, i’m from Brazil and my english is at basic level. And, I have basic knowledge in programming language too. If the scriptlet code can be improved in any way, I accept suggestions.
Scriptlet Code:
Initialization
// Shows an message on the bottom of Scriplet window
SetDisplayMessage("Copyright (c) Deskew Technologies, LLC")
//Defines an info message to be shown when the user presses the "i" button
SetInfoMessage("Change CC Vibrato MIDI events transmitted from VOCE V5 to B3-X")
End
var m : MidiMessage
On ControlChangeEvent(m : ControlChangeMessage) Matching 93
var thisCCval: integer
var thisCCch: integer
var newCCval: integer
var ccm: ControlChangeMessage
thisCCval = m.GetCCValue()
thisCCch = m.GetChannel()
select
thisCCval == 18 do
newCCval = 127
thisCCval == 36 do
newCCval = 27
thisCCval == 58 do
newCCval = 78
thisCCval == 79 do
newCCval = 0
thisCCval == 100 do
newCCval = 52
thisCCval == 122 do
newCCval = 102
End
ccm = MakeControlChangeMessageEx(93, newCCval, thisCCch)
SendNow (ccm)
End
I am very grateful for your attention.