Transport Bar
Complete transport control strip combining TransportButton, TimeDisplay, and BPMControl components into a unified interface.
Live Autonomous Mode
A fully functional transport bar that manages its own audio Transport, Clock, and Metronome. Click Play to hear the metronome.
BARS
1:1:000
120.00BPM
120.00BPM
BARS
1:1:000
Controlled Mode
Transport bar controlled by external state. All callbacks fire for integration with your own audio engine or Redux store.
BARS
1:1:000
120.00BPM
120.00BPM
BARS
1:1:000
State: stopped | BPM: 120 | Loop: Off | Metro: Off | Rec Armed: No | Mode: bars
Sizes
Transport bar in small, medium, and large sizes.
BARS
1:1:000
120.00BPM
120.00BPM
BARS
1:1:000
BARS
1:1:000
120.00BPM
120.00BPM
BARS
1:1:000
BARS
1:1:000
120.00BPM
120.00BPM
BARS
1:1:000
Visibility Options
Show or hide individual sections of the transport bar.
BARS
1:1:000
120.00BPM
120.00BPM
BARS
1:1:000
BARS
1:1:000
BARS
1:1:000
120.00BPM
120.00BPM
BPM Control Features
Configure what features are shown in the BPM control section.
BARS
1:1:000
120.00BPM
120.00BPM
BARS
1:1:000
BARS
1:1:000
120.00BPM
120.00BPM
BARS
1:1:000
Count-In Feature
Show the count-in control for pre-recording countdown.
BARS
1:1:000
120.00BPM
120.00BPM
BARS
1:1:000
Count-In: Off
Sync Indicators
Show sync source when tempo is controlled externally.
BARS
1:1:000
MIDI
120.00BPM
MIDI
120.00BPM
BARS
1:1:000
BARS
1:1:000
LINK
128.00BPM
LINK
128.00BPM
BARS
1:1:000
Architecture
How the TransportBar integrates with the audio engine.
Component Integration
- Combines TransportButton, TimeDisplay, and BPMControl
- Uses useTransportSync hook for audio timing
- Supports both autonomous and controlled modes
Autonomous vs Controlled Mode
- Autonomous: Pass audioContext to manage its own audio engine
- Controlled: Pass callbacks and state props for external control
Redux Integration Example
// Using with Redux store
const dispatch = useAppDispatch();
const isPlaying = useAppSelector(selectIsPlaying);
const bpm = useAppSelector(selectBpm);
<TransportBar
transportState={isPlaying ? "playing" : "stopped"}
bpm={bpm}
onPlay={() => dispatch(play())}
onStop={() => dispatch(stop())}
onBPMChange={(bpm) => dispatch(setBpm(bpm))}
/>Keyboard Shortcuts
- Space - Play / Pause
- Enter - Stop
- L - Toggle Loop
- M - Toggle Metronome