Malfunctioning On Cue

This project explores making an Audio cue malfunction deliberately on demand. There are two examples of typical cases: a gramophone record sticking in a groove, and a CD player sticking, manifesting itself in continuous looping of a small buffered section of audio.

For the younger readers of this cookbook, it may be worth mentioning that both of these errors were quite common with these media. Modern vinyl records can still get scratched and skip in much the same way as older records did, but the infuriating phenomenon of a CD sticking due to a fingerprint on the disc, or a bit of dust stuck on the laser’s lens, has mostly, thankfully, receded into the past.

Here it is in action:

The Gramophone Skip

Gramophone cues

In cue 1, the start and end of cue DS are set to the beginning and end of the audio content with the following script:

set DS to "DS" --Cue number to stutter as a string (Run in Separate Process)
tell application id "com.figure53.qlab.3" to tell front workspace
  set the infinite loop of cue DS to false
  set the end time of cue DS to 999999
  set the start time of cue DS to 0
end tell

Cue 2 simulates the record sticking by switching on the infinite loop setting of the running audio cue, and setting its start point to the current time -0.8 seconds and its endpoint to the current time. Here’s the script:

set NS to "DS" --Cue number to stutter as a string
tell application id "com.figure53.qlab.3" to tell front workspace
  set thetime to the action elapsed of cue NS
  set the infinite loop of cue NS to true
  set the end time of cue NS to thetime
  set the start time of cue NS to (thetime - 0.8)
  start cue NS
end tell

Cue 2 also plays a looped scratch sound in sync with the looped audio of the original cue.

In cue 3, the record resumes with an extra scratch sound, the loop in the main audio cue is switched off and the end point of the cue is set to the end of the audio using this script:

set DS to "DS" --Cue number to stutter as a string (Run in Separate Process)
tell application id "com.figure53.qlab.3" to tell front workspace
  set the infinite loop of cue DS to false
  set the end time of cue DS to 999999
  set the start time of cue DS to 0
end tell

Finally, in cue 4, the record slows to a stop using a Fade cue, which fades the speed of the cue to .03 over five seconds:

Slow to stop

This is pretty much exactly what it sounds like if you switch off the power to a record player while the volume is up.

The CD Stick

CD cues

The CD stutter uses an audio effect inserted on the cue instead of scripting.

Cue 5 has two copies of the Audio cue inside a Group cue set to start all children simultaneously. Cue 5.02 has its volume set to -inf (silent). This will be used for the continuation of the audio after the sticking effect ends. Cue 5.02 has two effects inserted on the Audio Effects tab:

Stutter effects

A high pass filter, set at 6Hz to pass effectively all audio, feeds a delay line set to 100% dry. Therefore, at this point, the original audio has no effects applied. Cue 6 pauses cue 5.02 which is the currently silent copy of the main audio cue. That cue is now ready to resume from the point at which cue 6 was triggered. A Fade cue snaps the delay effect to 100% wet with a 1/10 second delay and 100% feedback. The result of this is to continuously repeat 1/10 of a second of audio starting at the point that cue 6 was fired. Simultaneously, the high pass filter snaps up to 22KHz which prevents more audio from passing into to the delay effect.

Stutter effects - stuck

Cue 7 resumes playback of cue 5.02, snapping its level to full, and stops playback of cue 5.01 with the delay effect. This has the effect of resuming the CD from where it got stuck.