Ctrlr based Editor for MBFM

The SysEx command is correct, see also the documentation: http://svnmios.midibox.org/filedetails.php?repname=svn.mios&path=%2Ftrunk%2Fapps%2Fsynthesizers%2Fmidibox_fm_v1%2Fdoc%2Fmidibox_fm_sysex_implementation.txt

Type definitions
~~~~~~~~~~~~~~~~

00: Voice #1, EEPROM access (exception: command #06 always accesses RAM)
01: Voice #2, EEPROM access (exception: command #06 always accesses RAM)
02: Voice #3, EEPROM access (exception: command #06 always accesses RAM)
03: Voice #4, EEPROM access (exception: command #06 always accesses RAM)
08: Voice #1, direct RAM access
09: Voice #2, direct RAM access
0A: Voice #3, direct RAM access
0B: Voice #4, direct RAM access

10: Drums, EEPROM access
18: Drums, direct RAM access

70: Ensemble, EEPROM access
78: Ensemble, direct RAM access
[/code]













> I'm using Ctrlr 965 on Mac OS X (10.6.8)







This is the actual issue - please use r946, you will find the link in the first posting!







Best Regards, Thorsten.

I tried to understand how ctrlr works.

For that reason i tried to swap 2 of the Encoder.

Tried with OP1 Attack and OP2 Attack. Adress is 20h and 21h.

In the rightside Edit Pane i swapped the hex values. (OP1 Attack = 21h, OP2 Attack = 20h)

this works well while sending to the MBFM.

But it doesn’t works the other way, when i press the recieve button.

Where do i have to change something for recieving purpose?

P.S.:

A send all button would be cool

Open the Lua source code viewer, select the “receiveMIDI” tab.

It shows you a program that I wrote to map incoming SysEx data to the controllers.

This part is relevant for the Attack controllers:

assignModulator(mem_block:getByte(0x20), "OP1Attack")
assignModulator(mem_block:getByte(0x21), "OP2Attack")
[/code]









as you can see (when you read & (!) understand the code a little bit more), the controller name is relevant.







So: your experiment will work if you change the controller names in these function calls as well.







Best Regards, Thorsten.

Open the Lua source code viewer, select the “receiveMIDI” tab.

It shows you a program that I wrote to map incoming SysEx data to the controllers.

This part is relevant for the Attack controllers:

assignModulator(mem_block:getByte(0x20), “OP1Attack”)

assignModulator(mem_block:getByte(0x21), “OP2Attack”)

as you can see (when you read & (!) understand the code a little bit more), the controller name is relevant.

So: your experiment will work if you change the controller names in these function calls as well.

Best Regards, Thorsten.

Really?

In my understanding i have to change the (0x20) to (0x21), the (0x21) to (0x22) and so on if i want to shift all CC after CC32.

Junge, wir verstehen uns einfach nicht… :wink:

Best Regards, Thorsten.

Junge, wir verstehen uns einfach nicht… :wink:

Best Regards, Thorsten.

Ja ich weiss, mein Englisch ist richtig lausig.

Wäre das so nicht richtig, wenn ich CC32 auslassen will und die folgenden CCs bis zum nächsten freien CC um 1 zu “shiften”?

Also von 0x20-0x34 nach 0x21-0x35

...

...

assignModulator(mem_block:getByte(0x21), "OP1Attack")

assignModulator(mem_block:getByte(0x22), "OP2Attack")

assignModulator(mem_block:getByte(0x23), "OP3Attack")

...

...

...

assignModulator(mem_block:getByte(0x34), "OP3Waveform")

assignModulator(mem_block:getByte(0x35), "OP4Waveform")

...

...

Ich hab übrigens nen Fehler im jetzigen Panel gefunden, OP4 Sustain hat nen falschen Wert. (2f statt 2c)

Ich schau mir das morgen alles mal in Ruhe an, hab noch nicht alle Regler durchgeschaut und werd dann ne korrigierte Version hochladen.

