Faderport for Propellerhead REASON

fx-petal

2014-05-16 08:36:37

Hi,

I recently bought a Presonus Faderport to use with Reason. I really should of done more homework as it's not a native device. After shelving it and posting it on ebay I found out about MT, so I've decided to download it and give it a go. SO!

I've got my MT (Classic) running and I've created a new Preset. So far I've added two translators just to see if I can get things moving. I've decided to go with STOP and PLAY. I've set my incoming triggers to capture midi.

For my first Translator "STOP"
- My Incoming Trigger is CC#1: Controller 47,3
- My Outgoing Trigger is CC#1: Controller 47,0

For my second Translator "PLAY"
- Incoming Trigger is CC#1: Controller 47,4
- Outgoing Trigger is CC#1: Controller 46,0

Reason doesn't seem to recognize the ,3 or the ,4 value and was only receiving the Ch1 CC 47

I thought I was getting somewhere when I worked that out. Unfortunately I can now assign each button to the transport controls in Reason but still nothing happens when I push the hardware controller. I've added the control surface in Reason's list of controller and set the midi to receive on the same channel that I've set to send on MT. Is there something I've missed?

Also I'm still unable to have Reason or MT pick up on a midi signal from my Fader! Should I be worried?

DvlsAdvct

2014-05-18 22:23:58

Hi fx-pedal

MIDI Translator Classic does not provide Virtual MIDI Ports to connect Bome MT to Reason. If you want to stick with Classic you will also need to use a tool such as LoopBe or MIDI Yoke for virtual ports so MIDI data can pass from your controller through MT into Reason. Once that is set up everything you are looking to do should be easy.

After you have integrated either LoopBe, MIDI Yoke or purchased MT Pro for its Virtual MIDI Ports (and a lot of other features) we can start integrating all of this together.

Thanks
Jared

fx-petal

2014-05-22 06:22:39

Hi Jared,

Yeah I already have LoopBe30 with none of the channels muted. I use LoopBe often to send a receive Midi from my Maschine software/hardware to and from Reason, so I know it can and should be working but there must be something else I've missed or don't yet understand....

While I'm asking questions? Is there anywhere that might be a useful place to start to learn how to write all of the Hexadecimal Codes? I searched the web for some info but there's a plethora of info out there and not all of it seems relevant or approachable from a beginners point of view.

Thanks for the response!

Ben.

DvlsAdvct

2014-05-22 17:01:28

Hi Ben

Alright, so if you're using a virtual MIDI port, then here's what you should look at doing: make sure that the MIDI IN port in MT is the Presonus Faderport, and that Reason is listening for LoopBE. We'll focus on these two translators, Stop and Play. When you open the translator, make sure you press the Listen checkbox and then press the button you want to use. You should get two lines come in, one with a number above 0 when you press, and then one at 0 when you release. If this isn't what you see let me know. After you release, in the space where you enter the command the last bit of data should be replaced with a pp.

pp is what's called a local variable. It means that the translator will listen for any value in that space and continue on to the Outgoing Message. So, for example, if your incoming message is B0 47 7F the translator will only respond if it receives CC 71 (because the incoming message is in Hex) at velocity 127 (7F). If you are using a button that is velocity sensitive this would cause problems because the translator will only respond when it has reached 7F, so a light touch would not trigger the signal.

If, however, your Incoming Message is B0 47 pp then the translator will respond as long as it receives CC 71 on Channel 1, but it will not care what velocity the message comes in at.

Now we run into a slight concern with how Reason receives MIDI messages, but I think this will be easily rectified. What you should do is set your incoming message to B0 47 pp and your outgoing message to B0 47 pp. This should allow your translator to pass the data through to Reason which should respond accordingly.

Then you would do the same thing with the button for Play, and map that to a command in Reason.

I use two resources to figure out the correct Hex and Decimal values for notes and CCs, but the easiest one is in MT itself. At the bottom of the translator you should be able to select a Help menu, and in the MIDI tab there should be a converter. Whenever you type something in either side, Hex or Decimal, it will give you the corresponding value.

Hope this helps
Jared

fx-petal

2014-05-24 08:17:24

Hi Jared!

Thank you so much for helping me out. Unfortunately I'm still hitting a brick wall with the functions.

So, I setup exactly as you said (I'm almost certain).

I created a "New Translator Preset" I set my Midi In to Faderport and my Midi Out to Channel 4. I added two New Translators, PLAY and STOP.

I've only gone as far as trying to program PLAY.

Image

In the INCOMING, Midi Capture browser, I can see there's 4 values. The bottom 2 are from pressing the PLAY button and the top 2 are from depressing the PLAY button. I noted that the MIDI message trigger is CC#1: Controller 47,4 same goes for the OUTGOING

Image

After I applied the changes I started Reason and in Reason's preferences I added a new Control Surface. Named it "FADERPORT via MIDI TRANSLATOR" then I set the MIDI INPUT to Channel 4.

When trying to use the Remote Override Mapping Tool I wasn't getting a response from the controller when pressing play. I referred back to MT and realized that if I dropped the "4" off of the end of B0 2F 04 that the Message changed to CC#1: Controller 47,0 (It was just a guess seeings the Remote Override Tool was receiving CC 47 - I figured the decimal point ",4" was interfering)

After doing this to both the incoming and outgoing settings of the PLAY translator I hit Apply and then I was at least receiving a response from my Override Mapping Tool but still nothing actually happening when I hit play.

Image

I also tried to use B0 2F 44 as the incoming and outgoing but then got no response again.

This is a learning curve from HELL! I still don't understand Hexadecimal codes except I know how convert B0 to 176 (whatever that means) and the other 4 characters mean something else.

I seriously can't thank you enough for you help, if there's anything I help you with, audio processing / production feel free to let me know!

Cheers!

DvlsAdvct

2014-05-27 08:12:38

Alright Ben, I'm going to give you a crash course in what MT is doing and how Hex works, and then explain what's going on so we can get this working. :)

