Created
March 9, 2021 22:09
-
-
Save freddieventura/8cafa4321707b1309bc0f191b75c00b5 to your computer and use it in GitHub Desktop.
Create a Virtual Midi Device with Open Stage Control for Ableton (How-to Full Instructions)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
_____ _ _ _ | |
|_ _| _| |_ ___ _ __(_) __ _| |_ | |
| || | | | __/ _ \| '__| |/ _` | (_) | |
| || |_| | || (_) | | | | (_| | |_ | |
|_| \__,_|\__\___/|_| |_|\__,_|_(_) | |
_ _ _ _ _ _ _ | |
__ _(_)_ __| |_ _ _ __ _| | _ __ ___ (_) __| (_) __| | _____ __ | |
\ \ / / | '__| __| | | |/ _` | |_____| '_ ` _ \| |/ _` | |/ _` |/ _ \ \ / / | |
\ V /| | | | |_| |_| | (_| | |_____| | | | | | | (_| | | (_| | __/\ V / | |
\_/ |_|_| \__|\__,_|\__,_|_| |_| |_| |_|_|\__,_|_|\__,_|\___| \_/ | |
_ _ _ _ | |
(_) ___ ___ __ _(_) |_| |__ | |
| |/ __/ _ \ \ \ /\ / / | __| '_ \ | |
| | (_| __/ \ V V /| | |_| | | | | |
|_|\___\___| \_/\_/ |_|\__|_| |_| | |
_ | |
___ _ __ ___ _ __ ___| |_ __ _ __ _ ___ ___ ___ | |
/ _ \| '_ \ / _ \ '_ \ _____/ __| __/ _` |/ _` |/ _ \_____ / __/ _ \ | |
| (_) | |_) | __/ | | |_____\__ \ || (_| | (_| | __/_____| (_| (_) | | |
\___/| .__/ \___|_| |_| |___/\__\__,_|\__, |\___| \___\___/ | |
|_| |___/ | |
_ _ | |
_ __ | |_ _ __ ___ | | | |
| '_ \| __| '__/ _ \| | | |
| | | | |_| | | (_) | | | |
|_| |_|\__|_| \___/|_| | |
Links: | |
Open Stage Control Main Page: https://openstagecontrol.ammd.net/ | |
Forum: https://openstagecontrol.discourse.group/ | |
Download: https://openstagecontrol.ammd.net/download/ | |
Documentation: https://openstagecontrol.ammd.net/docs/getting-started/introduction/ | |
Docu-Widgets: https://openstagecontrol.ammd.net/docs/widgets/general-mechanics/ | |
Docu-MIDI: https://openstagecontrol.ammd.net/docs/midi/midi-configuration/ | |
Free-MIDI course on youtube by (Shiftedphase) : https://www.youtube.com/watch?v=5IQvu8zlmJk | |
Bonus for Ableton Users (remote-MIDI Scripts Isotonik BCRXL: https://www.youtube.com/watch?v=DvM45u14M-0 ) | |
ClyphX for Ableton: https://www.youtube.com/watch?v=aCFFIVCculI | |
Note: Need a bit of Understanding on how MIDI protocl works , at least know how are the MIDI Messages | |
Note2: Steps differ slightly on Windows10 vs linux/mac | |
Note3: This tutorial will use generic paths and filenames, pay attention on how to change them to your ownones | |
1st) You need to write down the messages your MIDI Controller sends to Ableton | |
Write them down in a chart | |
Note that: different encoders, knobs, push buttons etc behave differently , check each component properly | |
2nd) You need to create 2 Virtual Midi Ports to communicate with the DAW : | |
- In linux/mac you can skip this part by just adding a parameter any time you invoke open-stage-control | |
$ open-stage-control --midi virtual-midicontroller:virtual | |
- In Windows10 you need to use a utility such as "loopMIDI" from Tobias Erichsen | |
New port-name: >> "virtual-midicontroller-in" >> + | |
New port-name: >> "virtual-midicontroller-out" >> + | |
3rd) Create a Session in open-stage-control with the same layout in a virtual MIDI Device | |
1st) Create the template: | |
$ open-stage-control | |
# save "/some/path/virtual-midicontoller.json" | |
2nd) Open again open-stage-control with the session and sending MIDI | |
$ open-stage-control --midi virtual-midicontroller --load "/some/path/virtual-midicontroller.json" | |
WinPowerShell : .\open-stage-control.exe -- --midi virtual-midicontroller:virtual-midicontroller-out,virtual-midicontroller-in --load "c:\some\path\virtual-midicontroller.json" | |
4th) Customize your session on open-stage-control to make it look like the real-hardware | |
Add widgets, knobs, buttons, sliders | |
On each widget you need to follow some rules in order to midi route their messages accordingly | |
Rule are in here | |
https://openstagecontrol.ammd.net/docs/midi/midi-messages/ | |
For instance: a knob that is going to send Control Change messages | |
address: /control | |
pre-args: [1, 7] (MIDI channel 1, control number 7 ) | |
range: {"min": 0, "max": 127} | |
target: midi:virtual-midicontroller | |
For Buttons, check if they behave as (toggle or push or tap) | |
on: 127 | |
off: 0 | |
mode: toggle | |
When finnishing with the first knob, check if its sending the messages properly (you can use a program such as MIDI-OX.exe on Win10 or "midisnoop" on linux) | |
-- Carry on populating the whole device, check the features of open-stage-control it may give you some cool ideas | |
on customizing the device | |
-- Once finnish Press Ctrl + S (Save) | |
-- You can even pop into the web-client, in a lan connected tablet, Browser: ip_address:8080 (you can customize the port) Carefull with firewall rules | |
5th) Open Ableton (or any DAW you are using) | |
> Preferences (Ctrl , ) > Link MIDI > Control Surface: Input Output | |
MIDI Controller Script virtual-midicontroller-in virtual-mid....-out | |
Takeover Mode: Value Scaling | |
MIDI Ports: Track Sync Remote | |
Input: MIDI Controller Script(...-in) On Off On | |
Output:MIDI Controller Script(...-out) On Off On | |
-- Enjoy!! | |
BonusTH) If using an Android Tablet to use with the Web-client | |
- Make use of the full screen by installing "Opera-Mini" | |
# top right corner > Opera Logo > Gear Logo > Fullscreen > Enabled | |
- Set-up inmersive mode in Android | |
## Hide the status bar (set inmersive mode) | |
adb start-server | |
## hide only the status bar | |
db shell settings put global policy_control immersive.status=* | |
## hide onle the navigation bar | |
adb shell settings put global policy_control immersive.navigation=* | |
## hide both | |
adb shell settings put global policy_control immersive.full=* | |
BonusTH) (only Ableton users) | |
Check the following utilities which will expand your interactivity with Ableton using the MIDI Contoller | |
ClyphPro : https://isotonikstudios.com/product/clyphx-pro/ | |
Remote Surface Control: https://isotonikstudios.com/product-category/ableton-live/control-surface-scripts/ | |
Preditor 2: https://isotonikstudios.com/product/preditor-2-control-surface-automapping-utility/ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment