Skip to content

Commit

Permalink
Rename more things from realearn to helgobox
Browse files Browse the repository at this point in the history
  • Loading branch information
helgoboss committed Jul 7, 2024
1 parent eaccf58 commit b59a913
Show file tree
Hide file tree
Showing 33 changed files with 2,009 additions and 1,900 deletions.
2 changes: 1 addition & 1 deletion .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ rustflags = ["-Ctarget-feature=+crt-static"]

# This was an attempt to be compatible with older Linux versions (older libc).
# Doesn't work for now because of: https://github.com/rust-lang/rust/issues/78210
# Also see https://github.com/helgoboss/realearn/issues/829 for latest ideas.
# Also see https://github.com/helgoboss/helgobox/issues/829 for latest ideas.
# TODO-medium Try again later. Not urgent.
#[target.aarch64-unknown-linux-gnu]
#rustflags = ["-Ctarget-feature=+crt-static"]
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ That makes the debugged REAPER process itself do the scanning.
Debug symbols are stripped from release builds but stored as build artifact of the GitHub Actions "Create release" workflow.
If you want the symbols for a specific build, proceed as follows:

. Open the https://github.com/helgoboss/realearn/actions?query=workflow%3A%22Create+release%22[list of ReaLearn "Create release" workflows].
. Open the https://github.com/helgoboss/helgobox/actions?query=workflow%3A%22Create+release%22[list of ReaLearn "Create release" workflows].
. Use the branch filter to show all releases builds made for a specific version, e.g. "v1.11.0".
. Click the desired workflow.
** GitHub seems to do a fuzzy search, so if there are pre-releases (e.g. "v1.11.0-pre2"), you will see them, too.
Expand Down
102 changes: 59 additions & 43 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -1,27 +1,36 @@
= ReaLearn
= Helgobox: ReaLearn & Playtime
:toc: preamble
:sectnumlevels: 2

image:https://github.com/helgoboss/realearn/actions/workflows/windows-x86_64.yml/badge.svg[Windows x86_64,link=https://github.com/helgoboss/realearn/actions/workflows/windows-x86_64.yml]
image:https://github.com/helgoboss/realearn/actions/workflows/windows-i686.yml/badge.svg[Windows i686,link=https://github.com/helgoboss/realearn/actions/workflows/windows-i686.yml]
image:https://github.com/helgoboss/realearn/actions/workflows/macos-x86_64.yml/badge.svg[macOS x86_64,link=https://github.com/helgoboss/realearn/actions/workflows/macos-x86_64.yml]
image:https://github.com/helgoboss/realearn/actions/workflows/macos-aarch64.yml/badge.svg[macOS aarch64,link=https://github.com/helgoboss/realearn/actions/workflows/macos-aarch64.yml]
image:https://github.com/helgoboss/realearn/actions/workflows/linux-x86_64.yml/badge.svg[Linux x86_64,link=https://github.com/helgoboss/realearn/actions/workflows/linux-x86_64.yml]
image:https://github.com/helgoboss/realearn/actions/workflows/linux-aarch64.yml/badge.svg[Linux aarch64,link=https://github.com/helgoboss/realearn/actions/workflows/linux-aarch64.yml]
image:https://github.com/helgoboss/realearn/actions/workflows/linux-armv7.yml/badge.svg[Linux armv7,link=https://github.com/helgoboss/realearn/actions/workflows/linux-armv7.yml]
image:https://github.com/helgoboss/helgobox/actions/workflows/windows-x86_64.yml/badge.svg[Windows x86_64,link=https://github.com/helgoboss/helgobox/actions/workflows/windows-x86_64.yml]
image:https://github.com/helgoboss/helgobox/actions/workflows/windows-i686.yml/badge.svg[Windows i686,link=https://github.com/helgoboss/helgobox/actions/workflows/windows-i686.yml]
image:https://github.com/helgoboss/helgobox/actions/workflows/macos-x86_64.yml/badge.svg[macOS x86_64,link=https://github.com/helgoboss/helgobox/actions/workflows/macos-x86_64.yml]
image:https://github.com/helgoboss/helgobox/actions/workflows/macos-aarch64.yml/badge.svg[macOS aarch64,link=https://github.com/helgoboss/helgobox/actions/workflows/macos-aarch64.yml]
image:https://github.com/helgoboss/helgobox/actions/workflows/linux-x86_64.yml/badge.svg[Linux x86_64,link=https://github.com/helgoboss/helgobox/actions/workflows/linux-x86_64.yml]
image:https://github.com/helgoboss/helgobox/actions/workflows/linux-aarch64.yml/badge.svg[Linux aarch64,link=https://github.com/helgoboss/helgobox/actions/workflows/linux-aarch64.yml]
image:https://github.com/helgoboss/helgobox/actions/workflows/linux-armv7.yml/badge.svg[Linux armv7,link=https://github.com/helgoboss/helgobox/actions/workflows/linux-armv7.yml]
image:https://img.shields.io/badge/license-GPL-blue.svg[GitHub license,link=https://raw.githubusercontent.com/helgoboss/realearn/master/LICENSE]
image:https://img.shields.io/badge/Donate-PayPal-orange.svg[Donate,link=https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9CTAK2KKA8Z2S&source=url]

