102 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # FCB1010 Looper Pedal - Project Specification
 | |
| 
 | |
| ## System Overview
 | |
| 
 | |
| A looper pedal system using a modified Behringer FCB1010 MIDI foot controller, Behringer UMC404HD audio interface, Raspberry Pi with TFT display (215x135mm).
 | |
| The system provides a 5x5 matrix of loop tracks organized in columns and rows, with real-time visual feedback.
 | |
| 
 | |
| ## Hardware Components
 | |
| 
 | |
| - **Behringer FCB1010**: MIDI foot controller with 10 footswitches (1-10), UP/DOWN buttons, and 2 expression pedals
 | |
| - **Behringer UMC404HD**: Audio interface for input/output
 | |
| - **Single Board Computer**: Running Linux
 | |
| - **TFT Display**: 215x135mm color display, no touchscreen
 | |
| - **Audio**: JACK audio connect kit
 | |
| 
 | |
| ## System Architecture
 | |
| 
 | |
| ### Two-State Operation
 | |
| 1. **Menu State**: Configuration and management functions
 | |
| 2. **Performance State**: Recording and playback matrix
 | |
| 
 | |
| ### Matrix Organization
 | |
| - **5 Columns**: Synchronized recording and playback for each column
 | |
| - **5 Rows**: Individual tracks within each column
 | |
| - **25 Total Cells**: Each cell can contain one audio loop
 | |
| - **Column-based Timing**: First recording in a column sets the beat count for all tracks in that column
 | |
| 
 | |
| ## Interface Design
 | |
| - **Metronome**: Moving indicator that pulses when in center
 | |
| - **Progress Bars**: Show current position in each column with beat divisions
 | |
| 
 | |
|   First recording behavior:
 | |
|   - Progress bar fills during beat 1, then stays full
 | |
|   - Additional beats appear as sliding segments (right-to-left)
 | |
| - **Active Row**: Increased border with
 | |
| - **Selected Cell**: Switched border and background color
 | |
| - **Track States**:
 | |
|   - `---`: Empty cell (dark background)
 | |
|   - `READY`: Recorded, ready to play (green)
 | |
|   - `PLAY`: Currently playing (blue)
 | |
|   - `REC`: Currently recording (red)
 | |
|   - `SOLO`: Solo mode active (orange/amber)
 | |
| - **Volume Bars**: Small bars under each cell showing track volume
 | |
| 
 | |
| ## Button Mappings
 | |
| 
 | |
| ### Menu State
 | |
| - **Button 1**: Tap Tempo
 | |
| - **Button 2**: Enable/Disable Click Track
 | |
| - **Button 3**: Not used
 | |
| - **Button 4**: Not used
 | |
| - **Button 5**: Clear current column
 | |
| - **Buttons 6-10**: Column selection (1-5)
 | |
| - **UP/DOWN**: Switch to Performance Mode
 | |
| - **Expression Pedal A**: Click track volume
 | |
| - **Expression Pedal B**: Master volume
 | |
| 
 | |
| ### Performance State
 | |
| - **Button 1**: Record/Arm
 | |
| - **Button 2**: Play/Mute current track
 | |
| - **Button 3**: Solo current track
 | |
| - **Button 4**: Overdub on current track
 | |
| - **Button 5**: Clear current track
 | |
| - **Buttons 6-10**: Column selection (1-5)
 | |
| - **UP/DOWN**: Navigate rows (switch between track rows), return to Menu when at top or bottom
 | |
| - **Expression Pedal A**: Current track volume
 | |
| - **Expression Pedal B**: Master volume
 | |
| 
 | |
| ## Operational Behavior
 | |
| 
 | |
| ### Recording Workflow
 | |
| - **First Recording in Column**: Sets beat count for entire column, records until stopped
 | |
| - **Subsequent Recordings**: Auto-sync to established column length
 | |
| - **Record Button Stop**: Recording stops, cell starts playing
 | |
| - **Stop Button Stop**: Recording cancelled, previous state restored
 | |
| - **Overdub Button Stop**: Recording continues for next loop, overdubs on previous content
 | |
| 
 | |
| ### Timing and Synchronization
 | |
| - **All actions sync to the beat**: Start/stop occurs at metronome center position
 | |
| - **Column Switching**: Only when not recording, immediate switching to selected column
 | |
| - **Tempo Changes**: Only allowed when all tracks are cleared
 | |
| - **Recording Start**: Synced to column start if column playing, otherwise next beat
 | |
| 
 | |
| ### Solo Functionality
 | |
| - **Solo Activation**: Press Solo button on any track
 | |
| - **Solo Indication**: Cell shows `SOLO` state in orange/amber color
 | |
| - **Multiple Solo**: Additional tracks can be added to solo group
 | |
| - **Solo Play**: Activates solo tracks + any tracks showing `PLAY` state
 | |
| - **Solo Stop**: Stops entire column
 | |
| - **All Solo Actions**: Synced to next beat
 | |
| 
 | |
| ### MIDI Implementation
 | |
| 
 | |
| - **Startup**: Send SysEx configuration to FCB1010 for proper button/pedal mapping
 | |
| - **Expression Pedals**: Set volume on change
 | |
| - **MIDI Feedback**: Send click track to sync with other systems
 | |
| 
 | |
| ### State Management
 | |
| 
 | |
| - **Startup Behavior**: Load last audio tracks and configure FCB1010
 | |
| - **Column Consistency**: Recordings automatically match column beat count
 | |
| - **State Validation**: Prevent invalid operations (e.g., switching columns while recording) |