godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.92k stars 21.15k forks source link

Add Jack audio I/O support #24274

Closed wargreen closed 4 years ago

wargreen commented 5 years ago

Hi devs, I look to use Godot for artistic audio and video/3d things, and it can it a big benefit to directly play audio from godot and process it after via jack and other softwares. Is it a way to enable the jack part of rtaudio ? This can permit to get multiple independents audio buses at low latency for professional usages.

Thanks a lot for any information.

wargreen commented 5 years ago

A first step here https://github.com/jpcima/godot/tree/rtaudio-jack

akien-mga commented 5 years ago

Edited the title as we likely won't be using RtAudio for that, but implementing a proper driver as done for MIDI drivers. Then it should also be done for all supported platforms (at least desktop ones).

wargreen commented 5 years ago

Why don't use RtAudio, as it already support Jack ? (it's really a question :)

unfa commented 4 years ago

I would absolutely love a JACK audio support, as I could use Godot to create a realtime interface for my livestreams using it.

Calinou commented 4 years ago

@unfa Please don't bump issues without contributing significant new information; use the :+1: reaction button on the first post instead.

unfa commented 4 years ago

Ok, sorry! I wonder if this is somewhere on the radar still?

jpcima commented 4 years ago

Hi, I'm the author of the RtAudio+Jack edit posted above, made a long time ago on a request of @wargreen.

As I guess, it shouldn't be difficult to make a pure Jack backend, given existing code made with RtAudio, given that both are programmed in a similar model. I can give this a try. I've some decent experience with Jack audio dev, however none with Godot.

jpcima commented 4 years ago

Implemented JACK in the PR #35613

Feel free to try yourself. It has worked for me, I tried on "Platformer 3D" and "Mic Record Demo".

clayjohn commented 4 years ago

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.

The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.

If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!

jpcima commented 4 years ago

@wargreen, @unfa, do either of you mind to open the GIP? I'm not able to answer such questions as "Describe the project you are working on" or further details, because I don't have any; but I'm sure that the both of you surely do.

wargreen commented 4 years ago

@jpcima Done