nickmin 7de0cc3de0 Fix AttributeError: remove redundant mapping_learned connection in main.py
TopBarWidget already connects mapping_learned to _on_mapping_learned internally
in set_midi_engine, so the external connection in main.py was both redundant
and referenced a non-existent method.
2026-05-13 16:47:02 +10:00

VIBE CODED AS FUCK. DO WHAT YOU WANT. I DON'T OWN IT YOU DON'T 


| Feature | Status | Notes |
|---|---|---|
| **Dual Deck Player** | ✅ | Play/Pause, Stop/Eject, Cue, ±15s scrub, Start/End jump, Queue system |
| **4-Slot CART Machine** | ✅ | Toggle play/stop+reset, per-slot LCD display |
| **Playlist Manager** | ✅ | Drag/drop, Add files/folder, Load to deck, Queue, Right-click menu |
| **CART Playlist** | ✅ | Separate playlist panel, auto-fills next free cart slot |
| **MIDI Controller** | ✅ | Numark DJ2Go - Play/Pause, Cue, Jog wheels, 4 Cart buttons |
| **Audio Fingerprinting** | ⚠️ | AcoustID integrated, API working but database gaps |
| **Play History** | ✅ | Scrollable session history, file tags + MusicBrainz metadata |
| **Top Bar** | ✅ | 24hr clock, full date display |
| **Colour Themes** | ✅ | 4 themes - Green, Amber, Blue, Red - cycle with ◈ button |
| **Resizable Columns** | ✅ | QSplitter on all 3 columns |

radiopanel/
├── main.py                 # Entry point, layout, wiring
├── audio_engine.py         # JACK client, deck states, recording
├── deck_widget.py          # CDJ-style deck UI + transport controls
├── cart_widget.py          # 4-slot CART machine
├── playlist_widget.py      # Playlist + CART playlist panels
├── fingerprint_widget.py   # AcoustID audio fingerprinting
├── midi_engine.py          # Numark DJ2Go MIDI mapping
├── top_bar_widget.py       # Clock, date, theme switcher
├── history_widget.py       # Session play history
└── requirements.txt        # Dependencies


S
Description
No description provided
Readme
859 KiB
Languages
Python 100%