Sorry for not speaking english.

Beim weiteren Durchschauen sprang mir grad noch ins Auge, dass die Parameter Keyscaling für OP1-4 an den Drehreglern alle auf 0x24 gestellt waren, statt 0x18-0x1b.

Ich bin noch nicht durch, wenn ich noch was finde werd ichs hier posten.

Die verbesserte Version lad ich hoch, wenn alles durchgecheckt ist.

[EDIT]

SHORT ENGLISH VERSION:

I found some bugs in the panel but need more time for investigation before i will upload a fixed version.

[/EDIT]

Wäre das so nicht richtig, wenn ich CC32 auslassen will und die folgenden CCs bis zum nächsten freien CC um 1 zu “shiften”?

Also von 0x20-0x34 nach 0x21-0x35

The MBFM firmware doesn’t allow to shift CCs by 1, because sometimes logical operations such as “>>2” or “&3” are used to determine the parameter type and operator number!

The only way I see would be to move all 4 OP Attack parameters to an unused range which is dividable by 4, such as 0x34..0x37

Ich hab übrigens nen Fehler im jetzigen Panel gefunden, OP4 Sustain hat nen falschen Wert. (2f statt 2c)

0x2b is the correct value.

Beim weiteren Durchschauen sprang mir grad noch ins Auge, dass die Parameter Keyscaling für OP1-4 an den Drehreglern alle auf 0x24 gestellt waren, statt 0x18-0x1b.

I fixed this and upoaded a new version to the Device Database

Die verbesserte Version lad ich hoch, wenn alles durchgecheckt ist.

Not required, it would be more helpful if you would describe the errors so that I can doublecheck if your assumption is correct and do the actual change on the “master panel” which will be uploaded to the device database.

Especially since you are doing changes which will only work with your modified firmware (CC moved to different location), your uploaded panel would only confuse people and lead to unnecessary “bug reports”

Best Regards, Thorsten.

This is the actual issue - please use r946, you will find the link in the first posting!

Doh, sorry I missed that :whistle:

Thanks for the solution!

I finally fixed the display on my MBFM and gave this another spin. I am curious as to if there is a way to send a patch change even using the interface? I wasn’t able to find it, although the converse works (pulling in the current patch from MBFM). That functionality would be nice if I was able to record the bank change from CTRLR into a MIDI/automation track in Ableton Live (thereby having a nice work around for Live’s own poor handling of bank/patch changes).

-> TODO (together with the missing patch store/restore capabilities)

Btw.: you could already add a simple program/bank change button to the panel by yourself, just enter edit mode and add the controllers! :slight_smile:

Best Regards, Thorsten.

:slight_smile: I’ll check that out! Seems pretty straightforward to add things. Only other issue is that changes on the panel weren’t being sent back to Live as MIDI events so I’ll still need to figure that one out.

Finally the MIDIbox FM V1 panel is running with the latest (and greatest) Ctrlr 1209 release under Windows and MacOS :smile:

http://discourse.midibox.org/t/topic/16377

 

Best Regards, Thorsten.

 

HI!

 

Works great!  :rolleyes:

 

Thank you and Best regards, IGI

:slight_smile:

 

Best Regards, Thorsten.

I grabbed the 1209 release for OS Xbut the VST folder is empty? Something I’m missing there?

 

EDIT: AU version seems to be working just fine, however.

It’s empty because I’m not able to compile the VST variant.

Best Regards, Thorsten.

Hi,

i am using CTRLR 1209 and noticed the following issue:

After hitting the CTRLR receive button and changing the instrument’s patch via datawheel afterwards,

then the instrument bank allways switches to bank A.

Is this normal?

Best regards

Marxon

No this isn’t normal, and it sounds strange. I don’t see a mechanism behind this behaviour…

 

Best Regards, Thorsten.

Hi Thorsten,

…dont know if it matters but i use FM 1.4e (PIC18F452 version).

Marxon