Skip to content

inertia666/ReaperFaderportNative

Repository files navigation

Reaper Faderport 16/8 Native

A native controller for the Presonus 16/8 in Reaper

This is alpha software and has bugs/unimplemented features and limitations. While it is public, I am not really doing support/requests for this at the moment. However, I will try to take care of bugs and issues as I find the time.

This controller is built for my use only and optimised for how I want my controller to behave in Reaper.

This public code version is a stripped down version of my non-public code. This simplified public version allows you to control one instance of either the Faderport 16 or Faderport 8.

The code base is originally designed to control two Faderport units at the same and offer advance features specific to my workflow. Therefore, there is still some legacy code and design patterns to take into account two Faderports, which I will try and remove/optimise as I go along. If anyone else has two Faderports and is interested in my driver, then just get in touch.

Because I do not know of anyone using two Faderports or expect them to understand my view on how they should be controlled, I have released this simplified code.

If you want more flexibility and customisation, then I recommend using the Control Surface Integrator, by Geoff Waddington and installing navelpluisje's Faderport configuration files as a starting point. This is now a very mature CSI implementation of the Faderport and is looking very promising!

Because the Control Surface Integrator is a stateless design and will only mirror Reaper's views, it does not really work exactly as I want it to. This is why I developed a native controller for my own use. However, since testing navelpluisje's implementation I will likely move my FP16 to the CSI and retain my FP8 as a stateless controller.

I do encourage the use of the Control Surface Integrator because it is a very mature project with plenty of contributors and more people to help with your problems. It opens up a world of flexibility. This driver will also work even with the CSI controller installed (as long as you are not using the CSI to control your Faderport).

Disclaimer

I am not a C++ developer by trade. I prefer easier languages like C#. I have found it challenging to structure the code as I would like. I also had to learn how to do all this on-the-fly using the csurf_mcu controller as a base and understand how Reaper works with extensions. The extension may crash Reaper. Don't use it on production environments if you are worried!

What is implemented?

  • Volume faders
  • Arm, solo clear, mute clear, select, solo, mute, pan, transport buttons, metronome
  • Edit plugins (opens the plugin window only of the selected tracks)
  • Automation buttons
  • A way to implement busses and view them on the surface
  • VCA Leader view
  • VI view (filters tracks if there is a virtual instrument somewhere in the fx chain)
  • Navigation with transport wheel (not working very well)
  • Pin the master bus to the surface
  • Link - toggle follow Reaper on/off
  • Enable bypass, macro, buttons to assign to custom actions
  • Pan/Param wheel
  • Shift + Save, Redo, Undo

What is not yet implemented?

  • Sends
  • Zoom, Scroll, Section, Marker buttons. I haven't decided if I want to use them or how I want to use them
  • Limited support for Nagivation Wheel. At the moment, it only works to control the Master buss volume
  • RTZ << >> buttons. They go to the start/end of the project but are not useful right now.

What will never be implemented?

  • Editing FX parameters

General Behaviour

The intention behind the contoller is to partially mimic using a regular mixing desk at the computer. There are some things implemented differently from other surface controllers:

  • The Faderport will always show a full bank of tracks when paging. For example, if you have 20 tracks in Reaper the Faderport 16 will display tracks 1-16. When you press "Next" to page by bank, the Faderport will show tracks 4-20. This is to avoid having empty faders constantly flip up and down when paging and not waste space.

  • Bus view will not change the TCP or Mixer view in Reaper when showing busses. The driver will hold the state internally and create a virtual view to reflect on the Faderport. This means, if you press the Bus button it will display all your tracks that use the bus prefix tag in config.txt file.

  • VCA view will show only on the Faderport and will not show/hide non-VCA tracks on the TCP or Mixer view in Reaper. The driver will hold the state internally and create a virtual view to reflect on the Faderport.

Button behaviour

Note if a button doesn't light up, it is not implemented yet. It should, however, still trigger a MIDI event and can be assigned an action.

