Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch all audio sample processing to use floats instead of a mix of double and int16_t #544

Closed
corrados opened this issue Aug 26, 2020 · 5 comments

Comments

@corrados
Copy link
Contributor

Currently, we use 16 bit fixed point for the audio data. The mixing is done in double-precision.

If an audio card with 24 bit depth is used, 8 bits are not used by Jamulus. To improve the audio quality for very low signal levels and if the Jamulus user has an audio card supporting more than 16 bits, it makes sense to use floating point calculations for the audio signal processing.

The downside is that the processing time increases. On a Raspberry Pi Zero we get about 1 % higher CPU load.

Also, the well-tested and stable Windows ASIO interface must be significantly modified which is a stability risk for the Jamulus software.

It has to be checked that all other features work correctly after the change (e.g., the clipping indicator).

There is already a patch available which is currently reviewed and tested: #535

@pljones
Copy link
Collaborator

pljones commented Sep 13, 2020

There's a script in tools that would probably be affected, too (tools/jamulus-jamexporter/src/bash/recover-recording.sh).

@drummer1154
Copy link

Currently, we use 16 bit fixed point for the audio data. The mixing is done in double-precision.

Just for correctness: I think int16_t is 16 bit integer, not fixed point, right?

@gilgongo
Copy link
Member

Is done now?

@corrados
Copy link
Contributor Author

No, this is still open. The question is if we really need this in Jamulus. My opinion is that we should keep the current implementation.

@corrados
Copy link
Contributor Author

corrados commented Jan 3, 2021

I still don't see a need for this for Jamulus. HPS has created his own online jam software HPSJam and uses all float there. So I'll close this issue now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants