Falcon BMS Forum
    • Register
    • Login
    • Search
    • Categories
    • Unread
    • Recent
    • Unsolved
    • Popular
    • Website
    • Wiki
    1. Home
    2. maxk01
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 2
    • Best 1
    • Controversial 0
    • Groups 0

    maxk01

    @maxk01

    2
    Reputation
    1
    Profile views
    2
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    maxk01 Unfollow Follow

    Best posts made by maxk01

    • How to use MIDI controller as input

      Hi everyone!

      MIDI Keyboard

      (Livid Alias8 MIDI Controller, Livid Instruments, CC BY-SA 2.0)

      If you own a MIDI controller/keyboard with sliders, knobs or even pedals, you can use them for Falcon BMS as input, too.

      Before we start

      To execute commands you need to get a command prompt:

      • Startmenu or WinKey+R -> Type cmd -> Press Enter (black window appears with a blinking cursor)

      Setup (screenshots below)

      • vJoy (create virtual joysticks where MIDI controls are mapped to)
        • start vJoyConf.exe and create two joysticks with all axis enabled and number of buttons as you need
        • Note: use different numbers of buttons, otherwise the system cannot distinguish the two joysticks
        • Note: if you add a third joystick later on, you have to assign all the virtual joystick controls in Falcon again
      • python3.10.5 (exe) (required for midi2vjoy) (release page)
        • install for Single-User, otherwise you might need administrator privileges when installing python packages
        • install python module pygame
          • run command
            C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python310\python.exe -m pip install pygame
          • not sure, but maybe needed, if installation fails: Visual C++ Build Tools
      • Optional: Configure your MIDI device
        • define a control map specific for Falcon BMS, where you set the MIDI control messages for the buttons, sliders, pedals, …
        • keys probably will not work, because of the aftertouch release velocity (a key release returns a value > 0, but Falcon BMS detects a key release by value 0)
      • midi2vjoy - zip-file with setup.py (github page)
        • unpack it to C:\midi2vjoy-master for example
        • run commands
      cd C:\midi2vjoy-master
      C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python310\python.exe C:\midi2vjoy-master\setup.py install
      
      • example config file for MIDI-to-vJoy mapping (create C:\FalconBMS\midi2vjoy.conf or as you wish)
      # https://github.com/c0redumb/midi2vjoy
      #  Midi to vJoy translation
      #  The format is one line for each control, with tab-separated values,
      #  using the following value ordering:
      #
      #      m_type    m_control    v_id    v_number
      #
      #  m_type is the 176 (slider) or 144 (button).
      #  m_control is the ID of the midi message.
      #  v_id is the vJoystick ID where the MIDI message is translated to.
      #  v_number is the axis or button number MIDI message is contolling.
      #
      #  The m_type and m_control value of each MIDI input can be found
      #  when running the program in test mode. Just push/move the control
      #  and watch the messages showing up on the screen.
      #
      #  The axis may be 'X', 'Y', 'Z', 'RX', 'RY', 'RZ', 'SL0', or 'SL1'.
      
      # first set of MIDI sliders maps to vJoystick #1 axis (max. 8 axis available)
      # the second number (MIDI control ID) depends on your MIDI controller (might be set via a MIDI control map editor)
      176	75	1	X
      176	76	1	Y
      176	77	1	Z
      176	78	1	SL0
      176	80	1	RX
      176	81	1	RY
      176	82	1	RZ
      176	83	1	SL1
      # first set of MIDI sliders maps to vJoystick #2 axis (max. 8 axis available)
      176	70	2	X
      176	71	2	Y
      176	72	2	Z
      176	73	2	SL0
      176	90	2	RX
      176	91	2	RY
      176	92	2	RZ
      176	11	2	SL1
      # MIDI buttons map to vJoystick #1 buttons (amount is defined in vJoy configurator)
      # some MIDI devices allow for editing the button release behavior (latch/unlatch)
      144	13	1	1
      144	14	1	2
      144	15	1	3
      144	16	1	4
      144	17	1	5
      144	18	1	6
      144	19	1	7
      144	20	1	8
      144	9	1	9
      144	10	1	10
      144	11	1	11
      144	12	1	12
      
      • Optional: a helper .bat script to run the environment (create C:\FalconBMS\run-midi2vjoy.bat or where you want)
      @echo off
      REM Starting programs before midi2vjoy
      REM ... uncomment as you wish
      REM start "" "C:\Program Files\vJoy\x64\vJoyConf.exe"
      REM start "" "C:\Program Files\vJoy\x64\JoyMonitor.exe"
      
      REM For testing MIDI inputs only (you will also see all the MIDI inputs when running the actual config)
      REM C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python310\python.exe C:\midi2vjoy-master\midi2vjoy\midi2vjoy.py -t
      
      REM check if midi2vjoy is already running ...
      tasklist /fi "WINDOWTITLE eq midi2vjoy-runner" |find /I "python.exe" >nul
      if "%ERRORLEVEL%"=="0" ( 
        echo Program is running
        pause
      ) else (
        start "midi2vjoy-runner" "C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python310\python.exe" C:\midi2vjoy-master\midi2vjoy\midi2vjoy.py -m 2 -c midi2vjoy.conf -q
      )
      
      • Optional: Falcon Alternative Launcher to map the controls easily
        • if your MIDI buttons provide “latch”-behaviour (controller button keeps illuminated when on), you can define button pressed and button released separately in “Keymapping” in Falcon Alternative Launcher, e.g. for “Smoke ON” and “Smoke OFF”. Click on Press button in the key assignment window to switch to record the Release event instead

      Screenshots

      vJoy configuration and monitor for Joystick 1 & 2
      vJoy Joystick Nr. 1
      vJoy Joystick Nr. 2

      midi2vjoy script example output
      setup-vjoy-midi-s03.jpg

      Falcon BMS Alternative Launcher with vJoy mappings (controlled via MIDI via midi2vjoy in the background)
      setup-vjoy-midi-s04.jpg

      Hope, it helps. Comment, if you have any issues.
      Have fun! 🙂

      Edit:

      ~ aftertouch -> key release (aftertouch: pressing a key with variable pressure)
      ~ run-midi2vjoy.bat: edited first comments
      ~ describe button-press/release assignment in Falcon Alternative Launcher key assignment and MIDI latchable buttons

      posted in Joysticks & Input Devices
      maxk01
      maxk01

    Latest posts made by maxk01

    • RE: 4.36.1 is out

      … after many years off I started with 4.36 again (trailer caught me). Update came just right in time. It works like a charm. Thanks for your hard work. Highly appreciated 👍

      posted in General Discussion
      maxk01
      maxk01
    • How to use MIDI controller as input

      Hi everyone!

      MIDI Keyboard

      (Livid Alias8 MIDI Controller, Livid Instruments, CC BY-SA 2.0)

      If you own a MIDI controller/keyboard with sliders, knobs or even pedals, you can use them for Falcon BMS as input, too.

      Before we start

      To execute commands you need to get a command prompt:

      • Startmenu or WinKey+R -> Type cmd -> Press Enter (black window appears with a blinking cursor)

      Setup (screenshots below)

      • vJoy (create virtual joysticks where MIDI controls are mapped to)
        • start vJoyConf.exe and create two joysticks with all axis enabled and number of buttons as you need
        • Note: use different numbers of buttons, otherwise the system cannot distinguish the two joysticks
        • Note: if you add a third joystick later on, you have to assign all the virtual joystick controls in Falcon again
      • python3.10.5 (exe) (required for midi2vjoy) (release page)
        • install for Single-User, otherwise you might need administrator privileges when installing python packages
        • install python module pygame
          • run command
            C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python310\python.exe -m pip install pygame
          • not sure, but maybe needed, if installation fails: Visual C++ Build Tools
      • Optional: Configure your MIDI device
        • define a control map specific for Falcon BMS, where you set the MIDI control messages for the buttons, sliders, pedals, …
        • keys probably will not work, because of the aftertouch release velocity (a key release returns a value > 0, but Falcon BMS detects a key release by value 0)
      • midi2vjoy - zip-file with setup.py (github page)
        • unpack it to C:\midi2vjoy-master for example
        • run commands
      cd C:\midi2vjoy-master
      C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python310\python.exe C:\midi2vjoy-master\setup.py install
      
      • example config file for MIDI-to-vJoy mapping (create C:\FalconBMS\midi2vjoy.conf or as you wish)
      # https://github.com/c0redumb/midi2vjoy
      #  Midi to vJoy translation
      #  The format is one line for each control, with tab-separated values,
      #  using the following value ordering:
      #
      #      m_type    m_control    v_id    v_number
      #
      #  m_type is the 176 (slider) or 144 (button).
      #  m_control is the ID of the midi message.
      #  v_id is the vJoystick ID where the MIDI message is translated to.
      #  v_number is the axis or button number MIDI message is contolling.
      #
      #  The m_type and m_control value of each MIDI input can be found
      #  when running the program in test mode. Just push/move the control
      #  and watch the messages showing up on the screen.
      #
      #  The axis may be 'X', 'Y', 'Z', 'RX', 'RY', 'RZ', 'SL0', or 'SL1'.
      
      # first set of MIDI sliders maps to vJoystick #1 axis (max. 8 axis available)
      # the second number (MIDI control ID) depends on your MIDI controller (might be set via a MIDI control map editor)
      176	75	1	X
      176	76	1	Y
      176	77	1	Z
      176	78	1	SL0
      176	80	1	RX
      176	81	1	RY
      176	82	1	RZ
      176	83	1	SL1
      # first set of MIDI sliders maps to vJoystick #2 axis (max. 8 axis available)
      176	70	2	X
      176	71	2	Y
      176	72	2	Z
      176	73	2	SL0
      176	90	2	RX
      176	91	2	RY
      176	92	2	RZ
      176	11	2	SL1
      # MIDI buttons map to vJoystick #1 buttons (amount is defined in vJoy configurator)
      # some MIDI devices allow for editing the button release behavior (latch/unlatch)
      144	13	1	1
      144	14	1	2
      144	15	1	3
      144	16	1	4
      144	17	1	5
      144	18	1	6
      144	19	1	7
      144	20	1	8
      144	9	1	9
      144	10	1	10
      144	11	1	11
      144	12	1	12
      
      • Optional: a helper .bat script to run the environment (create C:\FalconBMS\run-midi2vjoy.bat or where you want)
      @echo off
      REM Starting programs before midi2vjoy
      REM ... uncomment as you wish
      REM start "" "C:\Program Files\vJoy\x64\vJoyConf.exe"
      REM start "" "C:\Program Files\vJoy\x64\JoyMonitor.exe"
      
      REM For testing MIDI inputs only (you will also see all the MIDI inputs when running the actual config)
      REM C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python310\python.exe C:\midi2vjoy-master\midi2vjoy\midi2vjoy.py -t
      
      REM check if midi2vjoy is already running ...
      tasklist /fi "WINDOWTITLE eq midi2vjoy-runner" |find /I "python.exe" >nul
      if "%ERRORLEVEL%"=="0" ( 
        echo Program is running
        pause
      ) else (
        start "midi2vjoy-runner" "C:\Users\%USERNAME%\AppData\Local\Programs\Python\Python310\python.exe" C:\midi2vjoy-master\midi2vjoy\midi2vjoy.py -m 2 -c midi2vjoy.conf -q
      )
      
      • Optional: Falcon Alternative Launcher to map the controls easily
        • if your MIDI buttons provide “latch”-behaviour (controller button keeps illuminated when on), you can define button pressed and button released separately in “Keymapping” in Falcon Alternative Launcher, e.g. for “Smoke ON” and “Smoke OFF”. Click on Press button in the key assignment window to switch to record the Release event instead

      Screenshots

      vJoy configuration and monitor for Joystick 1 & 2
      vJoy Joystick Nr. 1
      vJoy Joystick Nr. 2

      midi2vjoy script example output
      setup-vjoy-midi-s03.jpg

      Falcon BMS Alternative Launcher with vJoy mappings (controlled via MIDI via midi2vjoy in the background)
      setup-vjoy-midi-s04.jpg

      Hope, it helps. Comment, if you have any issues.
      Have fun! 🙂

      Edit:

      ~ aftertouch -> key release (aftertouch: pressing a key with variable pressure)
      ~ run-midi2vjoy.bat: edited first comments
      ~ describe button-press/release assignment in Falcon Alternative Launcher key assignment and MIDI latchable buttons

      posted in Joysticks & Input Devices
      maxk01
      maxk01