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

Add new sampler device #75

Open
8 tasks
yupferris opened this issue Jul 23, 2021 · 0 comments
Open
8 tasks

Add new sampler device #75

yupferris opened this issue Jul 23, 2021 · 0 comments

Comments

@yupferris
Copy link
Member

yupferris commented Jul 23, 2021

I developed pulsejet specifically to replace our usage of GSM06.10 here (and because it was really fun!), however, I never actually did the integration work, and I keep forgetting to with other projects/life stuff happening lately. Thus, this tracking issue.

I don't think we really need to reinvent the wheel and deep-dive into better resampling strategies than we use currently in Specimen (we could consider that for future versions, for example), so the work to be done is roughly as follows:

  • Fork Specimen (perhaps even just call it "Specimen 2")
  • Replace usage of GsmSample with something pulsejet-related
  • Add a target bitrate parameter/knob (and ideally a matching display) to control codec quality
  • Make sure we store both the uncompressed sample data as well as the compressed sample data in the device chunk so that we can re-encode as the quality parameter changes (only in the VST ofc; at runtime we should assume this is static)
  • As the pulsejet encoder/decoder are fairly slow (the encoder may be improved in future versions but the decoder is unlikely to change in this area unless we need really long samples or something), at least encoding should ideally happen on a separate thread, but this may not be entirely necessary.
  • Strip the uncompressed sample data from the chunk in the converter (this means the device needs to support cases where the encoded sample data is missing, which shouldn't be too difficult as this data shouldn't ever actually be used by the device, only made available to the VST)
  • Deprecate Specimen
  • Optionally, warn/error if the quality parameter is automated (at conversion time)
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

1 participant