Sophisticated https://www.reaper.fm/[REAPER] MIDI/MCU/OSC-learn VST instrument plug-in for controlling REAPER with feedback.
Helgobox is a suite that unites multiple creative link:https://www.reaper.fm[REAPER] tools under one roof.
It currently contains link:https://www.helgoboss.org/projects/realearn[ReaLearn] (a versatile controller integration tool) and
link:https://www.helgoboss.org/projects/playtime[Playtime] (a modern session view).

== Installation

The easiest and preferred way of installing ReaLearn is via https://reapack.com/[ReaPack], a
sort of "app store" for REAPER. It allows you to keep your installation of ReaLearn up-to-date very easily.
Helgobox is provided as https://reapack.com/[ReaPack] package, which is great because it allows you to keep your installation up-to-date very easily.

=== Install for the first time

If you previously installed ReaLearn manually, please uninstall it first!
There are two ways to carry out the initial installation.

==== Install automatically via ReaBoot

The easiest way to install Helgobox is via the following ReaBoot link: link:https://reaboot.com/install/https%3A%2F%2Fraw.githubusercontent.com%2Fhelgoboss%2Fhelgobox%2Fmaster%2Freaboot.json[Install Helgobox]

==== Install manually via ReaPack

As an alternative, you can install Helgobox via ReaPack directly:

. Install https://reapack.com/[ReaPack] if not done so already
. Extensions → ReaPack → Import repositories…
Expand All @@ -30,31 +39,40 @@ If you previously installed ReaLearn manually, please uninstall it first!
https://github.com/helgoboss/reaper-packages/raw/master/index.xml
+
. Extensions → ReaPack → Browse packages…
. Search for `realearn`
. Right mouse click on the ReaLearn package → Install…
. Search for `helgobox`
. Right mouse click on the Helgobox package → Install…
. OK or Apply
. Restart REAPER

**Linux users only:**
==== Install manually without ReaPack

- You also need `libxdo` installed, otherwise ReaLearn won't scan.
- Debian/Ubuntu: `sudo apt-get install -y libxdo-dev`
If you are more the download type of person, you can find the latest `dll`, `dylib` and `so` files here at GitHub on the https://github.com/helgoboss/helgobox/releases[releases page] for manual installation.

You also must install Helgobox manually if you plan to use it in both REAPER for Windows 32-bit and REAPER for Windows 64-bit because then it's important to use two separate VST plug-in directories.

