Author Topic: AZ: Not ... (a mouse or a keyboard as a dedicated REAPER controller)  (Read 887 times)

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1144
Functionality
As a class of devices, mouses are cheap, small and can work without cable for long time. The only other class of devices which can compete in that positions are IR/RF remotes. But they normally do not have encoders (scroll wheel on mouse).
Another interesting class of devices is computer keyboard. Around 100 buttons, also cheap, several form factors, optionally wireless.

With this tiny REAPER Control Surface plug-in, any mouse or keyboard can work as a dedicated REAPER controller. It will not perform its usual duty, so it will not "click" nor move cursor on the screen. And you can not type text with it. In other words it will not interfere with other mouse/keyboard you want continue to use.

In the current version (mouse):
  • mouse buttons always sends Note On/Off on configured channel:
    • Left button (alone),  on release
    • Right button (alone), on release
    • Left + Right combination, on Right push
    • Right + Left combination, on Left push
    • Middle (wheel), on release
    • Left + Middle, on Middle release
    • Right + Middle, on Middle release
  • the Wheel can send "CC Relative 1" messages or Note messages (turn direction dependent), configuration dependent:
    • wheel alone, pushed/not pushed
    • Left button + wheel  pushed/not pushed
    • Right button + wheel pushed/not pushed
  • when touched track is changed as the reaction on device binding, the extension can audition touched track name. Note that Windows audio should be able to work in parallel for that
  • is you want to send "normal" MIDI messages, so which can be recorded and f.e. assigned with ReaLearn, set "send as normal MIDI" flag

In the current version (keyboard):
  • every button except "modifiers" is translated as MIDI note on specified in the configuration channel. No (not yet) combinations.

Windows (32/64bit) only

Known limitations/bugs
* EARLY ALPHA!!!


Changelog
  • 0.0r1b1 - FIX: hot-plug/reconnect
  • 0.0r1b2 - CHANGES: reworked wheel reaction NEW: TTS
  • 0.0r1b3 - NEW: keyboard support, CHANGE: plug-in is renamed
  • 0.0r2b4 - NEW: "normal" MIDI output, f.e. to use with ReaLearn
« Last Edit: November 14, 2018, 01:15:16 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1144
Re: AZ: Not a Mouse (a mouse as a dedicated REAPER controller)
« Reply #1 on: July 05, 2018, 08:02:00 PM »
Installation
AZ: Not a ...
The procedure is standard for REAPER extension.
  • Download the latest version from: http://www.azslow.com/index.php?action=downloads;sa=view;down=64
  • Start REAPER. Select "Options"/"Show REAPER resource path..."
  • Close REAPER (important especially when upgrading)
  • In the downloaded archive select the folder with correct  fro your REAPER version number of bits (32/64) any copy "reaper_aznot.dll" into "UserPlugins" sub-folder of your REAPER resources.if you had reaper_aznm.dll installed, delete it. reaper_aznot.dll is the new name for the same plug-in
Declaring your mouse/keyboard as "not a mouse"/"not a keyboard"
Note: that is not a "hack", the device will just use another standard Microsoft driver.
The following procedure is for Windows 7-10.
WARNING: Do NOT randomly click in this application! You will not break your computer doing that and you can easily revert the change, but the result can be confusing...
  • Download Zadig application from https://zadig.akeo.ie/ . Note that on the right side of the site are Ads... Direct link to the current version: https://zadig.akeo.ie/downloads/zadig-2.3.exe This version is for Windows 7-10, for XP-Vista download older version
  • Disconnect the mouse/keyboard you want to use for REAPER from the computer
  • Start Zadig (no installation required). It should be digitally signed. I repeat: do not randomly click in it! Read the following first! It will ask about online update check, that is up to you what to answer.
  • In the "Options" menu select "List All Devices". For keyboard, un-check "Ignore Hubs or Composite Parents"
  • Open drop-down list of the devices, notice what you see here, you DO NOT want to modify any of them!
  • Connect the mouse/keyboard in question. You should see new choice in the list now. If not sure, disconnect/check/connect again.
  • Once you are sure which mouse/keyboard is right...
  • First select "normal" mouse/keyboard, which you do not want to modify. Write on paper USB ID (2 numbers). Now select your "Not a Mouse/Keyboard". Compare its USB ID with IDs of your normal mouse/keyboard. Are they the same (both numbers)? If yes, do not continue and find another device for the purpose. Windows will have problems using absolutely identical devices with different drivers
  • If USB ID is different, select the device which (sure?) is "Not a Mouse". For keyboards, select "Composite" if you see it (there will be also "Interface 0"/"Interface 1" in this case, but you need the whole device)
  • "HidUsb -> WinUSB" should be already pre-selected. Press "Replace Driver" and confirm the decision. Sometimes it can take a while, but it should report "Success" at the end.
  • Close Zadig. You may need to use it again after major Windows 10 upgrades
« Last Edit: August 01, 2018, 05:17:16 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1144
Re: AZ: Not a Mouse (a mouse as a dedicated REAPER controller)
« Reply #2 on: July 05, 2018, 08:15:45 PM »
Configuration for Mouse
  • In the REAPER preferences, Control Surfaces/OSC, add "AZ: Not a Mouse"
  • Select the mouse (only switched in Zadig devices will be shown, so you can not make mistake here)
  • Choose MIDI channel the messages will be sent to (useful for several "Not Mouses" with different bindings)
  • Use usual for MIDI surfaces procedure for Actions binding. For Wheel, select "Relative 1" mode

Configuration for Keyboard
  • In the REAPER preferences, Control Surfaces/OSC, add "AZ: Not a Keyboard"
  • Select the keyboard (only switched in Zadig devices will be shown, so you can not make mistake here)
  • Choose MIDI channel the messages will be sent to (useful for several devices with different bindings)
  • Use usual for MIDI surfaces procedure for Actions binding


In case you like my projects in Control Surfaces area, here is Donation link
Please note that you do not buy a license nor any special service.
« Last Edit: August 01, 2018, 05:18:53 PM by azslow3 »

Offline azslow3

  • Administrator
  • Hero Member
  • *****
  • Posts: 1144
Re: AZ: Not a Mouse (a mouse as a dedicated REAPER controller)
« Reply #3 on: July 05, 2018, 08:52:39 PM »
.