One of the basic gdam gui components us the turntable. The turntable embodies the ability to start, stop, seek, and change the speed of a sound. A turntable contains a sound-producing source (ie an mp3 player) which it controls. If available, a turntable makes use of beat information about the sound it is controlling. In addition, the turntable offers drag-n-drop functionality to coordinate between songs.
The default turntable, containing an mp3 player, looks something like this:
To use the turntable, a song must first be loaded. Drag and drop a filename from the song selector onto the filename entry box.[*] Alternatively, use the => (import) button to load the currently selected song. When the song is dropped, the turntable loads information about it from the song database. If known, the song's position will automatically be set to the location of the first beat.
[*] Initially the song database will be empty, making the song selector empty. Please see Section V, Song Database.
The middle two buttons on the top row stop and start the song playing. The >-style buttons nudge the song a small amount. They are useful for aligning songs which are slightly out of sync. The >| style buttons seek the song an even bar, based on bpm information from the song database. These buttons are useful to move around within the song while staying on beat. The anchor button will set the turntable to be the lead source. This means that if it is playing, other songs can sync to it. To sync a running turntable to the lead source, press its play button a second time.
Turntables can resample their songs to match any tempo. To cause one turntable to resample its song to match another song's tempo, drag and drop the desired tempo from one turntable's bpm label to the other turntable's resampling area. Double clicking a turntable's bpm label will cause it to match to the lead (anchored) component. By checking the 1/2 button in the resampling area, the turntable treats its song as if it was half the normal speed. This allows one to sync an 80 bpm song to a 160 bpm one, without extensive resampling.
In addition to the iconated buttons, there are a number of other displays and controls:
Without Modifier - Starts the song playing. If the song is already playing, synchronize this song with the lead song. Both songs must have beat information in the song database for this to work.
With CONTROL pressed - Starts the song in sync with a different, playing song. Both songs must have beat information in the song database for this to work.
Without Modifier - Stops the song. If the song is not playing, seeks to the first beat.
Without Modifier - Nudges the song back a tiny amount (1/200 sec) Useful for aligning songs which aren't quite playing in time.
Without Modifier - Nudges the song back a small amount (1/20 sec)
Without Modifier - Nudges the song forward a tiny amount (1/200 sec)
Without Modifier - Nudges the song forward a small amount (1/20 sec)
Without Modifier - Nudges the song back exactly one measure, if the bpm is known. Useful for looping part of a song, or seeking through a song while keeping the beat.
With CONTROL pressed - Nudges the song back exactly one beat.
Without Modifier - Nudges the song back exactly two measures.
With CONTROL pressed - Nudges the song back exactly two beats.
Without Modifier - Nudges the song forward exactly one measure.
With CONTROL pressed - Nudges the song forward exactly one beat.
Without Modifier - Nudges the song forward exactly two measures.
With CONTROL pressed - Nudges the song forward exactly two beats.
Display the current position within the song. Drag to change.
Displays the current time in minutes and seconds.
If the beat information of the underlying source is known, then this displays the number of beats away from the first, corresponding to the current position.
If the turntable is capable of synching the playing song (i.e., it has beat information for that song and for the lead song) then this shows how far out of sync it is. The value is a fraction of a beat. A negative value indicates that the song should be nudged back by that amount to be in sync.
Controls the resample rate (ie playback speed) of the song. Drag to change.
When this button is pressed, the turntable is set as the lead component. This means that other components' songs will attempt to sync to the turntable's. If the beat information of the turntable's song is unknown, it won't make a very useful leader.
This display indicates what speed the song is playing at.
This display indicates the bpm of the resampled song. This value can be dragged onto another turntable's BPM display (using the middle or right button) causing the other turntable to resample itself such that its output bpm matches ours.
This widget allows measured jumps of 1 to 16 beats. Drag the paddle until the label indicates the number of beats you'd like to jump. Release and the jump occurs. Clicking in the trough and at the ends also allow easy jumping.
If this control is active, then the turntable will automatically adjust its resampling rate when a new song is loaded. The rate will be adjusted so that the new output tempo is the same as the old. Of course, the beat information of both songs must be known for this to happen.
These arrows are adjacent to the tempo display, in the style of a spinbutton. The up arrow doubles the effective tempo of the song, and the down button halves it. When the effective tempo of a 180 bpm song is halved, the first beat remains at the same location but seeking and synchronization treat it as if it were 90 bpm.
Some songs have a complicated beat info description, because different parts of the song have different phases and tempos. At any point, the turntable uses a single firstbeat and tempo value. When the position of the song is changed, the turntable will automatically cycle the beat info to the range which describes the current position. At times it is useful to select which beatinfo range to follow at any point in the song. A left click on this control cycles to the next beatinfo range. In some skins, a right click on this control will lock the beatinfo, to prevent the turntable automatically selecting the range it thinks is appropriate.