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

Master channel #6442

Draft
wants to merge 54 commits into
base: master
Choose a base branch
from
Draft

Conversation

Paul-Licameli
Copy link
Collaborator

@Paul-Licameli Paul-Licameli commented May 16, 2024

Resolves: #6346
Resolves: #6507
Resolves: #6519
Resolves: #3651
Resolves: #6536

Alternative implementation of changes in AudioIO.cpp that will be compatible with per-track meters.

Also fixing:

  • error in handling effect latencies
  • duration of microfades (for changes of pan, mute, solo, track gain, or master gain) is independent of platform or buffer preferences

QA:

  • playing of MIDI tracks whether alone or with simultaneous audio
  • Applying effects like Reverb (with varying stereo depth) to mono tracks
  • Changing of mute, solo, pan, gain, and master gain (on the output meter) during play

(short description of the changes and the motivation to make the changes)

  • I signed CLA
  • The title of the pull request describes an issue it addresses
  • If changes are extensive, then there is a sequence of easily reviewable commits
  • Each commit's message describes its purpose and effects
  • There are no behavior changes unnecessary for the stated purpose of the PR

Recommended:

  • Each commit compiles and runs on my machine without known undesirable changes of behavior

@Paul-Licameli
Copy link
Collaborator Author

Updated the draft in progress today. It is still incomplete.

@Paul-Licameli Paul-Licameli force-pushed the master-channel branch 6 times, most recently from 56f20ce to aa52b52 Compare June 1, 2024 00:42
... Process both pieces of the intermediate result first (when it is not
contiguous), before doing any of the shifting of samples.

This bug might have happened only on some passes of TransformPlayBuffers.
... track states do not yet vary independently, but this prepares for a better
treatment of differing effect latencies on tracks.
... and can be done before the update of the time queue, so long as the flushing
of the ring buffers is later.
... letting playback states and mixers progress independently when the
non-destructive effect latencies differ; and flushing only once.

RingBuffer::Excess was needed transitionally, but is now unused.  Maybe it will
find another use again.
This was referenced Jun 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant