jamulussoftware / jamulussoftware/jamulus

Add Plug-in Support: Proposal for CLAP Support

Open
#3,405 3 comments 3 reactions 0 assignees View on GitHub
feature request
Dominant language
C
Stars
1.1k
Forks
248
Avg merge
2d 3h
Merged PRs (30d)
9

Description

**What is the current behaviour and why should it be changed?**

Currently there is no ability for the Jamulus user to add audio processing, other than the built-in Reverb in the client and Jam Recorder in the server. There are several other proposals to extend audio processing, including additional effects and Jam Streaming.

So there is a choice of whether each of these feature should be added and maintained inside Jamulus, duplicating functionality available elsewhere or whether to adopt a means of adding these features to Jamulus on a plug-in basis.

**Describe possible approaches**

A number of plug-in APIs are available. However, many are either platform-specific or have restrictive licences.

The proposal here is to adopt CLAP both on the Client and the Server so that features can be added:
* In the Client
* To audio input prior to sending to the server
* To audio received from the server before output
* In the Server
* To receive a pre-mixer stream from each connected client during a session (opening the server's configured max clients stereo pairs)
* To receive a post-mixer single stereo pair (potentially increasing the number of stereo pairs by one)

https://cleveraudio.org/developers-getting-started/
https://github.com/free-audio/clap-host?tab=readme-ov-file#minimal-clap-host

**Has this feature been discussed and generally agreed?**

See https://github.com/orgs/jamulussoftware/discussions/3382#discussioncomment-10743921

Contributor guide

Open the contributing guide

Research direction

No source files or tests are named. Start by reviewing the linked CLAP getting-started and minimal-host documentation, then read the linked discussion to understand the prior agreement. Done would require an agreed implementation scope for client and server plug-in processing before coding can begin.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
audio-video-rtc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.