jamulussoftware / jamulussoftware/jamulus
Add Plug-in Support: Proposal for CLAP Support
- 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
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