MIDI is broken down into a bunch of different message types, but the two primary ones are Notes and CCs (Continuous Controller). Note messages are self-explanatory, as they trigger specific pitch values. Generally buttons are coded as notes, since that kind of makes sense (you push and release buttons like keys) and anything you move is a CC like knobs and faders. When you look at a lot of old analog synths from the olden times the only things that would send notes were keys, and everything else sent CCs. This has changed a little with time, but the idea still stands.

When MIDI is sent in code it is usually sent using Hex and is broken up into three different segments. The first bit designates the message type and its channel, the second bit is the message value and the last bit is its velocity or position (whether a note or a CC). Those two major signals, Note and CC, are designated by a 9 and a B respectively. So a note on channel 1 is sent as 90, a CC is B0. Since its Hex it always starts at 0, so since there is no channel 0, 90 is a Note on Channel 1. The second bit would be the note or CC message, so B0 2F is a CC message on Channel 1 at a value of 47, usually read out as CC47. I hope this makes sense so far.

MIDI has 16 channels, so you will see messages ranging from 90 to 9F (0F is 16) or B0 to BF. And then there are 128 messages, which are between 00 and 7F (7F is 127) at a velocity or value of up to 127 (0 to 7F). You will see regular button presses as 7F a LOT.

To make matters complicated in your situation, your faderport is sending out what's called a 14-bit message. MIDI's natural limitation of 128 steps can be very limiting for messages that need a lot of precision. For example, on DJ controllers, you will see pitch faders sent 14-bit messages a lot, since they need a LOT more than 128 steps to read out a 20% range up and down to a .01% resolution. 14-bit messages combine two messages sent simultaneously with specific values to give a resolution of 16,384.

So your Faderport is outputting a 14-bit message by combining the two messages B0 0F and B0 2F at the same time. The 44 and 04 are on and off messages respectively, but the reason doesn't matter. What we need to do is take those two messages and redefine them so Reason reads them correctly. What we're going to do, since you're using Classic and not Pro, is create two different translators, ignoring the 0F message and only listening to the 2F message. It would look like:

Code: Select all

Translator 1: Play Press
Incoming Message: B0 2F 44
Outgoing Message: B0 2F 7F

Translator 2: Play Release
Incoming Message: B0 2F 04
Outgoing Message: B0 2F 00
Let me know if that works

Jared

fx-petal

2014-05-29 12:23:26

Crash course was awesome and the PLAY translators worked a treat!

I've since, with your help, realized that Hexadecimal isn't a code it's a method of COUNTING (N00B OF THE YEAR). Now I understand the use of the Hex Dec converter. I've found the most use for it so far being from Dec - Hex! For learning purposes only.

BUT! I tried to apply the same logic from the PLAY translators to get the STOP translators working. I realized when I tried to use the "Edit Override Function" in Reason that using B0 2F ## caused problems because CC 47 is already in use by my nice new PLAY settings. So I tried to use CC 46 with a velocity of 0 on press and CC 46 with a velocity of 127 on release by using the codes below. I couldn't get Reason to recognize the stop buttons incoming midi source at all.

STOP PRESS:
INCOMING: B0 2E 44
OUTGOING: B0 2E 7F

STOP RELEASE:
INCOMING: B0 2E 03
OUTGOING: B0 2E 00

The midi capture receives these for codes when I press STOP
B0 2F 03
B0 2F 03
B0 2F 03
B0 2F 43

So, making some ground but still slightly about the use of the final 2 digits in the hex code.

Thanks again for all your help!

fx-petal

2014-05-29 12:29:08

PS.

I've been playing around with some of the other buttons to read their MIDI messages. I've noticed that the top 3 buttons aren't recognized at all when pressed using the MIDI CAPTURE. Neither are the Pan Pot or Fader. Do I have a dud bit of gear or are these special things that I'm yet to understand?!

*Nervous.

DvlsAdvct

2014-05-29 16:29:56

Unfortunately, and unsurprisingly, their website is really sparse in regards to their MIDI spec. I'm trying to dig up something online but it looks like there are issues due to the fader and pan pot being part of a control surface, meaning they only speak through something like HID, instead of sending MIDI. I'm not finding much, though. I don't think it's a dud, I think it's supposed to communicate with integrated software. I'd recommend contacting Presonus and asking them, since I don't have one.

Jared