Skip to content

Integration branch of: Switch all Jamulus audio sample processing to use floats instead of a mix of double and int16_t#627

Merged
corrados merged 26 commits intomasterfrom
integrate_float
Oct 4, 2020
Merged

Integration branch of: Switch all Jamulus audio sample processing to use floats instead of a mix of double and int16_t#627
corrados merged 26 commits intomasterfrom
integrate_float

Conversation

@corrados
Copy link
Copy Markdown
Contributor

This is basically the pull request for the floating point support from hselasky. I did:

  • code style changes
  • replaced old casts by static_cast
  • variable renaming
  • fixed the clipping indicator
  • fixed compilation problems

TODO is still the testing on all platforms.

This is work in progress and the Pull Request will most probably updated with new commits in the near future.

Feel free to review the code. If you have time to test the new code, please tell us your test results (audio quality, stability, are all existing features work as they did before the change, etc.).

hselasky and others added 11 commits September 25, 2020 21:13
a mix of double and int16_t .

MacOS, Linux and Android already do this, and ASIO also supports it.
Change recording format to be 24-bit WAV, to get the full precision
of the mixed audio!

This patch gives the user the full resolution of the audio device,
both when receiving audio and transmitting audio.

Cleanup LSB/MSB sample processing in ASIO driver while at it.
LSB and MSB indicate little-endian and big-endian data format
presumably.

Signed-off-by: Hans Petter Selasky <hps@selasky.org>
Switch all Jamulus audio sample processing to use floats instead of a mix of double and int16_t
@corrados
Copy link
Copy Markdown
Contributor Author

I think the recording should be tested since there were also changes needed in that module.

@pljones
Copy link
Copy Markdown
Collaborator

pljones commented Sep 26, 2020

I think the recording should be tested since there were also changes needed in that module.

I want to get the Mutex changes tested first. Didn't have much happening tonight, so I'd like to wait further trials.

@corrados
Copy link
Copy Markdown
Contributor Author

Wow, there are so many things which do not work as expected anymore with the float code... I think it will take quite some time until we can finally merge that code to the master. I'm just in progress of fixing the level meter.

Comment thread windows/sound.cpp
}
};

// Might want to comment that use of double in factors below avoids nasty conversion surprises.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could also mention that FACTOR32 and FACTOR24 are the same because...

@corrados corrados merged commit 98eaed7 into master Oct 4, 2020
@corrados
Copy link
Copy Markdown
Contributor Author

corrados commented Oct 4, 2020

@pljones I have just merged the code to the master. hselasky has changed your jam recorder to record in 24 bit instead of the previous 16 bit resolution. Can you please check if the new code still works ok?

Since the jam recorder already creates very large files, with 24 bit the amount will even be higher now. If it is too much data, we could consider going back to 16 bit. But this is your decision (since I do not use the jam recorder).

@corrados corrados deleted the integrate_float branch October 4, 2020 18:55
@corrados
Copy link
Copy Markdown
Contributor Author

corrados commented Oct 4, 2020

@pljones The Windows audio interface is not working correctly so I had to hard reset the master to a previous commit and therefore undo the merge to master. So if you want to test, you could do it on the new branch: #660

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

Successfully merging this pull request may close these issues.

4 participants