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

Tough review / should it be deprecated? #5

Open
dy opened this issue May 20, 2018 · 0 comments
Open

Tough review / should it be deprecated? #5

dy opened this issue May 20, 2018 · 0 comments

Comments

@dy
Copy link
Member

dy commented May 20, 2018

This package starts to be a blocker for reliable audio development, because of a set of doubtful solutions and unanswered questions.

Rationale to this package:

  1. Avoid copying new data into some allocated buffer and instead just save reference to data chunks.
  2. Quickly insert/remove data from any part of the buffer.
  • 1 should imply that new data chunks can be of any audio format, not only AudioBuffer, to be able to mutually extract and process collected data of different types, eg. interleaved and planar together. If AudioBuffers are forced, that makes for opinionated data format and anyways requires converting data first. Therefore, the 1 is not met.
    • consequently, converting/copying data from any source type into allocated buffer could be done directly in audio via set method, avoiding audio-buffer-list.
      • 👎 that makes inserting new data w/o need for conversion slow.
  • 2 is implemented in audio-buffer-list as split and join, which postpone copying new data from write to edit.

Not addressed cases here:

  1. History of modifications.
  2. Collaborative editing.
  3. Branching.

Inspiration:

  • xray RGAsplit
  • storing a set of operations, like gain etc., rather than modifying content directly, which allows for faster updates and does not lose data precision.
    • We may not need to store peer id, but linked list of operation-nodes with id, content, tombstone flag and nextNodeId from RGA may make sense.
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