Conversation
Refactor color retrieval methods to improve accuracy and add a method for finding the closest color. Change color value calculations from floor to round for better precision.
…n PSP42 v 2 Updated pad assignments and added new controls for PSP42, PSP42x, and Megaverb.
…ration validation error - Add Math.max() to ensure duration is at least 0.25 (quarter beat) - Prevents 'Parameter insertDuration must be > 0.0' error when duration is 0 - Fixes validation error at PadHandler.java:145 in executeCopy()
…peat, pan, recurrence, etc.) - executeCopy() now properly copies all note properties via registerExpectedNoteChange() - This triggers applyValues() in DrumSequenceMode which copies: chance, timbre, pressure, repeatCount, repeatVelocityCurve, pan, repeatVelocityEnd, recurrence, occurrence - Fixes issue where volume and other parameters were lost during pad copy
…to 0-127 range - Changed to use Math.round() for accurate velocity conversion - Velocity is now properly copied from noteStep.velocity() * 127 with rounding - Ensures volume/dynamics are preserved when copying between pads
Refactor PadHandler class to improve structure and readability. Update NoteData class to public for accessibility.
userdsp
left a comment
There was a problem hiding this comment.
Fork Update vs Original ericahrens/rhbitwig (upstream/master) Important differences in this forked branch:
New Traktor Bridge subsystem (not present in upstream master): Added com.traktor.bridge package with TraktorBitwigBridgeExtension, TraktorBitwigBridgeExtensionDefinition, HttpBridgeServer, DeckManager, ScaleEngine, and VirtualMidiInput; this provides HTTP deck/key intake and MIDI/CC forwarding to Bitwig.
Allen & Heath K2/K3 workflow updates: Extension renamed and aligned to K2/K3 DJSet; deck selection behavior stabilized (single-click preview, double-click select), active-deck notifications sent to bridge (/activeDeck/{A|B|C|D}), and LED state feedback refined.
Tonality/transpose pipeline hardening: Camelot/Open-wheel mapping synchronized to project wheel definitions, semitone -> CC16 conversion adjusted to avoid skipped Note Transpose steps, and practical range -1..10 verified without gaps.
API/toolchain alignment: Maven Bitwig dependency aligned to com.bitwig:extension-api:24, getRequiredAPIVersion() aligned to 25 across extension definitions, and IntelliJ module metadata aligned to API 24.
Controller/framework evolution beyond bridge work: Substantial updates in Akai Fire sequencing/display pipeline, Launchcontrol and Launchpad Pro Mk3 code paths, Yaeltex focus/layer logic refinements, and framework/debug cleanup and stabilization.
Documentation expanded in this fork: Added K2 deck-selector behavior notes, full Camelot -> Note Transpose mapping documentation, and a canonical wheel table as source of truth.
Akai Fire Copy & Paste - Correct Workflow First tap → tap a pad to mark it as the source (it gets selected/highlighted) Second tap → tap the same or another pad to copy its notes to the buffer (this loads the notes you want to paste) Hold COPY button → keeps the buffer locked and ready for pasting Tap any other pad (while holding COPY) → pastes the copied notes to that pad (executes twice automatically for proper playback) Keep holding COPY → you can tap multiple pads one by one, and each will receive the same paste Summary: Select source → Copy to buffer → Hold COPY → Paste to destinations (multiple).
Lexicon PSP42 ver. 2 is now also supported.
For the connection between Tractor and Bitwig to work, you need to enable the IAC Driver from Audio MIDI Studio in the macOS settings, or use a virtual MIDI cable for Windows. In Bitwig’s controller settings, click “Add Controller” and select “TraktorBridge.” Then, for the MIDI device, select the IAC Driver on Mac or another virtual MIDI cable. After completing the steps above, place the “Note Transpose” plugin before the synthesizer and adjust the semitones—to do this, don’t touch the controller; simply load a track into Traktor3/4 and use the deck’s output selection button, which will automatically send CC16 on channel 10 via the connection you’ve already set up. Once the mapping is done, you’re 100% ready for action!