[Development] Playground Request: ClapInterface

Volker Hilsheimer volker.hilsheimer at qt.io
Wed Apr 3 15:06:41 CEST 2024


Looks good, go ahead with creating the JIRA ticket in QTQAINFRA as per https://wiki.qt.io/Requesting_New_Repositories

Cheers,
Volker


> On 22 Mar 2024, at 11:10, Dennis Oberst via Development <development at qt-project.org> wrote:
> 
> Hello,
> 
> After some further thought and discussion, I have arrived at the following:
> 
> Project name: qtcleveraudioplugin
> Description: "Qt Integration with the CLever Audio Plugin standard"
> Namespace: QtClap
> Responsible persons: Dennis Oberst
> 
> I will not import existing history.
> 
> If there are any opinions or questions, please speak up.
> 
> best,
> 
> Dennis
> 
> ________________________
> Dennis Oberst
> Software Engineer
> 
> The Qt Company GmbH
> Erich-Thilo-Str. 10
> 12489 Berlin, Germany
> dennis.oberst at qt.io
> https://www.qt.io
> 
> Geschäftsführer: Mika Pälsi,
> Juha Varelius, Jouni Lintunen
> Sitz der Gesellschaft: Berlin,
> Registergericht: Amtsgericht
> Charlottenburg, HRB 144331 B
> 
> From: Development <development-bounces at qt-project.org> on behalf of Dennis Oberst via Development <development at qt-project.org>
> Sent: Tuesday, March 19, 2024 12:12 PM
> To: Jean-Michaël Celerier <jeanmichael.celerier at gmail.com>; Volker Hilsheimer <volker.hilsheimer at qt.io>
> Cc: development at qt-project.org <development at qt-project.org>
> Subject: Re: [Development] Playground Request: ClapInterface
>  Hey,
> 
> Indeed, there is some ambiguity involved with "CLAP". There is also the Rust crate "clap", which is a CLI parsing tool (https://github.com/clap-rs/clap). However, I would expect that any interested soul would read the README or docs where we would resolve the whole ambiguity. Also the word wouldn't be there on it's own as it would be a part of the namespace that we apply to the contained classes, e.g.: QClapNote, QClapParameter.
> 
> I agree with you, Volker, that 'Interface' is not accurate. What would be more fitting is the name 'Client,' since it's the client-side implementation of the gRPC API provided by clap-rci. Note that 'rci' stands for 'Remote Control Interface'. I'm not a fan of spelling it out since it will become too lengthy in code: QCleverAudioPluginClient or QCleverAudioPluginInterface. What about:
> 
>     Project name: qtclapclient
>     Description: "Qt Integration with the CLever Audio Plugin standard"
>     Namespace: QClap
> 
> In its current (naive) form, it consists of:
> 
> - ClapControls: specialized and new controls (Dials, NoteKeys) that are typically required for building audio plugins.
> - ClapInterface: communication with the server-side through QtGrpc.
> 
> So we would have the QClapControls (or perhaps later QClapQuick) and QClapClient.
> 
> As pointed out by Jean-Michaël:
> 
> > (It's) a recurrent topic in audio conferences and circles.
> 
> It's establishing itself in the audio-industry and is currently a hot topic running under the name 'clap'. Any deviation would generate confusion. We could think about a more general name like "qtaudioplugin", since CLAP also provides wrappers to many other audio plugin formats (VST3, AU ...) but I'm not sure I like that. Given that it's part of a prefix here it appears to be fine for me.
> 
> Best,
> 
> Dennis
> 
> ________________________
> Dennis Oberst
> Software Engineer
> 
> The Qt Company GmbH
> Erich-Thilo-Str. 10
> 12489 Berlin, Germany
> dennis.oberst at qt.io
> https://www.qt.io
> 
> Geschäftsführer: Mika Pälsi,
> Juha Varelius, Jouni Lintunen
> Sitz der Gesellschaft: Berlin,
> Registergericht: Amtsgericht
> Charlottenburg, HRB 144331 B
> 
> From: Jean-Michaël Celerier <jeanmichael.celerier at gmail.com>
> Sent: Monday, March 18, 2024 9:44 PM
> To: Volker Hilsheimer <volker.hilsheimer at qt.io>
> Cc: Dennis Oberst <dennis.oberst at qt.io>; development at qt-project.org <development at qt-project.org>
> Subject: Re: [Development] Playground Request: ClapInterface
>  You don't often get email from jeanmichael.celerier at gmail.com. Learn why this is important
> As someone involved in the audio ecosystem, the Clap plug-in API is quickly becoming an industry standard, 
> is now supported by multiple digital audio workstation software (Reaper, Bitwig, qtractor) and a recurrent topic in audio conferences and circles.
> It has its own wikipedia page: https://en.wikipedia.org/wiki/CLever_Audio_Plug-in
> 
> - 12 pages of products using CLAP on KVR: https://www.kvraudio.com/plugins/the-newest-plugins/clap-plugins - https://github.com/free-audio/clap
> - https://u-he.com/community/clap/
> - https://lwn.net/Articles/893048/
> - https://www.sweetwater.com/insync/clap-the-new-clever-audio-plug-in-format/
> - https://www.martinic.com/en/blog/clap-audio-plugin-format
> - https://bedroomproducersblog.com/2022/08/29/clap-plugin-format/
> 
> 
> Never heard of the other one.
> 
> On Mon, Mar 18, 2024 at 12:11 PM Volker Hilsheimer via Development <development at qt-project.org> wrote:
> > On 18 Mar 2024, at 12:27, Dennis Oberst via Development <development at qt-project.org> wrote:
> > 
> > Hello all,
> > 
> > I'd like to request a new playground repository to continue the development of the "Clap Interface," a client-side library that uses QtGrpc to provide integration with the CLAP audio plugin standard, ultimately allowing to build audio plugins with Qt user interfaces.
> > 
> > Description: Qt interface for the CLAP audio-plugin standard
> > Project name: qtclapinterface
> > 
> > The Clap Interface emerged from the research concluded in my thesis, which you can find and read here. As its counterpart, there is the 'clap-rci' library, which provides the server-side integration. I won't go into too much detail, but it works through headless audio processing and remote GUIs to achieve integration with Qt. You can find it here.
> > 
> > Given the time constraint of 6 months for writing 2 libraries and a thesis, they have some rough edges. Nevertheless, they proved my point: Qt integration with audio plugins is possible! I'm currently in the process of rewriting those libraries in my free time, but I would still like to have this version openly available.
> > 
> > Suggestions/Opinions/Ideas, I take them all.
> > 
> > best,
> > 
> > Dennis
> 
> Hey Dennis,
> 
> Nice, seems like a cool use case of gRPC for building out-of-process plugins!
> 
> My knee-jerk reaction is that it might be a good idea to spell this out as QCleverAudioInterface, because 
> 
> https://github.com/LAION-AI/CLAP
> 
> which, while also “something audio”, is completely not related, so perhaps better to be verbose.
> 
> And I’m not entirely sure that “Interface” is the right word... since it seems to be more an integration or bridge, perhaps?
> 
> Volker
> 
> -- 
> Development mailing list
> Development at qt-project.org
> https://lists.qt-project.org/listinfo/development
> -- 
> Development mailing list
> Development at qt-project.org
> https://lists.qt-project.org/listinfo/development




More information about the Development mailing list