Expert C++ / JUCE Audio Developer for Background MIDI Routing Daemon (macOS & Windows)

Posted 3 days ago

Worldwide

Summary

Project Overview: We are developing a companion application for a new physical hardware MIDI processor. The goal of this software is to act as an "Invisible Bridge." It must intercept raw MIDI from a user's physical keyboard, route it through our custom hardware via USB for processing, and pass the processed notes to the user's DAW (Logic, Pro Tools, Ableton) via an OS-level "Virtual Port." Core Responsibilities & Scope: 1. Background Routing Engine (Zero-Latency) Build a headless background daemon (no active window in the dock/taskbar). Continuously scan for and hot-swap our specific USB hardware device via VID/PID. Route MIDI IN from the keyboard - OUT to the hardware - IN from the hardware - OUT to the Virtual Port. Critical: Must be built on a high-priority, real-time thread using strict lock-free audio programming. Anti-Hang Logic: If the hardware is disconnected, the app must instantly broadcast MIDI 'All Notes Off' (CC 123) and 'Sustain Pedal Off' (CC 64) to the Virtual Port to prevent frozen notes in the DAW. 2. Virtual Port Generation macOS: Use native CoreMIDI to spawn a globally broadcasted virtual output port. Windows: Integrate a reliable third-party kernel driver (e.g., teVirtualMIDI) or modern WinRT APIs to create an identical globally visible virtual port. 3. App-to-App Handshake (Lightweight IPC) Windows strictly locks USB MIDI ports. Our client has a separate "Config App" that users will occasionally open. You must build a lightweight IPC channel (e.g., Local UDP socket or Named Pipe). When the Config App is opened, it will send a 1-byte "Ping". Your daemon must instantly release the USB connection (and fire 'All Notes Off') so the Config App can use the hardware. When closed, your daemon must automatically reclaim the port and resume routing. 4. Minimal UI (System Tray/Menu Bar) Build a lightweight native icon for the Mac Menu Bar and Windows System Tray. Include a dropdown menu with: Input Device Selector (MUST include an "Omni/All Inputs" option), Connection Status, a Manual "Pause Routing" toggle, and a "Launch on Startup" toggle. Handle initial macOS Security/Privacy permission prompts. 5. Installers & Code Signing Package the software into professional .dmg (Mac) and .exe (Windows) installers. The Windows installer must silently bundle the third-party virtual MIDI driver redistributables. Handle strict OS Code Signing (Apple Notarization and Windows EV Code Signing) to prevent malware warnings. 6. QA & Edge-Case Testing Test for zero-latency playback across Logic Pro, Pro Tools, Ableton, and Cubase. Handle extreme edge cases gracefully (e.g., yanking the USB cable mid-chord, sleep/wake OS states, and IPC handshake stress testing). Required Tech Stack / Skills: C++17 / JUCE Framework (Expert level) macOS CoreMIDI APIs Windows Virtual MIDI driver integration (teVirtualMIDI / WinRT) Inter-Process Communication (IPC) Experience with Apple Notarization and Windows Code Signing To Apply: Please provide examples of previous audio or MIDI software you have built (plugins, DAWs, standalone audio apps). IMPORTANT: At the very top of your proposal, please answer the following question: "macOS has native support for creating Virtual MIDI ports, but Windows does not. How do you specifically plan to create and broadcast the Virtual MIDI port on Windows?"

  • $850.00

    Fixed-price
  • Expert
    Experience Level
  • Remote Job
  • One-time project
    Project Type

Contract-to-hire opportunity

This lets talent know that this job could become full time.
Learn more
Skills and Expertise
Mandatory skills
C++
Desktop Application
Activity on this job
  • Proposals:5 to 10
  • Last viewed by client:3 days ago
  • Interviewing:
    8
  • Invites sent:
    31
  • Unanswered invites:
    7
About the client
Member since Jan 10, 2026
  • IND
    Indore11:56 AM
  • $2.8K total spent
    3 hires, 3 active
  • Tech & IT
    Individual client

Explore similar jobs on Upwork

Some correction in tradtron codingFixed-price‐ Posted 4 weeks ago
Strategy
Develop Swing-Trading SystemFixed-price‐ Posted 4 weeks ago
MySQL
JavaScript
PHP
HTML5
Forex Trading
Python
C++
Algorithm Development

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers earned on Upwork in 2020

Find the best freelance jobs

Growing your career is as easy as creating a free profile and finding work like this that fits your skills.

Trusted by

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo