Show HN: Macros with a Behringer FCB1010 MIDI Pedalboard in macOS
Give your feet a job: fcbnerd is a macOS command-line tool that lets you use MIDI pedalboards as a powerful, customizable macro controller. It's a clever hack for developers and power users to automate tasks and interact with their system through foot-switches. This 'Show HN' is popular for its technical ingenuity and practical application of music hardware to computing.
The Lowdown
fcbnerd is a command-line utility designed for macOS that transforms MIDI foot controllers, such as the Behringer FCB1010, into highly customizable macro keyboards. It allows users to execute shell commands or stream MIDI events as JSON, providing a unique and accessible method for system automation.
- Core Functionality: The tool connects to any CoreMIDI source and interprets messages from footswitches or expression pedals. It can either execute a bound shell command directly or output a JSON stream for external programs to process.
- Design Philosophy:
fcbnerdis intentionally a command-line tool, sidestepping macOS sandbox restrictions that would limit a GUI application's ability to run system-level scripts and actions. It offloads command execution to the user's shell or existing automation tools like Hammerspoon or Keyboard Maestro. - Installation & Usage: Easily installed via Homebrew,
fcbnerdoffers modes to listen for MIDI events, list available sources, or simulate a virtual pedalboard for development. - Command Binding: Users can define bindings where specific MIDI patterns trigger shell commands. This includes handling control changes (CC) and program changes (PC), with wildcards for flexible matching (e.g., for expression pedal sweeps).
- Advanced Features: Commands run in the background, receiving relevant MIDI data as environment variables.
fcbnerdintelligently manages command execution for rapid input sequences like pedal sweeps to prevent system overload, ensuring that only one instance of a bound command runs per control at a time. - Output Formats: MIDI events can be outputted as human-readable text or structured JSON, including detailed information like event type, channel, controller, value, and source.
- FCB1010 Specifics: The documentation highlights common nuances of the Behringer FCB1010, such as its press-only output (no "release" signal) and non-linear expression pedal ranges, guiding users on how to address these in their custom configurations.
In essence, fcbnerd provides a robust, developer-friendly bridge between physical MIDI foot controllers and macOS system automation, opening up new possibilities for hands-free control and custom workflows.