-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Timing
** FIXME -> This page is under construction <- FIXME**
This page is a collection of all timing topics inside Mixxx
In Mixxx we have to deal at least with five independent hardware time sources:
1. BIOS wallclock (Real time clock)
2. CPU clock
3. Sound interface DAC clock
4. Display clock
5. Midi Sample rate
Unfortunately all these clock have there own precise and are not synced.
1. Audio interval, set by the audio buffer size ~ 1 ... 100 ms
2. Display refresh rate, usually 16.66 ms
3. Mouse sample rate, for waveform scratch usually 8 ms
4. Midi polling, Sample rate ?
In Mixxx the Audio interval is the leading interval. All other intervals must be synced with the audi interval for a perfect result. If this is not possible, We may interpolate the used values tor reduce the jitter due to the use of possible outdated values. For good results we need a timestamps for these values.
The Mixxx sound engine runs at the sound interface DAC clock (3.).
Depending on underlying sound driver architecture, Port Audio calls a Mixxx callback for every sound buffer. ...
One call of the Audio Callback processes one Buffer at once. Control changes are only adopted between each callback. Controls that changes with a higher rate then the audio buffer size are lost.
The Waveform display must be refreshed with the display refresh rate, but the data to display are calculated with the audio update rate.
The control "Latency" is the time from a control command at the until the change can be heard from the speakers. Only a middle part is produced by Mixxx.
For best results all controls should be sampled one time within each audio interval.
Mixxx is a free and open-source DJ software.
Manual
Hardware Compatibility
Reporting Bugs
Getting Involved
Contribution Guidelines
Coding Guidelines
Using Git
Developer Guide
Creating Skins
Contributing Mappings
Mixxx Controls
MIDI Scripting
Components JS
HID Scripting