*Please note that it's impossible to run Helgobox as a bridged plug-in.* If you have "Preferences → Plug-ins → Compatibility → VST bridging/firewalling" set to "In separate plug-in process" or "In dedicated process per plug-in", you will need to add an exception for Helgobox by setting "Run as" to "Native only"!

=== Update to the latest stable version

ReaLearn development moves fast. In order to take advantage of new features, improvements and fixes, you should check for updates from time to time.
Helgobox development moves fast.
In order to take advantage of new features, improvements and fixes, you should check for updates from time to time.

. Extensions → ReaPack → Synchronize packages
** It will tell you if a new version has been installed.
. Restart REAPER

=== Important note for Linux users

- You also need `libxdo` installed, otherwise ReaLearn won't scan.
- Debian/Ubuntu: `sudo apt-get install -y libxdo-dev`

=== Test new features and improvements

If you want to get access to cutting-edge but untested versions of ReaLearn, you have two options:
If you want to get access to cutting-edge but untested versions of Helgobox, you have two options:

Install a specific pre-release:

. Right mouse click on the ReaLearn package → Versions
. Right mouse click on the Helgobox package → Versions
. Select any version ending on `-pre.*` or `-rc.*`
. OK or Apply
. Restart REAPER
Expand All @@ -64,58 +82,56 @@ Enable pre-releases globally:
. Extensions → ReaPack → Manage repositories → Options… → Enable pre-releases globally (bleeding edge)
. After that, whenever you synchronize packages, you will get the latest stuff.

=== Install manually

If you are more the download type of person, you can find the latest `dll`, `dylib` and `so` files here at
GitHub on the https://github.com/helgoboss/realearn/releases[releases page] for manual installation.
You also must install ReaLearn manually if you plan to use ReaLearn in both REAPER for Windows 32-bit
and REAPER for Windows 64-bit because then it's important to use two separate VST plug-in directories.

*Please note that it's impossible to run ReaLearn as a bridged plug-in.* If you have
"Preferences → Plug-ins → Compatibility → VST bridging/firewalling" set to "In separate plug-in process" or
"In dedicated process per plug-in", you will need to add an exception for ReaLearn by setting "Run as" to
"Native only"!

== Usage

=== Quick start

ReaLearn is fired up just like any other VST instrument in REAPER: By adding it to an FX chain.
Helgobox is fired up just like any other VST instrument in REAPER: By adding it to an FX chain.

Initially, you see the Helgobox plug-in, which mainly provides the ReaLearn user interface:

.Main panel (containing the list of mappings)
image::doc/images/screenshot-main-panel-annotated.svg[]

.Mapping panel (for editing one particular mapping)
image::doc/images/screenshot-mapping-panel.png[]

But there's also the Helgobox app, which mainly provides the Playtime user interface.
You can open it either from the plug-in's menu or by using the convenient "Playtime" button in the main toolbar.

