Midi Mapping

The Virtual Audio Mixer discussions and support...
Shark-2
Posts: 13
Joined: Sat Mar 05, 2016 10:42 am

Midi Mapping

Post by Shark-2 »

Hello,

I use an Akai Midimix to Control Voicemeeter Banana.
The Setup was easy and it works nearly flawless.

Now I have two questions:

1. My Midi Controller has illuminated Buttons. Is it possible to use them?
At the moment i can't see if i have muted something on my Midi Controller.

2. Is it possible to limit gain slider to max 0dB. I want to have max 0dB when the slider on my Midi Controller is on max.

Thanks in advance
Vincent Burel
Site Admin
Posts: 1556
Joined: Sun Jan 17, 2010 12:01 pm

Re: Midi Mapping

Post by Vincent Burel »

Thanks for your messgae,

as you can see Voicemeeter MIDI mapping considers only a M.I.D.I. Input Device.
there is nothing to output to a M.I.D.I. device and send code to your controller.

But we already got request about having MIDI feedback, to set button LED, to change motorized fader position, etc...
if it's easy to do that for a given M.I.D.I. Controller, designing such user interface allowing to define this communication protocol for all kind of remote surface, is more tricky. however we think about it.

i note also your request to limit the range of a MIDI control.
Shark-2
Posts: 13
Joined: Sat Mar 05, 2016 10:42 am

Re: Midi Mapping

Post by Shark-2 »

Thank you for your fast Response.

For the Button LED i found a little workaround. 8-)
I found a tool called "sendmidi".
It is a command line application, which is able to send Midi commands.

Now i simple used the MacroButtons app (the newest, not the one included in Voicemeeter).
Makro.png
Makro.png (21.72 KiB) Viewed 22656 times
The only problem now is that everytime a push the Mute Button i loose focus in Fullscreen applications


Maybe i take a look on the remote api and Limit my fader this way ;)
Vincent Burel
Site Admin
Posts: 1556
Joined: Sun Jan 17, 2010 12:01 pm

Re: Midi Mapping

Post by Vincent Burel »

ha! nice use case!

yes, clicking on a Macro Button will automatically set the focus on MacroButtons application
to avoid this you may assign a keyboard shortcut or MIDI event to this button (to use it without having to click on it).

Yes, by using Voicemeeter Remote API,
- you can get MIDI code from input device selected by the Voicemeeter MIDI mapping (there is a funtion for this)
- and recompute the range to apply a gain limited to 0dBFS to any Strip or Bus.
heavenlot
Posts: 11
Joined: Tue Apr 26, 2016 1:40 pm

Re: Midi Mapping

Post by heavenlot »

Hi!

i have tried to run a vbs script & a batch script for bypass the focus event with sendmidi (launch the command as hidden or minimized). But it seems that MacroButton can't launch them.
It could be the solution for bypass the focus event inside fullscreen apps =) (because yeah, it occur with midi press button, because sendmidi launch an cmd.exe and close it).

For limit 0dbFS any strip bus, i limit my midi range on my physical button with his own driver (Akai lpd8 Editor: min0 to max 105), i get -60db to -0.5db. You should try on yours.
Vincent Burel
Site Admin
Posts: 1556
Joined: Sun Jan 17, 2010 12:01 pm

Re: Midi Mapping

Post by Vincent Burel »

which version of MacroButton you are using ?
to launch a batch script, you need to call cmd.exe

example to use ping command:

Code: Select all

System.Execute("%windir%\system32\cmd.exe","%windir%\system32","/K ping 192.168.1.1");
heavenlot
Posts: 11
Joined: Tue Apr 26, 2016 1:40 pm

Re: Midi Mapping

Post by heavenlot »

i'm using MacroButton 1.0.0.8.

Ok thanks for your advice, i found the way! ;)

EDIT: Download Link sendmidi.exe : http://www.sreal.com/~div/midi-utilities/ (Thanks Div Slomin)

C:\Midi_tools\bin\ is the sendmidi.exe folder
C:\Users\Loick\Desktop\ is my scripts folder
%windir%\system32\wscript.exe is a script interpreter

i got a batch call.bat file that contain:

Code: Select all

@echo off
cmd.exe /c
START "" /b /MIN C:\Midi_tools\bin\sendmidi.exe --out 1 --note-on 0 %1 %2
EXIT /B
and a vbs call.vbs file containing:

Code: Select all

Set WshShell = WScript.CreateObject("WScript.Shell")
Dim args
Set args = Wscript.Arguments
if args.Count = 2 then
    WshShell.RUN "C:\Users\Loick\Desktop\call.bat " & args(0) & " " & args(1), 0, True
else
    WScript.Echo "Missing parameters"
end if
Set WshShell = Nothing
I call the vbs script inside MaccroButton with:

Code: Select all

System.Execute("%windir%\system32\wscript.exe","C:\Users\Loick\Desktop","/C call.vbs 36 1");
Precision: I have hardcoded 3 arguments from sendmidi.exe because they are always the same in my case and for simplify the MacroButton side and modify just B & C arguments
They are:
--out 1 --> Port Number
--note-on A B C
were A = channel (zero in my case)
B = pitch (the number inside brackets in MacroButton midi catch)
C = Velocity (0 = light off, 1 = light on)

Precision 2: don't forget to change your path, no just copy/paste

Precision 3: i'm not good with batch and vbs ^^, c# is my predilection

And it work without displaying any window and let my focus inside my fullscreen app.


And if you want to implemant sendmidi.exe inside macroapp, the dev' let it under BSD licence and it should be not really hard to implement
Last edited by heavenlot on Wed Apr 27, 2016 3:00 pm, edited 2 times in total.
Vincent Burel
Site Admin
Posts: 1556
Joined: Sun Jan 17, 2010 12:01 pm

Re: Midi Mapping

Post by Vincent Burel »

thanks you for sharing your experience there
very interesting! this can be useful for many people i guess!
liquidate
Posts: 6
Joined: Fri Jan 16, 2015 10:49 pm

Re: Midi Mapping

Post by liquidate »

Huge thank you to heavenlot! I used your scripts and was able to setup my Korg nanoKontrol2 to illuminate the button lights when muting. Works very nicely and I'm looking forward to putting it to use with the record and play transport controls (if possible).

For those using the nanoKontrol2, if you want to use heavenlot's scripts as is, you'll need to do the following:

Install the Windows driver and the Korg Kontrol Editor.
Open the Korg editor, select the button you wish to illuminate and change the "assign type" to "note", button behavior to toggle, and on value to 1
Select the Communication->Write Scene Data menu item

Note: you might need to remap the midi control in VoiceMeter now that the type is note, instead of the previous "control change"

Finally, thank you to Vincent for putting out an amazing sound utility. If you haven't donated, you really should. This app is worth donating for twice! Vincent, I'm sure that putting this type of UI (for illumination, motorized fader position, etc) into VM would be daunting, but if you ever can you can rest assured that there are users out there that would appreciate it!
bidomo
Posts: 4
Joined: Wed Sep 21, 2016 3:50 pm

Re: Midi Mapping

Post by bidomo »

Didn't want to open a new thread as this is somewhat related to the topic.

I'm currently waiting for my NanoKontrol2, and I've been trying to send some midi commands with sendmidi, but I haven't had any luck in succeding.

I'm using my phone to control banana, I've set some controls in the midi mapping and using TouchOSC I'm sending some commands, it works pretty well, This requires me to either use the phone or directly change the value from the computer for like say, muting A1 and unmuting A2, this is a bit problematic in some scenarios, so I wanted to map a key in my HP remote to send a command (changing registry values to send something like Control-F15 and stuff like that and use an AHK script which listens to this keystroke and executes the desired command)

I haven't went as far as trying to do this in the remote, I've been trying some commands without any luck, maybe I'm doing something wrong.
What I've tried doing was:
sendmidi --out 1 --control-change 1 13 0
It doesn't work at all (Control Change 13 is Mute BUS A1). In TouchOSC the kind of control is a push button (so range is 0-1), have tried both numbers, even tried to use a different ouput, only takes 0 or 1, anything else gives an error (cannot open MIDI output port 5 - or the number I use).

Any help will be appreciated
Post Reply