Old 02-15-2016, 11:48 AM   #1
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 131
Default AKAI MIDIMIX control surface released

Here is an OSC control surface (software) for controlling REAPER using the Akai MIDIMIX midi controller.
Features of this fully implemented V1.01b release "Carnelian" supporting both Windows and macOS include

- 9 Sliders control track recording levels and master level
- Up to 72 (and 144) knobs in 3 banks assignable to anything in Reaper
- Two operating modes: Mixer and Instrument
- All MIDIMIX buttons enabled as recarm, mute, solo, bank, track select, FX open with feedback from Reaper to the MIDIMIX buttons' LEDS
- Soft takeover for track volume sliders, pans and the assignable knobs
- Easily customisable without dependencies on binaries or compilation
- Prototype GUI add on available to show the learnt knobs' assignments: see Darkstar's Head Up Display

The OSCII-bot script files needed for the control surface and installation instructions/user guide is in the attached zip file.
Akai MIDIMIX controller details are at https://www.akaipro.com/midimix

Please leave some forum feedback if the MIDIMIX support is of use!

Release history:
1.01b 27 Nov 2017 "Carnelian". Extends knobs to 144 virtual assignable knobs. Bug fixes for instrument mode. Improved user guide
1.01a 27 Oct 2017 "Beryl". Adds soft takeover for all knobs (56 views)
1.00a 21 Apr 2017 "Amethyst". Adds soft takeover for track volume sliders and pan. User guide amendments. (165 views)
0.95c 26 Jun 2016 Fixes minor LED handling bug on brief button press (reported in post #22) (311 views)
0.95b 25 Mar 2016 Knob parameter: learn assignment flexibility improvement (356 views)
0.95a 15 Feb 2016 Original forum release
Attached Files
File Type: zip MidiMix101b1.zip (61.8 KB, 501 views)

Last edited by goldenarpharazon; 03-22-2019 at 09:40 AM.
goldenarpharazon is offline   Reply With Quote
Old 02-24-2016, 10:38 PM   #2
sodium
Human being with feelings
 
sodium's Avatar
 
Join Date: Aug 2010
Posts: 77
Default

Quote:
Originally Posted by goldenarpharazon View Post

The OSCII-bot script files needed and installation instructions/user guide are in attached zip file.
Akai MIDIMIX controller details are at http://www.akaipro.com/product/midimix

Please leave some forum feedback if the MIDIMIX support is of use!
Hey thank you, goldenpharazon. I just bought one of these controllers today and reading this thread, am comforted to know that my unit wasn't faulty because the LEDs were not functioning and that a way to make the unit talk to REAPER has been developed and shared. Thank you

I have DL'd the zip file and extracted but can't seem to find out how to make it all work in the way it is intended.

Please excuse my lack of knowledge but may I ask please:

1. How does one set this up please?
2. What/where are OSCII bot files?
3. Is there perhaps a guide to setting up the actions required

Many thanks again for software the post, and to all in this thread, thank you.

Cheers,
na
__________________
i hate everyone and i'm equipped with nothing to offer.
sodium is offline   Reply With Quote
Old 02-25-2016, 07:57 AM   #3
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 131
Default

The .pdf user guide in the original download .zip in post #1 has been amended with more guidance on where OSCII-bot (from Cockos) can be found, and to the forum postings on how to set up an OSC script etc. Hopefully that will help.

The "actions" as in Reaper actions like recarm, mute, solo, bank, track select, FX open etc will just happen on a MIDIMIX button press when OSCII-bot is all installed and run and working since these actions are programmed in the MidiMixControl.txt script. The only item needing further set up is for the 72 knobs where "learning" will associate the knob to any desired specific value in Reaper.
goldenarpharazon is offline   Reply With Quote
Old 03-07-2016, 10:51 AM   #4
fataldissidence
Human being with feelings
 
Join Date: Nov 2015
Posts: 13
Default

thanks for the zip file, am currently downloading.

Does this setup acomodate for people who want to live mix effects without the need to toggle between tracks?

cheers
fataldissidence is offline   Reply With Quote
Old 03-07-2016, 12:28 PM   #5
Acid
Human being with feelings
 
Join Date: Mar 2016
Location: Expose all audiophiles! Name all audiophiles!
Posts: 60
Default

Does the unit work with ASIO drivers?
Acid is offline   Reply With Quote
Old 03-07-2016, 02:45 PM   #6
ivansc
Human being with feelings
 
Join Date: Aug 2007
Location: Near Cambridge UK and Near Questembert, France
Posts: 18,785
Default

Quote:
Originally Posted by Acid View Post
Does the unit work with ASIO drivers?
Its a MIDI based controller, not an interface.

No ASIO involved or indeed necessary.
__________________
Brexit Schmexit. Lets have a violent revolution instead. Bagsy the first go with a nuke! (Here, Moggy Moggy...)
ivansc is offline   Reply With Quote
Old 03-07-2016, 03:53 PM   #7
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 131
Default

Quote:
Originally Posted by fataldissidence View Post
thanks for the zip file, am currently downloading.

Does this setup acomodate for people who want to live mix effects without the need to toggle between tracks?

cheers
The MIDIMIX sliders control the level on each of 8 adjacent tracks in a bank so that hopefully does what is wished for live mixing by arranging tracks to suit a bank? A single bank left or right press will assign the sliders to the adjacent bank of 8 tracks.

The knobs can be assigned using "learn" to any Reaper value and keep this assignment independent of any track selection, so that should be helpful too.
goldenarpharazon is offline   Reply With Quote
Old 09-05-2017, 02:33 AM   #8
XamiKami
Human being with feelings
 
Join Date: Aug 2017
Posts: 41
Default

This is amazing, thanks!

+---QUESTION:-----------------------------+
Just a little question to the people smarter than me:
As i don't really need the master Fader controlled ( should really always be at 0db),
i'd like to use it as a generic control, like the knobs. is that possible? if yes, what do i have to do to get it to be like that?

Also, more importantly, in Instrument mode I'd like to use one of the buttons ( like the 8th RecArm Button) to fire a custom action that bypasses the focused Effect. How do i do that? I tried replacing the standart line in the oscii-txt
( oscsend(OSC_to_REAPER, device_track_select, 8); oscsend(OSC_to_REAPER, device_fxparam_bank_select );

to
(oscsend(OSC_to_REAPER, reaper_action, _RS5bf653642222c500b0f33ad11ab015810a766f96);

as that is the action ID, but it doesnt work.
Please help me ;D Thanks in Advance
XamiKami is offline   Reply With Quote
Old 09-05-2017, 04:35 AM   #9
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 131
Default XamiKami's modification question

Quote:
Originally Posted by XamiKami
As i don't really need the master Fader controlled ( should really always be at 0db),
i'd like to use it as a generic control, like the knobs. is that possible? if yes, what do i have to do to get it to be like that?
For using the master fader, modify this piece of code from the Amethyst release:-

Code:
    tmsg2 == master ?    
        oscsend(OSC_to_REAPER, reaper_softaction, tmsg3/127, 12); // master track volume - action for soft takeover
    );
The oscsend() call here can be changed to do whatever is wished using the slider's position (which is stored in tmsg3 and is converted in the call from integer to a real number between 0 and 1)

Quote:
Originally Posted by XamiKami
in Instrument mode I'd like to use one of the buttons ( like the 8th RecArm Button) to fire a custom action that bypasses the focused Effect. How do i do that? I tried replacing the standart line in the oscii-txt
( oscsend(OSC_to_REAPER, device_track_select, 8); oscsend(OSC_to_REAPER, device_fxparam_bank_select );
to
(oscsend(OSC_to_REAPER, reaper_action, _RS5bf653642222c500b0f33ad11ab015810a766f96);

as that is the action ID, but it doesnt work.
That's the correct piece of code to modify. But with the custom ID one is not using an integer number : rather it will be a string
One probably needs to use s/action/str as well and create additionally (say)
Code:
reaper_action_id = "s/action/str";  // ACTION as a custom ID string
in the header code of MidiMixControl.txt

Read the two forum posts
on action & custom IDs here
and here
which should help.

When testing, the OSCII-bot GUI window will show the OSC data being sent to Reaper as a diagnostic aid for what happens in the Control Surface and what actually happens at the Reaper end.

Last edited by goldenarpharazon; 09-05-2017 at 08:38 AM.
goldenarpharazon is offline   Reply With Quote
Old 09-06-2017, 04:24 AM   #10
XamiKami
Human being with feelings
 
Join Date: Aug 2017
Posts: 41
Default

Wow thanks for the quick answer
I'll try that.
How would i go about making all of the Mute and Recarm Buttons just generic Midi Buttons in Instrument mode ( like the knobs are in instrument mode )?

EDIT: im kinda stuck ;D What should my oscsend for the custom action look like now? i defined the action_id/str in the header, but now what do i have to change in the oscsend?

Last edited by XamiKami; 09-06-2017 at 04:32 AM.
XamiKami is offline   Reply With Quote
Old 09-06-2017, 06:07 AM   #11
XamiKami
Human being with feelings
 
Join Date: Aug 2017
Posts: 41
Default

Also, i see that the script tells reaper to change the color of the selected Tracks, should that work? Because it doesn't for me. And that would be damn helpful haha ;D Any ideas how to get that to work?
XamiKami is offline   Reply With Quote
Old 09-06-2017, 09:41 AM   #12
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 131
Default

Quote:
Originally Posted by XamiKami
How would i go about making all of the Mute and Recarm Buttons just generic Midi Buttons in Instrument mode ( like the knobs are in instrument mode )?
Change the code lines for the instrument mode buttons like this
Code:
( oscsend(OSC_to_REAPER, device_track_select, 1); oscsend(OSC_to_REAPER, device_fxparam_bank_select ););
to use an oscsend() call with your own unique string instead (very similar to the knobs) and then, using Reaper, "learn" that string to the required Reaper action.

Referring to the OSCII-bot syntax for oscsend()
(hyperlink) might help too.

Quote:
Originally Posted by XamiKami
What should my oscsend for the custom action look like now? i defined the action_id/str in the header, but now what do i have to change in the oscsend?
Please read both of the two forum threads identified with underlining in the previous reply from top to bottom: they do contain the answer.

Quote:
Originally Posted by XamiKami
....the script tells reaper to change the color of the selected Tracks, should that work?
Yes it works, and other users have previously confirmed it as working. Use the MIDIMIX "Bank Left" and "Bank Right" buttons. In all the released versions, when in mixer mode it changes colours of banks of 8 tracks at a time when banking, using standard Reaper actions. In instrument mode the banking does not work on tracks like this so there will be no colour change (by design). The user guide explains this.

Looking at the PeaveyStudio Mix control surface code here (the code is in the zip file) as well may help if trying to modify the MIDIMIX code. Forum user "Banned" used the same mechanism as used here, along with describing other alternative track colour schemes and their relative merits, some using SWS Extensions. The Peavey StudioMix code also includes use of custom IDs with oscsend() that one could just copy too.

As suggested earlier look at the OSCII-bot GUI window as a debugging tool. Posting output from this GUI window or other transcribed errors, described clearly along with the problem's context makes "remote" assistance easier when asking for forum help.

Last edited by goldenarpharazon; 09-07-2017 at 01:38 AM. Reason: Clarified in two successive edits to help XamiKami
goldenarpharazon is offline   Reply With Quote
Old 01-21-2018, 01:27 PM   #13
Charlie Hansen
Human being with feelings
 
Join Date: Feb 2015
Posts: 1
Default Akai Midimix installation in Reaper

Could someone please tell me what directories the following files should be installed in:
OSCII-bot, MidiMixcontrol.txt, and MidiMix.Reaper.OSC and is this all I have to do to get the MidiMix working in Reaper.

I'm new at this but not new at recording I just don't seem to be able to get the MidiMix to work in Reaper. It works flawlessly in Ableton without installation. If someone could give me step by step installation instructions in "Dummy" terms I would greatly appreciate it.

Thanks in advance.

Last edited by Charlie Hansen; 01-21-2018 at 01:43 PM.
Charlie Hansen is offline   Reply With Quote
Old 01-22-2018, 04:13 AM   #14
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 131
Default

OSCII-bot can go anywhere you wish; it is an executable file so it possibly belongs alongside other programme files for a tidy computer.

OSCII-bot's "readme.txt" file says where script files including MidiMixControl.txt can be put.

http://reaper.fm/sdk/osc/osc.php#osc_pattern_config describes the .ReaperOSC file. This web page tells how Reaper will show the pre-existing .ReaperOSC file's location on your Reaper installation. The MIDIMIX variant file can just be put alongside the default one in the file system.

After the file installation the Reaper MIDIMIX control surface user guide .PDF sets out the next steps. It directs to here http://forum.cockos.com/showpost.php...8&postcount=11 for further OSC setup instructions and hints should they be needed.

Last edited by goldenarpharazon; 01-22-2018 at 08:11 AM. Reason: Better explanation
goldenarpharazon is offline   Reply With Quote
Old 03-27-2018, 08:28 AM   #15
Piszpan
Human being with feelings
 
Join Date: Aug 2016
Posts: 54
Default

@goldenarpharazon
Over 3 months later I'm still stuck in the same point. I have read your hints, but I am simply not able to do this myself. Copying/pasting sections of code or finding and changing some values - that's feasible for me. But writing new code - out of my reach.

I am talking here, of course, about adding some functionality to the buttons in the instrument mode. After some thinking I came to conclusion that even the simplest implementation (I mean: no banks, no second layer of funcionality accessible via the Solo button, no LED utilization) would still be a big advance in usability of your great script.

At this moment, whenever I have some virtual switches in my VST instrument GUI's, I use the second bank of knobs in your script. It works, but it is not as elegant nor ergonomic as just having physcial buttons under my fingers. Infortunatelly I am not able to write code that would handle the button toggle mode in instrument mode.

Help me, Obi-Wan...
Piszpan is offline   Reply With Quote
Old 03-31-2018, 01:06 PM   #16
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 131
Default Repurposing buttons to be learnable with a toggle

Here goes: teach a man to fish, rather than give a fish...

Use this Notepad++ editor to look at the script code. https://forum.cockos.com/showthread....t=notepad+eel2
It will highlight the syntax. aids learning, and helps to ensure that block start and ends (the curved brackets and semicolons etc) align

Then let's start by repurposing a single recarm button. One step at a time to make sure the syntax and intent is correct.

The code needing to be changed is here.
Code:
          midimix_mode == 0 ? oscsend(OSC_to_REAPER, reaper_track_recarm_toggle, 1 ) : 
          		      ( oscsend(OSC_to_REAPER, device_track_select, 1); oscsend(OSC_to_REAPER, device_fxparam_bank_select ););
We will change either the first, or more likely the second pair of oscsend() calls (device_track_select & device_fxparam_bank_select: which are made in instrument mode), to instead call a new function toggle_button() which will do the toggle and send the OSC.

Start by declaring a toggle flag. Do this in the // Variable section to be tidy and consistent.

Code:
button1 = 0;   // Flag to track button state
Secondly write the new function needed that looks about like this

Code:
function toggle_button()
//
// Send a toggling OSC string on a button press. Sends 1 or 0 value on subsequent button presses
//
(   
    button1 == 0 ?
    (     
       button1 = 1; 
       oscsend(OSC_to_REAPER,"f/midimix/button/1", 1);
    ):
    (
       button1 = 0;
       oscsend(OSC_to_REAPER,"f/midimix/button/1", 0);  
    ); 
);
Finally call toggle_button() as introduced at the start of this explanation. So the code looks like this. Check the ); so the blocks line and pair up correctly.

Code:
          midimix_mode == 0 ? oscsend(OSC_to_REAPER, reaper_track_recarm_toggle, 1 ) : 
          		      toggle_button(); );
There. We have a single toggling button that can be "learnt" to change something in Reaper, using Reaper's learn function instead of Record Arming or opening an effect

To harness all eight buttons, this function can either be cut and pasted and modified to make eight function variants (crude but effective) or by extending to do all eight buttons instead of the first one (better but trickier coding whilst learning).

To do such extension the new toggle_button() function would need extending
- to take a parameter 1-8 passed to it depending on the button (see example of parameters in send_soft_fader() function )
- to use an array of eight flags one per button, rather than a single variable
(see the use of memset(): considerable care needed here to start a second array so it doesn't overlap FX_GUIstate)
- send an OSC string per button like "f/midimix/button/1" where the integer in the string varies from 1-8 per button

Finally tidy up the use of a literal string in the toggle_button() function by declaring the string in the same way as the other strings.

One could even extend the use of this new function to more buttons beyond the eight record arms.

Last edited by goldenarpharazon; 04-16-2018 at 02:33 PM. Reason: Made end intention of changes clearer. Added easy cut and paste suggestion. Added EEL2 syntax aware editor
goldenarpharazon is offline   Reply With Quote
Old 04-20-2018, 01:16 PM   #17
Piszpan
Human being with feelings
 
Join Date: Aug 2016
Posts: 54
Default

@goldenarpharazon

Hurray! I finally managed to do it - thanks to your detailed instructions, of course.
Thank you!
Piszpan is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 09:47 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.