[#videos]
=== Videos

==== ReaLearn

link:https://www.youtube.com/watch?v=4ySGt9Ejc-M&list=PL0bFMT0iEtAgKY2BUSyjEO1I4s20lZa5G&index=1[The ReaLearn Tutorials] is a fairly new ongoing series of short video tutorials available.

There's also a long https://www.youtube.com/watch?v=dUPyqYaIkYA[introduction video] from 2021. Watch 2 minutes to get a first
impression and stay tuned if you are interested in the details.
There's also a long https://www.youtube.com/watch?v=dUPyqYaIkYA[introduction video] from 2021. Watch 2 minutes to get a first impression and stay tuned if you are interested in the details.

=== User guide

ReaLearn features a large and complete user guide.
==== ReaLearn

- https://github.com/helgoboss/realearn/blob/master/doc/realearn-user-guide.adoc[Read it right here on GitHub] (preferred, best readability)
- https://github.com/helgoboss/realearn/releases/latest/download/realearn-user-guide.pdf[Download user guide as PDF file]
ReaLearn features a large and complete user guide.

TIP: The main focus of ReaLearn's user guide is being comprehensive, so it's more like a reference manual and can get quite detailed and technical. If you prefer a simple hands-on approach, the <<videos,tutorial videos>> are a better choice.
- https://github.com/helgoboss/helgobox/blob/master/doc/realearn-user-guide.adoc[Read it right here on GitHub] (preferred, best readability)
- https://github.com/helgoboss/helgobox/releases/latest/download/realearn-user-guide.pdf[Download user guide as PDF file]

TIP: The main focus of ReaLearn's user guide is being comprehensive, so it's more like a reference manual and can get quite detailed and technical.
If you prefer a simple hands-on approach, the <<videos,tutorial videos>> are a better choice.

=== Supported controllers

ReaLearn is designed to be generic and support any controller. That's why you won't find a definitive list of supported controllers! But there's a link:doc/controllers.adoc[list of tested controllers].
ReaLearn is designed to be generic and support any controller.
That's why you won't find a definitive list of supported controllers!
But there's a link:doc/controllers.adoc[list of tested controllers].

TIP: Keep in mind: Even if your controller is not on the list, you probably can make it work with ReaLearn!

=== Available presets

- link:https://github.com/helgoboss/realearn/tree/master/resources/controller-presets[Controller presets]
- link:https://github.com/helgoboss/realearn/tree/master/resources/main-presets[Main presets]
- link:https://github.com/helgoboss/helgobox/tree/master/resources/controller-presets[Controller presets]
- link:https://github.com/helgoboss/helgobox/tree/master/resources/main-presets[Main presets]

== Architecture

Expand All @@ -129,6 +145,6 @@ See link:CONTRIBUTING.adoc[contributing documentation].

* https://www.helgoboss.org/projects/realearn/[Website]
* http://forum.cockos.com/showthread.php?t=178015[Forum] (dedicated thread in REAPER forum)
* https://github.com/helgoboss/realearn/issues[Issue tracker]
* https://github.com/helgoboss/helgobox/issues[Issue tracker]
* https://bitbucket.org/helgoboss/realearn/issues[Old issue tracker] (for ReaLearn &lt; v1.10.0)
* https://github.com/helgoboss/realearn-companion[ReaLearn Companion app]
6 changes: 3 additions & 3 deletions base/src/global.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ impl Default for Global {
// thread (which we use quite often in order to schedule/spawn something on the main
// thread) and the channel is full, we will get a deadlock! It's okay that they allocate
// on sending because `Global` can't be used from a real-time thread.
// See https://github.com/helgoboss/realearn/issues/875.
// See https://github.com/helgoboss/helgobox/issues/875.
let (task_sender, task_receiver) = crossbeam_channel::unbounded();
let (send_future_spawner, send_future_executor) =
reaper_high::run_loop_executor::new_spawner_and_executor(
Expand Down Expand Up @@ -74,7 +74,7 @@ impl Global {
/// Allows you to schedule tasks for execution on the main thread from anywhere.
///
/// Important: Don't use this to schedule tasks from a real-time thread! This is backed by an
/// unbounded channel now because of https://github.com/helgoboss/realearn/issues/875, so
/// unbounded channel now because of https://github.com/helgoboss/helgobox/issues/875, so
/// sending can allocate!
pub fn task_support() -> &'static TaskSupport {
&Global::get().task_support
Expand All @@ -83,7 +83,7 @@ impl Global {
/// Allows you to spawn futures from anywhere.
///
/// Important: Don't use this to spawn futures from a real-time thread! This is backed by an
/// unbounded channel now because of https://github.com/helgoboss/realearn/issues/875, so
/// unbounded channel now because of https://github.com/helgoboss/helgobox/issues/875, so
/// sending can allocate!
pub fn future_support() -> &'static FutureSupport {
&Global::get().future_support
Expand Down
Loading

0 comments on commit b59a913

Please sign in to comment.