Releases: acklin83/Rea-Sixty
Release list
Rea-Sixty v0.5.9
Rea-Sixty v0.5.9, "Nobody was painting"
A repair release for the UF1 display and the SSL meters behind it. Selecting the master froze the whole face: bars, needle, readouts and the small channel peak meter, all standing still until a turn of the channel encoder brought them back. The painter was giving up before it drew anything, and the pacer kept restating its last picture at 25 frames a second, so every stage in between measured healthy while the glass sat there. Around that fix sit five more from the same week, all of them cases where a meter was showing something that was not true: the master's own chain and its monitoring chain reading as one instance, a steady tone vanishing at transport stop, a VU needle parked at rest, a goniometer frozen on its final frame, and on Windows an impersonator that could quietly bind next to a running SSL 360.
Install via ReaPack (recommended)
Under Extensions, ReaPack, Manage repositories, Import/export, Import repositories. Paste:
https://github.com/acklin83/reaper-scripts/raw/main/index.xml
Then Browse packages, Rea-Sixty, Install. Restart REAPER. Add the surface under Preferences, Control/OSC/Web, Add, Rea-Sixty.
First-run setup buttons live under Settings, About:
- Windows: "Install UF8/UC1/UF1 WinUSB driver" (UAC prompt)
- Linux: "Install Linux udev rule" (pkexec prompt)
- macOS: nothing extra
Fixed
The UF1 display froze when the master was selected. Everything on the glass stopped at once, including the channel peak meter, which has nothing to do with the meter view. Three separate lookups go blank in the same instant for the master and for nothing else: REAPER's GetSelectedTrack ignores the master by definition, GetLastTouchedTrack points straight at it, and the line that keeps the strip from sticking to the master then discards that answer too. With no track to show, the painter returned before it painted, and the pacer went on repeating its last snapshot. A channel-encoder move healed it every time because it puts a real track back in the selection. The surface now holds the last valid track instead of going blank, and the master is still not followed automatically, which was a deliberate choice.
An empty project kept showing the last channel. Delete the final track and the strip sat on "CH 1" with its old levels. The zone is now cleared properly, down to the firmware's own "channel populated" flag and a wipe of the large plane, which otherwise keeps its last image when no chunks arrive. The idle cycle keeps streaming while nothing is there, because the firmware falls back to a lazy redraw if the chain breaks.
The master's two chains read as one meter. The master track and its monitoring FX carry separate SSL Meter instances, and REAPER hands back the same track pointer for both. Every peak hold keyed off that pointer, so switching V-Pot 1 between them changed the stream underneath while the held numbers stayed from the previous instance. The instance is the UDP port, and that is what the holds follow now. Part of the same repair: a negative track index arrives as ten varint bytes, and only five were being read, so the master announced itself as a track number nobody could match.
A steady tone disappeared while the transport was stopped. The stale-slot rule threw away bars, needle and readouts as soon as a level stopped changing for 300 milliseconds with the transport stopped. Its own comment described a frozen scale floor, but the test never asked whether the value had stopped at the bottom. A held note is unchanging and nowhere near the floor, and it vanished after a third of a second. The floor is now part of the test.
The VU needle sat at rest. Minus 120 dBFS was doing two jobs, standing for measured silence and for nothing having answered yet, and the needle's rest-at-silence gate read the second as the first. PPM was unaffected throughout, which is what made it look like a needle problem.
The goniometer froze on its last frame. When the Lissajous stream stopped, no image went into the cycle at all, and the device keeps whatever it last received. An instance with no signal has an empty goniometer, and that is what it draws now, after a short delay so the plug-in's periodic gaps do not flash it empty.
Windows: the impersonator could bind next to a live SSL 360. SO_REUSEADDR means different things on the two platforms. On macOS and Linux it only gets past a leftover socket, and a second bind next to a live listener still fails, which is exactly the signal used to report "360 running?". On Windows the same flag lets the bind succeed anyway, and which of the two sockets then receives a packet is documented as indeterminate. Meter data could go missing with no error anywhere.
UF1 soft-key 4 did nothing for a plug-in mapped on the UF1 layer alone. Soft-key 3 worked, which hid it. A UF1-only map is handed the CS2 layout, and that layout's slot 4 carries a fixed built-in action that fires and returns before the user's own parameter is ever read. An explicit slot now owns its key. The RME gain readout also got the ceiling it was missing.
Configuration
The bindings file stays at version 32. A project and a bindings file from v0.5.8 load unchanged.
Known issues
- A UF8 plug-in-mode fader assigned to an FX parameter does not return to its envelope in
Touch during playback. - FX Cycle, Instance Cycle and Favourites cycling show their prev/current/next carousel on the
UC1 only. On a UF1 the landed plug-in name appears, without the neighbours.
Manual install
If ReaPack isn't an option:
- macOS:
rea-sixty-mac-v0.5.9.zip, unzip the three.dylibfiles into~/Library/Application Support/REAPER/UserPlugins/. - Windows:
rea-sixty-win-v0.5.9.zip, unzip the three.dllfiles into%APPDATA%\REAPER\UserPlugins\. Run the WinUSB driver installer from Settings, About on first launch. - Linux:
rea-sixty-linux-v0.5.9.tar.gz, unpack all three files (reaper_rea-sixty.so,libusb-1.0.so.0,libhidapi-hidraw.so.0) into~/.config/REAPER/UserPlugins/, keeping them together. Apply the bundled99-rea-sixty.rulesudev rule, or use the in-app button. No separate dependency install needed.
The Stream Deck Companion plugin (com.reasixty.companion.streamDeckPlugin) is attached to this release separately, it is not part of the ReaPack package.
Rea-Sixty v0.5.8
Rea-Sixty v0.5.8, "Let There Be Light!"
The room is part of the mix now. Rea-Sixty talks to a Philips Hue bridge, and the lamps behave like everything else on the surface: a fader is brightness, a V-Pot is colour, CUT switches a lamp, SOLO leaves one lamp standing. Scenes go on any key you like, or on a whole soft-key bank at once. The recording light is the classic red one, except it is real, and it puts the room back exactly as it was when the take ends. A marker named hue:Relax recalls the scene called Relax as the playhead passes it. Around that, two smaller repairs where the surface was telling you something untrue: the colour keys now wear SSL's own names for SSL's own colours, and the UF1's resting LEDs sit at the same step as the UF8's instead of glowing at half power.
Install via ReaPack (recommended)
Under Extensions, ReaPack, Manage repositories, Import/export, Import repositories. Paste:
https://github.com/acklin83/reaper-scripts/raw/main/index.xml
Then Browse packages, Rea-Sixty, Install. Restart REAPER. Add the surface under Preferences, Control/OSC/Web, Add, Rea-Sixty.
First-run setup buttons live under Settings, About:
- Windows: "Install UF8/UC1/UF1 WinUSB driver" (UAC prompt)
- Linux: "Install Linux udev rule" (pkexec prompt)
- macOS: nothing extra
What's new
Hue mode
Settings, Modes, Hue finds the bridge, pairs with it (press the round button, you have thirty seconds) and lists what it found. Eight rows, one per strip: each points at a single lamp or at a whole room or zone, carries a seven-character label for the scribble strip, and says what the lamp is doing right now. The lamps take one end of the surface, left or right as you choose, and the tracks that would have sat there shift onto the remaining strips rather than disappearing.
Bind Selection Mode: Hue to engage it. On a UF8 strip the fader is brightness (all the way down switches the lamp off), the V-Pot is hue, FLIP makes it saturation, pressing it swaps between colour and white, CUT switches the lamp and SOLO leaves this one lit while the other Hue strips go dark.
UF1 Mode: Hue puts one lamp on the channel screen with three axes on three pots, hue, saturation and colour temperature, and the CHANNEL encoder to walk between lamps. SEL on a UF8 strip sends that lamp to the UF1.
Scenes, on a key or on a bank
Eight scene slots, each with a label and an LED colour. Hue: recall scene takes a parameter of 1 to 8, so a scene goes on any key of any surface; a long press starts the ones that move. Or set a soft-key bank's type to Hue Scenes and the whole bank becomes the eight slots, each key wearing its colour and lighting while the bridge reports that scene as the one showing. On the UF1 the bank names itself HUE on the time field and flashes the scene name on recall.
Two more actions: Hue: all lamps off, and Hue: recording light on / off for arming the light without opening Settings.
Recording light
Pick the lamps (the rows you ticked, or a whole room), pick the colour and brightness, and decide what happens when the take ends: back exactly as they were, or into a scene of your choosing. The state of every lamp is read just before the light goes red and written back afterwards, lamp by lamp, so a room whose lamps sat on different colours comes back that way rather than flattened to one.
Only recording touches the lights. Play and stop leave them alone, because otherwise every scene you recalled by hand would be wiped the moment you hit the space bar.
Marker cues
Name a marker hue:Relax and the scene called Relax is recalled as the playhead passes. The prefix is yours to change, and so is the transition time. Under the settings is a live list of every matching marker in the project with the scene it resolves to, or a red note where there is no scene by that name, so you can check it before the take rather than during it. Cues fire only while the transport is rolling, and only forwards.
The colour keys wear SSL's names
A Track-Colours bank used to label its keys "Col 1" to "Col 8" unless you named them yourself, and the palette had been moved onto the ten colours the hardware can actually render without the names following. A key could say BROWN while its swatch was cyan. The names now come from SSL's own vocabulary, the one inside SSL 360 itself: RED, ORANGE, YELLOW, GREEN, CYAN, BLUE, PURPLE, MAGENTA, PINK, WHITE. An unnamed slot wears the name of the colour it shows, and a name that was left behind by the palette move is corrected once, on load. A name you chose yourself is never touched.
Resting LEDs on the UF1
The UF1's coloured display soft keys rested at half power while the UF8 rests at one step above off, which read as a lamp somebody forgot to switch off. SSL's own dim bytes settle it: every colour in the palette rests on the lowest step, so that is where these rest now. SOLO and CUT were a step above the UF8 as well, and now sit on the same bytes it sends.
Manual
The REC + RME chapter described our side of the bridge and nothing of TotalMix's, so following it exactly still left a dead mode. It now carries what has to be in place first: TotalMix FX 2.1 with Global OSC, the two OSC settings that switch it on, the "Receive to hidden channels" box that silently drops everything when it is off, the ports, and the TotalReaper version that follows a track when you change its input. The Nav Mode chapter was describing a settings tab that had moved on, including a view picker that no longer exists, and has been read against the code and corrected.
Fixed
"Touch selects channel" no longer fires in UF8 Plugin Mode. In that mode the eight strips are not eight tracks, they are eight parameters of one plug-in on the focused track. Touching a fader selected whatever track sat under that strip, which moved the focus out from under the plug-in mid-gesture and left the next fader editing something else. The setting is about strips that stand for tracks, and there none of them does.
Two memory leaks in the JSON path. Every configuration file and every server answer goes through the same parser, and it hands back a tree that nothing was freeing. One layer deeper it also drops the key element of every object member somewhere nothing can reach. Parsing once, at load, made both look like nothing for years. Hue reads the bridge once a second, which is how they were found, and the second one has been in every release so far. Fixed and measured: a test that parses the same document twenty thousand times leaked 480 bytes a parse before and nothing after.
Configuration
The bindings file stays at version 32. Hue keeps its own configuration outside it, so a project and a bindings file from v0.5.7 load unchanged.
Known issues
- A UF8 plug-in-mode fader assigned to an FX parameter does not return to its envelope in
Touch during playback. - FX Cycle, Instance Cycle and Favourites cycling show their prev/current/next carousel on the
UC1 only. On a UF1 the landed plug-in name appears, without the neighbours.
Manual install
If ReaPack isn't an option:
- macOS:
rea-sixty-mac-v0.5.8.zip, unzip the three.dylibfiles into~/Library/Application Support/REAPER/UserPlugins/. - Windows:
rea-sixty-win-v0.5.8.zip, unzip the three.dllfiles into%APPDATA%\REAPER\UserPlugins\. Run the WinUSB driver installer from Settings, About on first launch. - Linux:
rea-sixty-linux-v0.5.8.tar.gz, unpack all three files (reaper_rea-sixty.so,libusb-1.0.so.0,libhidapi-hidraw.so.0) into~/.config/REAPER/UserPlugins/, keeping them together. Apply the bundled99-rea-sixty.rulesudev rule, or use the in-app button. No separate dependency install needed.
The Stream Deck Companion plugin (com.reasixty.companion.streamDeckPlugin) is attached to this release separately, it is not part of the ReaPack package.
Rea-Sixty v0.5.7
Rea-Sixty v0.5.7, "Say my name."
Things that were silent now say what they are. Switch a soft-key bank on the UF1 and its name flashes across the time display, the way a format change already flashed BARS or TIME. Banks can carry a name of your own, one per bank and per modifier set, and a bank without one announces what kind of bank it is or else its number, so the field always has something true to say. Around that: an unnamed marker or region stops arriving on the surface as a blank strip, the Envelope centre key shows which target the wheel is on, the dynamic-bank pager names both of the keys that page it, and the two keys that cannot be bound now say so, one of them having quietly accepted actions that could never fire. The time display also stopped guessing: its three formats are its own now, independent of whatever REAPER's ruler and transport are set to.
Install via ReaPack (recommended)
Under Extensions, ReaPack, Manage repositories, Import/export, Import repositories. Paste:
https://github.com/acklin83/reaper-scripts/raw/main/index.xml
Then Browse packages, Rea-Sixty, Install. Restart REAPER. Add the surface under Preferences, Control/OSC/Web, Add, Rea-Sixty.
First-run setup buttons live under Settings, About:
- Windows: "Install UF8/UC1/UF1 WinUSB driver" (UAC prompt)
- Linux: "Install Linux udev rule" (pkexec prompt)
- macOS: nothing extra
What's new
The soft-key bank names itself
Switching the UF1's soft-key bank flashes the bank's name across the ten cells of the time display for about a second, and the clock comes back by itself. On by default, in Settings, Behaviour, UF1.
A bank you named shows that name. A dynamic bank shows what kind it is: EFFECTS, GROUPS, COLOURS, FAVS. Anything else shows its number, SOFT 3. Holding SHIFT counts as a switch, because a modifier set is a bank of its own, and if that set simply takes Plain's bank its name is the same one and nothing flashes.
Names are typed in Settings, Bindings, UF1, one per bank and per modifier set. The field is never empty: with no name of its own it carries the name the bank will announce anyway, and clearing it puts that back, which is also how a name is undone.
The UF1 itself is the preview. While you type, the time display shows the name, so you read the real cells in the real font rather than a drawing of them. That matters because seven segments have no shape for K, M, V, W or X and the font approximates them without saying so, which is why Mix Keys arrives as MIH KEYS. With no UF1 attached the editor draws the ten cells under the field instead.
The time display stands on its own
Time, Bars and Samples are the 360 key's own three readings and none of them asks REAPER which unit its ruler or transport is set to. Time is minutes and seconds, which is the reading you compare against.
This also ends a set of wrong readings on negative positions. With a negative project start time, a cursor 26 ms before zero reached the field as -1:59:59:29.
Envelope mode
Where the wheel is driving the play cursor, Cmd pulls a time selection: the first detent drops an anchor, the rest drag the far end. That already worked in Playhead mode and now follows the wheel into Envelope, whose centre key hands it back and forth between the envelope's points and the cursor.
Once the cursor has moved, the arrows start from where it now is rather than from a point that was selected before the move, so nudging the playhead and reaching for an arrow lands where you are looking.
The centre key's LED shows which of the two the wheel is on, in the colours you gave that key. It used to be lit in both.
Nav Mode
A marker or region with no name of its own reads Region 3 or Marker 7, on the number REAPER shows in the ruler. Until now it arrived on the surface as an empty strip and read as missing, even though its number was in the channel-number zone the whole time. The UC1 carousel and the region readout use the same fallback.
The focused-track panel
Two new elements in the right-click Elements menu, both off by default: UF1 encoder mode and UF1 jog mode. Both are rings you scroll blind under a held key, so this is the only always-on readout of them, and the UF1's channel encoder runs its own ring, separate from the UF8's.
Editors
- The FX-Learn page row stopped fighting its own click. The
+that starts a new page was dead whenever the UF1 happened to be showing the plug-in being edited. Both editors also move the device onto a page once something is bound there. - Three text fields could write onto the wrong object when the thing they belong to changed under the cursor: the bank name, FX Learn's Display label and the UF1 cell's Display name. A bank name walked from bank to bank as you paged.
- The MODE-hold menu takes the soft-key highlight with it, so a dynamic bank's selection no longer sits under the mode names.
SCRUBis greyed out likeMODE. Holding it picks the Jog Mode, and the key never reached the binding system, so an action put there could never fire. Both keys say what they do on hover.- The dynamic-bank pager line names both page arrows. It named one and read as a claim that only that one pages.
- Settings, Modes, NAV lists every key bound to each Nav toggle, by silk-screen label.
- The UF1's Strip Mode window follows a channel change. Only the UF8's did.
Configuration
The bindings file moves to version 32. The addition is the soft-key bank names and nothing else; a configuration from an earlier version loads unchanged.
Known issues
- A UF8 plug-in-mode fader assigned to an FX parameter does not return to its envelope in
Touch during playback. - FX Cycle, Instance Cycle and Favourites cycling show their prev/current/next carousel on the
UC1 only. On a UF1 the landed plug-in name appears, without the neighbours.
Manual install
If ReaPack isn't an option:
- macOS:
rea-sixty-mac-v0.5.7.zip, unzip the three.dylibfiles into~/Library/Application Support/REAPER/UserPlugins/. - Windows:
rea-sixty-win-v0.5.7.zip, unzip the three.dllfiles into%APPDATA%\REAPER\UserPlugins\. Run the WinUSB driver installer from Settings, About on first launch. - Linux:
rea-sixty-linux-v0.5.7.tar.gz, unpack all three files (reaper_rea-sixty.so,libusb-1.0.so.0,libhidapi-hidraw.so.0) into~/.config/REAPER/UserPlugins/, keeping them together. Apply the bundled99-rea-sixty.rulesudev rule, or use the in-app button. No separate dependency install needed.
The Stream Deck Companion plugin (com.reasixty.companion.streamDeckPlugin) is attached to this release separately, it is not part of the ReaPack package.
Rea-Sixty v0.5.6
Rea-Sixty v0.5.6, "The other half of Shift"
A modifier set is a full bank, and now it is one everywhere. Holding Shift over a soft-key row has shown its own set for a while, but three places never got the message: the SSL Channel-Strip and Bus-Comp rows, which handed the row back to the plug-in; a dynamic bank, which computed its keys and ignored what you had put on the set; and the surface itself, which fell back to Plain the moment you let the key go, while the editor stayed where you had latched it. All three follow now, and a set can be a dynamic bank of its own, so FX on Plain and Track Colours on Shift is a thing you can build. Alongside that: the UF1's LEDs read their bindings instead of a colour baked into the painter, its time display can spell words, and eleven points from a forum round landed.
Install via ReaPack (recommended)
Under Extensions, ReaPack, Manage repositories, Import/export, Import repositories. Paste:
https://github.com/acklin83/reaper-scripts/raw/main/index.xml
Then Browse packages, Rea-Sixty, Install. Restart REAPER. Add the surface under Preferences, Control/OSC/Web, Add, Rea-Sixty.
First-run setup buttons live under Settings, About:
- Windows: "Install UF8/UC1/UF1 WinUSB driver" (UAC prompt)
- Linux: "Install Linux udev rule" (pkexec prompt)
- macOS: nothing extra
What's new
The SSL rows open up
The Channel-Strip (Q1) and Bus-Comp (Q2) rows on Layer 1 are the plug-in's, but only where the plug-in actually puts a parameter. The gaps have been yours since June and there was no way to reach them in Settings, so the capability sat there unusable. The editor offers them now, per key rather than refusing the whole Quick, and the empty Bus-Comp pages 2 to 5 are free real estate.
On top of that, Plain belongs to the plug-in and every modifier set belongs to you, on every key, including the eight the Channel Strip fills. Hold the FINE key and the row shows your set: the keys you assigned, and nothing at all on the ones you did not. A key you left empty does nothing when pressed, rather than quietly moving the plug-in's focused parameter behind a blank label.
The Bindings pane drives the surface
While Settings is open on the Bindings pane, the surface follows the set the Modifier row is on, rather than the key you are physically holding. Press FINE to jump to the Shift set and the row stays there when you let go, so what you see on the hardware is what you are editing, and pressing a key fires that set. Close the pane and the surface goes back to following the held key.
Holding the modifier also moves the editor from anywhere in the pane now, not only once a soft-key is selected.
Dynamic banks got their sets
A dynamic bank computes its eight (or four) keys from the focused track, and the modifiers over it run the FX-key gestures. That was read as "a dynamic bank has no sets", which is only true where the set is empty. Assign a key in a set and it fires instead of that key's gesture; leave it empty and the gesture runs exactly as before, so nothing you were using goes away. The row paints what it will do, which it did not before: the assigned key shows your label and colour rather than the computed one.
The UF1's banks work this way too now, and their slot editors stay reachable while a set is picked, since that is where the key goes.
And a set can be a dynamic bank of its own. Pick a kind with the Modifier row on Shift and that set becomes its own bank, so FX on Plain and Track Colours on Shift is one bank, not two. A set left on "Off (take Plain's bank)" behaves as it always has. A set that owns its bank has no gestures on it: holding the modifier is how you got there, so a press is that bank's own push.
Typing in Settings
Typing a capital letter into a label field mirrored the keyboard's Shift into the shared modifier state, and every LED and scribble strip on the surface follows that, so the hardware flickered onto its Shift set per keystroke. While the Settings window owns the keyboard, the mirror stands down. Holding SHIFT on the surface is untouched, and so is the keyboard's Shift everywhere else.
UF1 LEDs
- The nav cross lights from its bindings, one set per jog mode, so a key shows what it does right now instead of sitting dark in three of the six modes. The razor edge, the envelope target, a held item drag and the fade edge still win their own key, now in that binding's active colour.
- Holding a modifier no longer changes the LED of a key that has nothing assigned on it. Only keys that carry an action for the held modifier switch to its colour.
- MASTER, BANK left/right, PAGE left/right and 5-8 follow the colour set for them. They ignored it and painted a fixed one, so they now look like every other key: their colour, bright when the move is possible, dim when it is not. Set Inactive to Off for the old unlit look.
- LED brightness Off means off, on every UF1 key and on the DAW soft-keys. It rendered as Dim.
The UF1 time display
It can show text. Stepping the format flashes BARS, TIME or SAMPLES, so the field names what it is showing. A position of ten digits or more no longer loses its leading digit: the field is ten cells wide, not eleven. And a negative position keeps its minus sign, which used to be dropped.
Track colours
The factory palette of the Track Colours bank used colours the hardware does not have, so the firmware rounded them and two swatches came out looking the same while a third went pink. It is eight real palette values now. Separately, a dimmed key no longer loses its hue: dimming happens after the colour is quantised, not before, which is why three keys read as red and the fourth as unlit.
From the forum round
- A parameter with more than five steps steps through all of them. Five probes could not tell ten steps from continuous, and a parameter declared continuous became a hard 0/1 toggle.
- A long press on a dynamic bank key fires under the finger at half a second, rather than waiting for the release.
- FLIP in Plug-in Mode puts the last touched V-Pot's plug-in parameter on the fader. Strip Mode, send faders and a sticky pin still win, and without a parameter to resolve it falls back to Pan.
- Selection Mode comes back as NORM on start. Settings, Behaviour, Tracks; on by default, and turning it off restores the old behaviour without having lost the stored mode.
- Soft-key 1 on the UF1 display no longer sits green while the other three are yellow.
send_thisandrecv_thisare hidden from the UF1 action picker. They write state no UF1 path reads.- Every built-in action carries a one-line description, shown as a tooltip in the action picker and searched along with the name.
- The Settings window no longer closes itself while scrolling the FX Learn pane.
Known issues
- A UF8 plug-in-mode fader assigned to an FX parameter does not return to its envelope in
Touch during playback. - FX Cycle, Instance Cycle and Favourites cycling show their prev/current/next carousel on the
UC1 only. On a UF1 the landed plug-in name appears, without the neighbours.
Manual install
If ReaPack isn't an option:
- macOS:
rea-sixty-mac-v0.5.6.zip, unzip the three.dylibfiles into~/Library/Application Support/REAPER/UserPlugins/. - Windows:
rea-sixty-win-v0.5.6.zip, unzip the three.dllfiles into%APPDATA%\REAPER\UserPlugins\. Run the WinUSB driver installer from Settings, About on first launch. - Linux:
rea-sixty-linux-v0.5.6.tar.gz, unpack all three files (reaper_rea-sixty.so,libusb-1.0.so.0,libhidapi-hidraw.so.0) into~/.config/REAPER/UserPlugins/, keeping them together. Apply the bundled99-rea-sixty.rulesudev rule, or use the in-app button. No separate dependency install needed.
The Stream Deck Companion plugin (com.reasixty.companion.streamDeckPlugin) is attached to this release separately, it is not part of the ReaPack package.
Rea-Sixty v0.5.5
Rea-Sixty v0.5.5, "He's not just some dingbat I found on the strip, man."
Presets, and a jog mode for fades. The preset browsers on both surfaces stopped being decoration: they read SSL's own preset library off disk, in its folders, and a preset you pick is genuinely loaded, so the plug-in reports it as loaded rather than as the last one with changes. The UC1's PRESETS screen has had nothing to show since it was built, because REAPER's preset API is empty for every SSL plug-in; it now browses the real thing, and each half of the screen browses its own section's instance. On the UF1 the jog wheel learned fades, the meter reached the master track and the monitoring chain, and the Loudness screen's three controls all do something for the first time.
Install via ReaPack (recommended)
Under Extensions, ReaPack, Manage repositories, Import/export, Import repositories. Paste:
https://github.com/acklin83/reaper-scripts/raw/main/index.xml
Then Browse packages, Rea-Sixty, Install. Restart REAPER. Add the surface under Preferences, Control/OSC/Web, Add, Rea-Sixty.
First-run setup buttons live under Settings, About:
- Windows: "Install UF8/UC1/UF1 WinUSB driver" (UAC prompt)
- Linux: "Install Linux udev rule" (pkexec prompt)
- macOS: nothing extra
What's new
Presets that actually load
Picking a preset used to write a wall of extremes into the plug-in. The number in an SSL preset file is not a normalised value, and normalised is the only domain REAPER has for a VST3: a choice parameter stores its index, a float parameter its plain value in its own unit. Both are converted now, and anything that cannot be verified is skipped rather than guessed at.
That fixed the values and still left the plug-in reading "the last preset, with changes", because SSL does not derive the loaded preset from the values. It keeps it as an attribute in its own state. So a load is written where the plug-in keeps it, which is what makes the instance show the preset as loaded, and what lets the browser open on whatever is loaded instead of at the top of the list.
The UC1's PRESETS screen
It reads SSL's library now, in the folders SSL files it in: sub-folders first, CONFIRM steps into one, BACK comes back up, and CONFIRM on a preset loads it. Browsing changes nothing on the way, which the old live-preview did on every detent.
CHANNEL STRIP browses the strip under the Channel Strip section and BUS COMP the compressor under the Bus Comp section. The two sections address different tracks, which is the point of the layout, and both lists were being read off the Channel Strip's track.
UF1: fades on the jog wheel
Fades is a sixth jog mode. The wheel pulls the fade under the edit cursor, and which edge the cursor sits nearer decides whether you are shaping a fade or a crossfade. On a crossfade the seam stays where it is, so pulling one open never moves audio. The view frames the fade you are working on and stands still while you turn.
Cmd and the wheel pull a time selection in Playhead and Scrub, on Windows Alt. Scrub no longer drags one on its own.
UF1 meter
A meter on the master track or in the monitoring FX chain is reachable at last; both were invisible, for two separate reasons. On sessions past 127 tracks the meter followed the wrong track. The view shows a track's current name, so renaming updates it. The V-Pots resolve their parameters by name, so on a plain SSL Meter the labels no longer name one parameter and turn another. Umlauts survive on the display.
On the Loudness screen the scale is labelled from the plug-in's own Integrated Target and its Absolute or Relative setting, rather than from the values it was captured with. PRESETS opens there like everywhere else, PLAY pauses and resumes the measurement, and RESET clears the plug-in's own peak holds and overloads, plus its loudness measurements on the screen that shows them.
On-screen
The mode ring is a carousel you can turn, the jog ring is sortable, and the ring opens around the button you pressed instead of walking up the screen with every pick.
Known issues
- A UF8 plug-in-mode fader assigned to an FX parameter does not return to its envelope in
Touch during playback. - FX Cycle, Instance Cycle and Favourites cycling show their prev/current/next carousel on the
UC1 only. On a UF1 the landed plug-in name appears, without the neighbours.
Manual install
If ReaPack isn't an option:
- macOS:
rea-sixty-mac-v0.5.5.zip, unzip the three.dylibfiles into~/Library/Application Support/REAPER/UserPlugins/. - Windows:
rea-sixty-win-v0.5.5.zip, unzip the three.dllfiles into%APPDATA%\REAPER\UserPlugins\. Run the WinUSB driver installer from Settings, About on first launch. - Linux:
rea-sixty-linux-v0.5.5.tar.gz, unpack all three files (reaper_rea-sixty.so,libusb-1.0.so.0,libhidapi-hidraw.so.0) into~/.config/REAPER/UserPlugins/, keeping them together. Apply the bundled99-rea-sixty.rulesudev rule, or use the in-app button. No separate dependency install needed.
The Stream Deck Companion plugin (com.reasixty.companion.streamDeckPlugin) is attached to this release separately, it is not part of the ReaPack package.
Rea-Sixty v0.5.4
Rea-Sixty v0.5.4, "Phantom Power"
The UF1 records, and Rea-Sixty stops describing hardware you do not own. REC is a real mode on the UF1 now: SEL arms the channel on the fader, and the pot above that fader reaches into an RME interface for gain, phantom, pad and input channel. On the other side of the release, the Settings window learned which surfaces this computer has actually had attached and hides the rest, so a UF1-only rig no longer scrolls past UC1 calibration and UF8 pot feel. Between the two, planning the RME controls flushed out five defects, one of which had been silently wrong on every UF1 since the small display existed.
Install via ReaPack (recommended)
Under Extensions, ReaPack, Manage repositories, Import/export, Import repositories. Paste:
https://github.com/acklin83/reaper-scripts/raw/main/index.xml
Then Browse packages, Rea-Sixty, Install. Restart REAPER. Add the surface under Preferences, Control/OSC/Web, Add, Rea-Sixty.
First-run setup buttons live under Settings, About:
- Windows: "Install UF8/UC1/UF1 WinUSB driver" (UAC prompt)
- Linux: "Install Linux udev rule" (pkexec prompt)
- macOS: nothing extra
What's new
UF1: REC is a mode, and it reaches your preamp
Switch the UF1 into REC and SEL arms the channel the fader side is showing, with the SEL lamp red and bright while armed. It is the same selection mode the UF8 has always had, not a separate action, so the existing mode actions switch it and nothing new is seeded onto your keys.
With an RME interface and TotalReaper running, the same mode hands you the preamp of that channel. The V-Pot above the fader sets gain, Shift on it walks the input channel, and CUT and SOLO carry whatever you assign them: phantom, pad, phase, AutoLevel. Both rotation controls default on here, unlike the UF8's and the UC1's. On a surface with exactly one knob above the fader, in a mode you switched on deliberately, a knob that still pans is a dead control rather than a preference.
Settings, Modes, REC now says whether TotalReaper was detected, and hands you to ReaPack when it was not. Both packages come from the same repository, so it is one click.
The Settings window hides surfaces you have never had
With only a UF1 on the desk, the Devices pane no longer offers UC1 GR calibration or UF8 pot feel, the Behaviour pane drops the UF8 and UC1 lines, the Bindings pane shows one surface tab, and the REC block shows one third of itself. The search box hides them too, so a search cannot land you on a control the page does not draw.
It remembers rather than checks. Unplugging a surface for an afternoon leaves every one of its settings exactly where it was; only a surface this computer has never seen is hidden. That is why it needs no setting to switch on, and why two buttons exist for the edge cases: Show settings for devices you don't have brings everything back, and Forget devices that aren't connected shrinks the list when a surface leaves the studio for good. Each appears only when it would do something.
UF1: the fader half and the plug-in half address different tracks
The UF1's panel is split. The fader, its meter, the small display, SOLO, CUT, SEL and the pot above the fader belong to the channel on the fader; the four V-Pots, the four display soft keys and the EQ graph follow the selection. The painting moved to that rule earlier; the actions had not, so in Extender mode CUT lit for one track and muted another. Both halves agree now, and MASTER outranks the Extender on both.
Fixes the REC round flushed out
- The small display's bar never worked, for anything. Not pan, not a Sticky Pot, not a preamp. The startup sequence set the bar style to "off" and nothing ever set it back, so every position sent to it drew nothing.
- Changing a track's input left the preamp readout describing the previous channel. TotalReaper (v0.2.2, same repository) now notices the change itself and asks for a fresh dump.
- Turning the gain knob flashed TRIM and the channel number on the UF8.
- Both Settings tab restores were dead after closing and reopening the window, so the pane and the surface tab were forgotten every time.
- Pan felt sluggish on the UF8 next to the UF1: half the resolution per detent. Both surfaces use the same law now, and pan draws as a single travelling line on both instead of filling from the middle.
Smaller things
- Toggle V-Pots to Pan no longer appears in the UF1's action picker. It writes state only the eight-strip surfaces read, so bound to a UF1 key it did nothing at all, silently.
- The REC settings text is a set of lines rather than a paragraph.
- The manual's MIDI chapter described a virtual MIDI port that the extension does not open, and two message types it cannot send. MIDI bindings go to REAPER's own outputs, chosen by name or all at once.
- The manual's install filenames stopped naming a version three releases old.
Known issues
- A UF8 plug-in-mode fader assigned to an FX parameter does not return to its envelope in
Touch during playback. - FX Cycle, Instance Cycle and Favourites cycling show their prev/current/next carousel on the
UC1 only. On a UF1 the landed plug-in name appears, without the neighbours.
Manual install
If ReaPack isn't an option:
- macOS:
rea-sixty-mac-v0.5.4.zip, unzip the three.dylibfiles into~/Library/Application Support/REAPER/UserPlugins/. - Windows:
rea-sixty-win-v0.5.4.zip, unzip the three.dllfiles into%APPDATA%\REAPER\UserPlugins\. Run the WinUSB driver installer from Settings, About on first launch. - Linux:
rea-sixty-linux-v0.5.4.tar.gz, unpack all three files (reaper_rea-sixty.so,libusb-1.0.so.0,libhidapi-hidraw.so.0) into~/.config/REAPER/UserPlugins/, keeping them together. Apply the bundled99-rea-sixty.rulesudev rule, or use the in-app button. No separate dependency install needed.
The Stream Deck Companion plugin (com.reasixty.companion.streamDeckPlugin) is attached to this release separately, it is not part of the ReaPack package.
Rea-Sixty v0.5.3
Rea-Sixty v0.5.3, "Hold my Shift"
Shift became a real, visible binding. Every soft-key bank now carries two full sets of keys, Plain and Shift, each with its own dynamic kind, its own presets and its own LED colour. The UF1's nav cross carries a separate binding per jog object, five keys by five objects, and Shift on those keys is a binding you can see rather than a check hidden inside an action. Along the way the bindings editor learned to edit the bank you are actually holding, a dynamic bank learned to say that it is one, and REAPER stopped being able to vanish without a word.
Install via ReaPack (recommended)
Under Extensions, ReaPack, Manage repositories, Import/export, Import repositories. Paste:
https://github.com/acklin83/reaper-scripts/raw/main/index.xml
Then Browse packages, Rea-Sixty, Install. Restart REAPER. Add the surface under Preferences, Control/OSC/Web, Add, Rea-Sixty.
First-run setup buttons live under Settings, About:
- Windows: "Install UF8/UC1/UF1 WinUSB driver" (UAC prompt)
- Linux: "Install Linux udev rule" (pkexec prompt)
- macOS: nothing extra
What's new
REAPER could disappear without a message
The audio kept playing and the window was simply gone, with no crash report and nothing in the log. The extension watches its network connections with a mechanism that has a hard ceiling on how many it can watch at once, and a connection numbered past that ceiling wrote outside the memory set aside for the answer. Nothing marked the moment it happened, which is why it looked like anything but what it was.
It now uses a mechanism with no such ceiling, and the number of connections it will accept is higher than anything a session produces. Three separate diagnoses were overturned by measurement before this one held, which is recorded where the next person will look.
A soft-key bank is two full banks now
Holding the modifier switches the whole row of eight, labels and all, and releasing returns to Plain. This is not a second list of actions hanging off the same bank: each set carries its own Dynamic bank setting, its own presets and its own LED colour, so Plain can hold eight fixed assignments while Shift is an FX bank on the same sub-bank.
Slots also take a Behavior now (Momentary, Toggle, Hold) and all four modifier slots, the same settings every other key has had. The UF1's ten banks and the UF8's six sub-banks per Quick both work this way.
There is no Cmd or Ctrl set. The surface carries one modifier key, so those two would have to come from the computer keyboard, where they already belong to the FX-Learn modifier layers.
The editor edits the bank you are holding
Clicking a Quick or a Sub-Bank in the schematic engages it, so the pane can never sit on a different bank than the surface, and pressing the modifier key on the hardware moves the editor to that set. What you edit is what you are holding, in both directions.
Copy and paste work on soft-keys, which they did not, and recalling a preset into a set brings its labels along instead of leaving the previous set's names in place.
A dynamic bank says so
A dynamic sub-bank used to look exactly like a static one while quietly ignoring everything you assigned to it. It now announces itself in three places: an amber corner on the sub-bank cell, scribble strips that read the bank's kind rather than slot labels that never reach the hardware, and a key press that shows what the bank computes instead of an editor for slots that cannot fire.
CS and BC Favourites are a dynamic bank kind of their own. Any sub-bank can become the eight Channel Strip or Bus Compressor favourites without loading a preset, and the keys carry each favourite's plug-in name live. Firing a favourite on a track that has no Channel Strip now inserts the plug-in rather than doing nothing.
UF1: the nav cross is yours, five times over
The five keys around the jog wheel hold a separate binding per jog object. The same physical key can do five different things and you decide all five, in Settings, Bindings, UF1, where the object picker follows the surface and moves it. Every one of the twenty-two things the cross does is a named action now, so any of them can go on any other key too.
Shift on those keys is a binding as well. The add-to-selection gestures sit in the Shift slot where you can see them and change them, instead of being a check inside the action. A Shift slot left empty falls back to the plain action, so the factory assignment behaves exactly as it did before.
Playhead and Scrub carry the plain zoom cross, which is what the cross does when no editing object is engaged.
UF1: sends, and a screen that says more
The Sends view has a three-state send mode on each soft key, walking REAPER's own order, and Shift mutes a send. Shift with the V-Pot pans it, Shift with the V-Pot push centres the pan, and Shift with 5-8 flips between sends and receives.
The four soft keys now highlight on screen when engaged. That matters while the Bus Compressor's gain reduction owns their LEDs: the highlight is the second channel that still tells you which sections are in.
UF1: fixes from the forum report
- The phantom low cut on every plug-in that is not an SSL strip is gone. Any resolved FX was treated as an EQ, so the curve was drawn from defaults, and the fallback high-pass sits inside the visible range.
- The CS type cell and PRE, SOLO SAFE, PLUG-IN stay blank on a track with no plug-in.
- Six functions no longer need a UC1 to be connected before they will run.
- SOLO is yellow, both lit and dim, like REAPER's own track panels.
- The V-Pot reaches minus infinity, the way the fader always could.
- The V-Pot bar style is driven live rather than frozen at whatever it was, and a centre bar shows a signed deviation instead of an absolute position.
- Holding MODE no longer draws the header twice.
- Plugin view on a track without a strip shows nothing instead of dead Pan and Volume readings.
- The surface comes back up in the view it was left in.
Smaller things
- UF8: Bank left and right stay the fader bank in Plugin Mode.
- The mode banner no longer announces a state that was merely restored when the project opened.
- For plug-in display names your own mapping wins over the SSL mapping.
- The dynamic FX bank shows the name you gave a plug-in, not the factory one.
- Bindings are written in a stable order, so a config diff is readable. The first save after updating is still large, because that is the reordering itself.
- The Bindings pane remembers which surface you were last on.
- The manual covers the nav cross and the Jog actions, and several passages that had fallen behind the code are correct again.
Known issues
- A UF8 plug-in-mode fader assigned to an FX parameter does not return to its envelope in
Touch during playback.
Manual install
If ReaPack isn't an option:
- macOS:
rea-sixty-mac-v0.5.3.zip, unzip the three.dylibfiles into~/Library/Application Support/REAPER/UserPlugins/. - Windows:
rea-sixty-win-v0.5.3.zip, unzip the three.dllfiles into%APPDATA%\REAPER\UserPlugins\. Run the WinUSB driver installer from Settings, About on first launch. - Linux:
rea-sixty-linux-v0.5.3.tar.gz, unpack all three files (reaper_rea-sixty.so,libusb-1.0.so.0,libhidapi-hidraw.so.0) into~/.config/REAPER/UserPlugins/, keeping them together. Apply the bundled99-rea-sixty.rulesudev rule, or use the in-app button. No separate dependency install needed.
The Stream Deck Companion plugin (com.reasixty.companion.streamDeckPlugin) is attached to this release separately, it is not part of the ReaPack package.
Rea-Sixty v0.5.2
Rea-Sixty v0.5.2, "It was never the firmware"
Bug fixes. REAPER could be killed outright by a plug-in whose parameter values print long text, FabFilter above all. The Windows driver installer did nothing at all from the second press onwards, which locked out anyone who pressed it twice. Names on the surface were still being cut to seven characters in seven places after the zone grew to twelve. And on the UF1 the EQ graph did not follow a channel change, while SEL in Extender mode selected the channel that was already selected.
Install via ReaPack (recommended)
Under Extensions, ReaPack, Manage repositories, Import/export, Import repositories. Paste:
https://github.com/acklin83/reaper-scripts/raw/main/index.xml
Then Browse packages, Rea-Sixty, Install. Restart REAPER. Add the surface under Preferences, Control/OSC/Web, Add, Rea-Sixty.
First-run setup buttons live under Settings, About:
- Windows: "Install UF8/UC1/UF1 WinUSB driver" (UAC prompt)
- Linux: "Install Linux udev rule" (pkexec prompt)
- macOS: nothing extra
What's new
REAPER no longer dies on a long parameter value
The UF1 display line is nineteen characters, built as a name, then padding, then the value. All three lengths were counted in a type that cannot go below zero. A value at least as long as the whole line made the arithmetic wrap to an enormous number, the padding step asked for a string of that size, and the resulting error escaped into REAPER's event loop, which treats one as fatal. REAPER ended immediately, with a crash report that named nothing at all.
The value is the plug-in's own formatted text, so its length is entirely up to the plug-in. SSL's strips never reach nineteen characters. FabFilter does, "External / Sidechain" is twenty, which is why this only ever happened with FabFilter loaded and looked like a compatibility problem.
The tick that drives the surface now also catches an unexpected error instead of letting it reach REAPER. A future bug of this kind costs a glitched frame and a line in the log rather than the session.
Windows driver install works on the second press
The installer built a signed catalogue of its own working folder while writing that catalogue into the same folder. The first run was clean, because the folder held only the driver file. Every run after that found the previous catalogue sitting there, failed while hashing it, and stopped before installing anything, with the window closing too fast to read. Pressing the button again is exactly what people do when nothing appears to happen, so anyone who did was locked out from then on. One forum user came close to selling a working UF1 over it.
Also fixed: each press added another copy of the driver package to Windows' store, while the uninstall only ever removed one. That is how machines ended up with copies that could not be removed from inside the app.
The install now reports what actually happened, rather than "started": installed, failed with the path of a log to paste, or cancelled at the permission prompt. Cancelling is not a failure and no longer reads as one. Settings, About also shows what each device is bound to right now, with a Refresh button, so you can see whether the driver took without opening Device Manager.
The button says UF8, UC1 and UF1 now. It always bound all three; the label said two, so UF1 owners read it as not being for them. After a successful install the devices move from "Universal Serial Bus controllers" to "Universal Serial Bus devices" in Device Manager and are renamed, which the text now says, because looking in the old place and finding nothing reads as a dead unit.
Verified on Windows 11: the old installer fails on the second run with the exact error the forum user reported, the new one survives five runs in a row and leaves one copy in the driver store.
Names are twelve characters everywhere
The colour-bar zone was measured at twelve characters back in v0.5.0 and the caps were raised where they were found. Seven were missed: the Learn-HUD's own rename cut what its own dialog let you type, the new-map dialog said seven and had a buffer to match, and the shared parameter name was cut to seven when set from the UF8 while the UF1 accepted eleven for the same string.
UF1: the EQ graph follows the channel, and SEL selects
The graph stayed on the previous channel until an EQ value was touched. Choosing a channel by hand, with SEL or the channel encoder, now takes precedence over the plug-in instance you last activated. The button had that rule and the encoder did not, which is why one worked and the other did not.
In Extender mode SEL selects the track the UF1's fader is on. Its lamp has always reported that track; the press acted on the selected one instead, so it did nothing.
The graph also redraws after the device is unplugged and back, instead of believing a curve is on screen that the device cleared.
Smaller UF1 fixes
- The Learn-HUD's UF1 tab shows the name of the plug-in the UF1 is on. It showed the Channel Strip's name, or nothing, because the two can be on different tracks.
- Umlauts on the UF1 panel came out as two characters each.
- The Extender's small display named the selected track instead of the track under the fader.
- An envelope jog left nothing to undo.
- A long parameter name overflowed the FX-Learn cell identifier, and "Fill: Replace" on a plug-in with hundreds of parameters is now capped.
Known issues
- A UF8 plug-in-mode fader assigned to an FX parameter does not return to its envelope in
Touch during playback.
Manual install
If ReaPack isn't an option:
- macOS:
rea-sixty-mac-v0.5.2.zip, unzip the three.dylibfiles into~/Library/Application Support/REAPER/UserPlugins/. - Windows:
rea-sixty-win-v0.5.2.zip, unzip the three.dllfiles into%APPDATA%\REAPER\UserPlugins\. Run the WinUSB driver installer from Settings, About on first launch. - Linux:
rea-sixty-linux-v0.5.2.tar.gz, unpack all three files (reaper_rea-sixty.so,libusb-1.0.so.0,libhidapi-hidraw.so.0) into~/.config/REAPER/UserPlugins/, keeping them together. Apply the bundled99-rea-sixty.rulesudev rule, or use the in-app button. No separate dependency install needed.
The Stream Deck Companion plugin (com.reasixty.companion.streamDeckPlugin) is attached to this release separately, it is not part of the ReaPack package.
Rea-Sixty v0.5.1
Rea-Sixty v0.5.1, "HOTFIX"
v0.5.0 stopped REAPER from starting on Windows. This release fixes that, and nothing else. The extension asked Windows for more working memory at startup than a program's main thread is given, so Windows killed the process while the extension was still loading. REAPER never opened, which also meant ReaPack was out of reach and the extension could not be removed from inside the app. macOS and Linux were never affected, because they give a program roughly eight times more of that memory, and the same build ran fine there all along. Sorry to anyone this caught.
If REAPER will not start right now
You cannot install this update from inside REAPER, because REAPER does not open. Move one file first, then update normally.
- Press Windows key and R together.
- Paste
%APPDATA%\REAPER\UserPluginsand press Enter. - Rename
reaper_rea-sixty.dlltoreaper_rea-sixty.dll.OFF.
REAPER starts again now, without Rea-Sixty. Update through ReaPack as usual, restart REAPER, then delete the .OFF file you made. Or skip ReaPack and drop the reaper_rea-sixty.dll from this release straight into that folder, replacing the old one.
On a portable REAPER install the folder is UserPlugins next to reaper.exe instead. If Windows hides the .dll part of the name, switch on File name extensions under View, Show in Explorer first.
The full version of this, with the checks for whether it really was this bug, is in docs/v0.5.0-windows-recovery.md.
Install via ReaPack (recommended)
Under Extensions, ReaPack, Manage repositories, Import/export, Import repositories. Paste:
https://github.com/acklin83/reaper-scripts/raw/main/index.xml
Then Browse packages, Rea-Sixty, Install. Restart REAPER. Add the surface under Preferences, Control/OSC/Web, Add, Rea-Sixty.
First-run setup buttons live under Settings, About:
- Windows: "Install UF8/UC1 WinUSB driver" (UAC prompt)
- Linux: "Install Linux udev rule" (pkexec prompt)
- macOS: nothing extra
What's new
Windows: REAPER starts again
One line in the settings loader built a fresh copy of the whole configuration on the stack, the small scratch area Windows caps at one megabyte for a program's main thread. That copy had quietly grown to a little over one megabyte on its own, because the UF1 work in v0.5.0 added fields to every button binding and the configuration holds several thousand of them. Windows checks the whole request before the function runs its first instruction, found it did not fit, and ended the process. Nothing in the extension's own error handling ever got a chance to run, which is why REAPER died in silence rather than showing a message.
The copy now lives in ordinary memory instead of on the stack, which is where it always belonged. The same crash was fixed once before, in May, for the same reason in the same file. That fix covered every variable holding a configuration and missed the one that was a temporary value, and back then it still fit anyway.
So that there is no third time, the build now refuses to compile if any function reserves more than 256 KB of stack. The largest one left in the extension uses 149 KB.
This was reported on the forum first, and confirmed on a Windows machine here: three crashes, all with Windows error code 0xc00000fd, all at the same instruction inside the memory check.
Known issues
Same as v0.5.0.
Manual install
If ReaPack isn't an option:
- macOS:
rea-sixty-mac-v0.5.1.zip, unzip the three.dylibfiles into~/Library/Application Support/REAPER/UserPlugins/. - Windows:
rea-sixty-win-v0.5.1.zip, unzip the three.dllfiles into%APPDATA%\REAPER\UserPlugins\. Run the WinUSB driver installer from Settings, About on first launch. - Linux:
rea-sixty-linux-v0.5.1.tar.gz, unpack all three files (reaper_rea-sixty.so,libusb-1.0.so.0,libhidapi-hidraw.so.0) into~/.config/REAPER/UserPlugins/, keeping them together. Apply the bundled99-rea-sixty.rulesudev rule, or use the in-app button. No separate dependency install needed.
The Stream Deck Companion plugin (com.reasixty.companion.streamDeckPlugin) is attached to this release separately, it is not part of the ReaPack package.
Rea-Sixty v0.5.0
Rea-Sixty v0.5.0, "Welcome to the party, pal"
The release the UF1 has been waiting for. Everything below the "UF1" heading is new.
Up to v0.4.x there was no UF1 device code at all, so plugging one in did nothing. It is now a
first-class surface next to the UF8 and UC1, with its own maps, its own feel settings and
its own screen.
294 commits since v0.4.5.
Install via ReaPack
Add this repository URL under Extensions, ReaPack, Import repositories:
https://github.com/acklin83/reaper-scripts/raw/main/index.xml
Then open Extensions, ReaPack, Browse packages and install Rea-Sixty. Restart REAPER.
UF1, native support
Channel strip, DAW and Plug-in views. The small LCD paints track name, output level,
pan line and bar, channel number and colour, and Solo, Cut and Sel light in the track's own colour.
The channel encoder steps one track per click, Fine works in every channel mode, and the
DAW view follows the selection instead of dragging it around.
Plug-in mode. Four V-Pots drive the focused SSL channel strip (CS 2, 4K B, 4K E,
4K G, 360 Link) or a standalone Bus Comp, with the display soft-keys on the plug-in's own
toggles. The 360-Link Bus Compressor is recognised as its own type. The EQ graph draws
SSL's own curve, and for a channel strip you learned yourself it draws ours from
REAPER's parameters.
Meter view. Overview bargraphs, the analogue VU/PPM needles, the goniometer, the RTA
spectrum and the full Loudness page set, fed live from the SSL 360° plug-ins. Meter
instances can be pinned, and a track with two meters no longer draws one while editing the
other. The needles read the plug-in's own meter rather than a derived peak.
The meter view carries its own soft-keys as well: RESET for the holds, FINE for a
finer resolution on continuous parameters, and PRESETS, which browses the plug-in's
own preset library read straight from SSL's on-disk XML. The channel strip follows
the selection in that view and keeps showing levels.
Jog Mode. The jog wheel no longer has one job. It has an object, and the object
decides what turning it means. Hold SCRUB and turn the wheel to pick between
Playhead, Scrub (audible scrubbing), Items, Envelope and Razor.
The split that makes it work: the arrow cross selects, the wheel moves. You never let
go of the wheel to change what you are working on. The cross follows the object too. In
Items it walks item to item (left and right) and track to track (up and down); in
Envelope it steps
point to point and switches lane, and its centre toggles whether the wheel edits the
points or the playhead; In Razor it aims at the whole area or one of its four edges, and the cross keys light to
show which.
Three modifiers stack on the wheel:
- Shift is fine, dividing the step (a quarter by default).
- Cmd copies instead of moving.
- Ctrl is the cross axis. In Items that is track by track instead of in time. In
Razor it moves the area to the next lane, media lane or envelope lane, rather than
along the timeline. The vertical axis is discrete, so it steps one at a time.
In Items and Envelope, SHIFT with left and right adds to the selection instead of replacing
it, so you can walk a run of items or points onto the wheel.
Razor's centre key is a held gesture. Hold it and the razor area drags its content as
one continuous move, and releasing commits. The content is grabbed once at the start, so
the area cannot sweep up the material it is dragging across. Hold Ctrl as well and the
whole thing, content included, moves to the lane above or below.
Every speed is adjustable per object in Settings, Bindings, UF1. The manual's Jog
Mode chapter has the full cross-and-wheel table.
The MODE key is a hold, and it holds two pickers. Keep MODE down and the four
display soft-keys pick the view (Plug-in, DAW, Meter, Sends). At the same time the
CHANNEL encoder steps the Encoder Mode, with SK4's label showing the live mode name
as you turn, so one held key gives you both. Let go and the choice sticks.
The encoder mode decides what the big notched CHANNEL encoder does when nothing is held:
track selection, playhead nudge, a synthesised mouse wheel, marker stepping, banking by one
strip, the last-touched parameter, walking FX or Instances on the focused track or across
tracks, or stepping the Selection Sets. Twelve in all. Shift with the rotation always
re-banks by one strip, whatever mode is set.
Which modes appear in the ring, and in what order, is yours to set in Settings, Bindings,
UF1, so you can leave out the ones you never use. The UF1 keeps its own encoder mode,
separate from the UF8's, so the two surfaces do not fight over one setting.
Editing that behaves like the mouse. Item and razor drops trim behind and crossfade on
release, following REAPER's own auto-crossfade / trim-behind / fade-length / fade-shape
preferences rather than a policy of ours. Razor edits work on envelope lanes too: the
area can span several lanes and move between tracks, opening the matching envelope on the
destination track and handing it back when the drag moves on, with the points coming
along. The drag stays non-destructive until you let go, so jogging back and forth loses
nothing, and the whole gesture undoes in one step.
FX Learn on the UF1, with nothing to maintain twice. A plug-in you already mapped for
the UC1 is already mapped on the UF1: leave the map's UF1 layer off and the UF1 fills
itself from the UC1 assignments. Turn the layer on only when the UF1 should differ, then
Fill from UC1 to start from the UC1 mapping, or Fill: Replace / Append from the
plug-in's parameters. (One warning: an empty UF1 layer is authoritative, and clearing it
leaves the UF1 empty rather than handing it back to the UC1 fill. Untick UF1 layer to go
back to inheriting.)
Beyond that: its own explicit map next to the UC1's, click-and-turn learning,
Touch-to-Learn, per-page grids, layer actions (Fill Replace / Append / From UC1 / Unbind
all), soft-key push cycles and knob-travel curves. The Learn-HUD has a UF1 tab that follows
the hardware page. Maps can be sent to the UC1 and back.
The SOFT key above the fader display: name it yourself, give it a backlight, and it
pins the shown channel and engages in one press. Defaults to Pin Set.
Extender. The UF1 can act as the 9th strip of the UF8 bank, for tracks and for sends,
either side, behind a setting.
Held-Track and Focus Set scope. Park on a Focus-Set member and scroll the set
independently. The Focus Set scope can be Both, UF1-only or UF8-only.
Plus: per-surface encoder modes, dynamic soft-key banks with long-press paging, a Bus-Comp
gain-reduction readout on the four display soft-key LEDs, Sticky Pot on the above-fader
V-Pot, its own V-Pot speed and Fine factor, and a mode-change banner on screen.
Names
One name per parameter, across UC1, UF8 and UF1. Rename a parameter once and every
surface, HUD and panel agrees.
A user rename of a plug-in wins everywhere. The colour bar, the focused panel and the
Learn-HUD used to show the factory name in places while other surfaces showed the rename.
Longer names. The colour-bar zone holds twelve characters, not the seven it had been
capped at, so the FX-Learn Short User Name, its auto-suggestion and the per-slot Display
label all take twelve now. Existing shorter names are unaffected.
Sends and receives
The colour bar can name the route's source track, as S:<track> or R:<track>, in
send and receive modes where it otherwise has no plug-in to name. Off by default:
Settings, Appearance, Surface display.
Settings
The Device pane was split into Devices, Appearance and Behaviour. At 890
lines and nine sections it had become "everything else". Metering settings that lived in
three places are together; V-Pot and encoder feel is one section.
Search now covers every pane control by control, shows two-line results (the setting,
then where it lives), and no longer tears the window down while you type.
Mapping Exchange
Shared maps carry their UF1 layer, and the browser shows it before you take one.
Fixes
- SEL double-press opens the FX chain, on UF8 and UF1.
- FLIP moves a Sticky-Pot pin onto the fader (UF1 + UF8).
- Renaming a plug-in no longer crashes the catalog mid-frame.
- Our REAPER actions report their state, so bound toggles light their LEDs.
- Gate gain-reduction picks the meter by strip model rather than port order, so two strips
on one channel no longer swap their readouts. - UC1 encoder acceleration was squaring the step; it is out again.
- An FX-Learn label longer than its limit is trimmed instead of blanking the field.
- Linux: built against an older glibc baseline so the extension loads on Debian 12 / MX 23.
Known issues
- A UF8 plug-in-mode fader assigned to an FX parameter does not return to its envelope in
Touch during playback.
Manual install
Download the platform archive from the GitHub release, unpack, and copy
reaper_rea-sixty.<ext> into REAPER's UserPlugins folder. macOS builds are signed and
notarised. Restart REAPER.