Skip to content

Add Jamulus support #411

Open
Open
@jwoillez

Description

@jwoillez

I promised a long time ago to share my Jamulus (https://jamulus.io) setup for Zynthian.
Jamulus let you play with others across the internet. Configure your server in the web interface, plug your instrument, check your ADC levels, start Jamulus from the admin menu, and you are good to go.
Use the Jamulus software one your computer (muted and with headsets) to check that the connection goes through properly.

At the moment, one has to install_jamulus.sh by hand, with the provided recipe. I haven'f found how to make this step automatic.

Note that Jack needs to be configured for 48kHz operation (Jackd option: -r 48000), this is a requirement of the OPUS audio codec used by Jamulus. Also, a slightly lower latency setting is recommended (Jackd option: -p 128).

To try it out:

  1. Configure zynthian-sys, zynthian-ui, zynthian-webconf to use my jwoillez/jamulus branch.
  2. Install Jamulus with /zynthian/zynthian-sys/scripts/recipes/install_jamulus.sh.
  3. Run a local Jamulus server on one of your computers, note its IP address.
  4. In Hardware > Audio > Jamulus Options, replace your_favorite_jamulus_address by the IP address of your server.
  5. Start Jamulus from the Admin menu of your Zynthian.
  6. You should be connected, you can check that this is the case on your server GUI.

See the following three PRs:

Suggestions:

  • Add better name when connecting to client.
  • Include Jamulus install script in /zynthian/zynthian-sys/scripts/recipes.update.buster/00_install_packages.sh
  • Use autorouter rather than Jamulus's auto-connect.
  • Use a shorter client name.
  • Relocated configuration file to .config/Jamulus/Jamulus.ini
  • Have the client name track changes. (Might be nice to pass the name as an option, and drop the ini)
  • Compile with GUI
  • Show GUI if VNC running
  • Investigate MIDI control (--ctrlmidich)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Blocked

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions