Below are a set of user interactions that are expected to work consistently across all Link-enabled apps. In order to provide the best user experience, it's important that apps behave consistently with respect to these test cases. ## Tempo Changes
- Open LinkHut, press Play, when using QLinkHut click the Link button to enable Link. - Open App and enable Link. - Without starting to play, change tempo in App ⇒ LinkHut clicks should speed up or slow down to match the tempo specified in the App. - Start playing in the App ⇒ App and LinkHut should be in sync - Change tempo in App and in LinkHut ⇒ App and LinkHut should remain in sync
- Open App and enable Link. - Set App tempo to 100bpm. - Terminate App. - Open LinkHut, press Play and enable Link. - Set LinkHut tempo to 130bpm. - Open App and enable Link. ⇒ Link should be connected (“1 Link”) and the App and LinkHut’s tempo should both be 130bpm.
- Open LinkHut, press Play, when using QLinkHut click the Link button to enable Link. - Set LinkHut tempo to 130bpm. - Open App and enable Link ⇒ LinkHut’s tempo should not change. - Load new Song/Set/Session with a tempo other than 130bpm ⇒ App and LinkHut tempo should both be 130bpm.
- Open LinkHut, press Play, when using QLinkHut click the Link button to enable Link. - Open App, start Audio, and enable Link. - Change tempo in LinkHut to 20bpm ⇒ App and LinkHut should stay in sync. - Change Tempo in LinkHut to 999bpm ⇒ App and LinkHut should stay in sync. - If App does not support the full range of tempos supported by Link, it should stay in sync by switching to a multiple of the Link session tempo.
- Open App, start playing. - Change App tempo to something other than the default.
- Enable Link ⇒ App's tempo should not change. - Change App tempo to a new value (not the default). - Disable Link ⇒ App's tempo should not change.
These cases verify the continuity of beat time across Link operations.
- Open App, start playing. - Enable Link ⇒ No beat time jump or audible discontinuity should occur. - Disable Link ⇒ No beat time jump or audible discontinuity should occur.
- Open App and enable Link. - Start playing. - Open LinkHut, whenusing QLinkHut enable Link ⇒ No beat time jump or audible discontinuity should occur in the App.
Note: When joining an existing Link session, an app should adjust to the existing session's tempo and phase, which will usually result in a beat time jump. Apps that are already in a session should never have any kind of beat time or audio discontinuity when a new participant joins the session.
These cases verify the correct implementation of latency compensation within an app's audio engine.
- Connect the audio out of your computer to the audio in. Alternatively use SoundFlower to be able to record the output of your app and LinkHut. - Open LinkHut, press Play, , when using QLinkHut click the Link button to enable Link. - Open App and enable Link. - Start playing audio (preferably a short, click-like sample) with notes on the same beats as LinkHut. - Record audio within application of choice. - Validate whether onset of the sample aligns with the pulse generated by LinkHut (tolerance: less than 3 ms).