The following buttons are currently implemented with details on how they work:

Button Description
Arm Arm tracks by pressing ARM then Select each track to be armed. Disengage ARM when done
Solo Press S to solo each track respectively. Quickly double pressing S will exclusively solo the selected track (all other soloed tracks are cleared)
Mute Press M to mute each track respectively. Quickly double pressing M will exclusively mute the selected track (all other muted tracks are cleared)
Solo Clear Clear soloed tracks
Mute Clear Clear muted tracks
Select Pressing Select will select the track. To exclusively select a track, double press the Select button. To clear all selected tracks, double press
to exclusively select then click one more time to unselect the track. A single volume fader will control all selected tracks
Edit Plugins This will open the FX window for any selected tracks. It does not provide plugin parameter editing
Pan Ability to set the pan with a volume fader
Audio Show prefixed "audio_prefix=A-" tracks set in the config file (see Bus)
VI Show tracks that have virtual instruments)
Bus By adding the line "bus_prefix=B-" you can mark track names with a prefix (in this case, "B-", and show these tracks on the Faderport. Replace "B-" with any characters of your choice.
VCA Show VCA leader tracks
All Show all tracks not in the prefix filter list
Channel Prev/Next will move the surface display by -1/+1 channel at a time
Bank Prev/Next will move the surface display by 8 or 16 channels at a time
Prev Move the surface display left by one channel or a bank of 8/16 depending on the Channel or Bank buttons status
Next Move the surface display right by one channel or a bank of 8/16 depending on the Channel or Bank buttons status
Master Will control the master buss volume with the large navigation wheel
Click Toggle metronome on/off
Transport buttons Repeat, Stop, Play/Pause, Record are all implemented
Automation buttons All buttons implemented except Off

Getting started

The Faderport must be set to "Studio One" mode. Make sure the Faderport is off. Hold down the first two select buttons and turn on the unit. Make sure "Studio One" is highlighed and press the select button undernearth EXIT

Install the dll from the FP16.zip in your Reaper UserPlugins directory. Place the config.txt in the same directory.

Edit the config.txt :

Specify if you have the Faderport 8 or 16 version.:

#Set to 16 or 8
faderport=16

Set the track to start from:

start_track=0

Prefix filter list:

Audio/VI/Bus/VCA/All work as radio buttons. By creating a prefix in the config you can use these buttons to show/hide groups of tracks from the Faderport.

E.g If you want to use fake busses and have the bus button display them on Faderport then you can add a track title prefix here to identify busses. To activate them, make sure your track has the defined prefix in the start of its name.

bus_prefix=B- // Add B- in the start of any tracks that will be filtered by the bus button
audio_prefix=A- // Add A- in the start of any tracks that will be filtered by the audio button
vi_prefix=V- // Add V- in the start of any tracks that will be filtered by the VI button

For example, to create a bus track for Drums, rename the track to B-DRUMS. This track will now be removed from the main view and will be shown when pressing the Bus button on the Faderport. You can make the prefix anything you like. The filter will check for a matching prefix in each track.

Since Reaper doesn't really have traditional busses, you can think of this as a kind of filter instead that is engaged when pressing Bus.

Note The All button doesn't show all the tracks. It shows everything not in the prefix list.

Non-functioning buttons

All buttons should trigger a MIDI event, except for Shift. You can set up actions from the Reaper action list to trigger an action from any button on the Faderport.

Buttons without action
Bypass
Macro
Link
Track
Sends
Off
Zoom
Scroll
Section
Marker

Links

  • Download - 64bit Windows Build (at the moment this is buggy as cleaning up the code has caused breakage)
  • CSI - Control Surface Integrator
  • Navelpluisje - Navelpluisje's Faderport installer using a custom build of CSI

Change_log

  • audio/vi/bus/vca/all radio buttons with prefix for audio/vi/bus

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published