Esa Juhani Ruoho a.k.a. Lackluster - the creator of Paketti's Avatar

Esa Juhani Ruoho a.k.a. Lackluster - the creator of Paketti

@esaruoho.bsky.social

Tracker at heart. LUA-scripter by need. Check out http://patreon.com/esaruoho and https://lackluster.gumroad.com/l/paketti or http://lackluster.bandcamp.com/ if you like.

582 Followers  |  1,393 Following  |  708 Posts  |  Joined: 09.02.2024  |  2.2259

Latest posts by esaruoho.bsky.social on Bluesky

stopping the batch.

Where to find it:
File → Paketti Import → Batch Convert RX2 to XRNI...
Sample Editor → Paketti → Batch Convert RX2 to XRNI...
Keybinding: Global:Paketti:Batch Convert RX2 to XRNI

17.02.2026 09:27 — 👍 0    🔁 0    💬 0    📌 0

one to a fully slice-marked .xrni, one instrument file per RX2. Slice markers are imported exactly as in the single-file RX2 importer (up to 255 markers per sample). Failed files are skipped and logged to the console without

17.02.2026 09:27 — 👍 0    🔁 0    💬 1    📌 0

Feature: Batch Convert RX2 to XRNI

Got a folder full of RX2 loop files? Paketti can now convert the whole batch to Renoise instruments in one go.

Select an input folder of .rx2 files and an output folder — Paketti converts each

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

17.02.2026 09:27 — 👍 0    🔁 0    💬 0    📌 0

Mac Mini very quickly (for 24/7 connectivity), because this is going places that will be of immense benefit.

16.02.2026 13:42 — 👍 0    🔁 0    💬 0    📌 0

update: i've been working on improving the Paketti development workflow by quite a lot. This is internal developmental stuff so not much to talk about, but this is a huge unlock 🔓 for me personally. stay tuned. now i just need a M3

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

16.02.2026 13:42 — 👍 1    🔁 0    💬 1    📌 0

channels (mono/stereo).
- Keybinding: `Sample Editor:Paketti:Rotate Audio in Selection`
- MIDI Mapping: `Sample Editor:Paketti:Rotate Audio in Selection`

09.02.2026 21:01 — 👍 0    🔁 0    💬 0    📌 0

Feature: Rotate Audio in Selection
Rotates the audio data within the current selection by its midpoint — the second half moves to the front, the first half moves to the back. A circular shift of the audio content. Works on all

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

09.02.2026 21:01 — 👍 0    🔁 0    💬 1    📌 0

Left`
- MIDI Mapping: `Sample Editor:Paketti:Sample Buffer Selection Shift Right`

09.02.2026 21:01 — 👍 0    🔁 0    💬 0    📌 0

boundaries.
- Keybinding: `Sample Editor:Paketti:Sample Buffer Selection Shift Left`
- Keybinding: `Sample Editor:Paketti:Sample Buffer Selection Shift Right`
- MIDI Mapping: `Sample Editor:Paketti:Sample Buffer Selection Shift

09.02.2026 21:01 — 👍 0    🔁 0    💬 1    📌 0

Feature: Shift Selection Left / Right
Moves the current selection left or right by exactly its own length. Select 1 bar, then shift right to jump to the next bar, shift right again for the bar after that. Clamps at sample

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

09.02.2026 21:01 — 👍 0    🔁 0    💬 0    📌 0

Editor:Paketti:Select 4 Bars`
- MIDI Mapping: `Sample Editor:Paketti:Select 8 Bars`

09.02.2026 21:01 — 👍 0    🔁 0    💬 0    📌 0

Editor:Paketti:Select 4 Bars`
- Keybinding: `Sample Editor:Paketti:Select 8 Bars`
- MIDI Mapping: `Sample Editor:Paketti:Select 1 Bar`
- MIDI Mapping: `Sample Editor:Paketti:Select 2 Bars`
- MIDI Mapping: `Sample

09.02.2026 21:01 — 👍 0    🔁 0    💬 1    📌 0

selection start position. If no selection exists, starts from the beginning of the sample.
- Keybinding: `Sample Editor:Paketti:Select 1 Bar`
- Keybinding: `Sample Editor:Paketti:Select 2 Bars`
- Keybinding: `Sample

09.02.2026 21:01 — 👍 0    🔁 0    💬 1    📌 0

Feature: Snap Selection to Musical Lengths (1/2/4/8 Bars)
Calculates the exact frame count for 1, 2, 4, or 8 bars based on the song's BPM and the sample's sample rate (assuming 4/4 time). Sets the selection from the current

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

09.02.2026 21:01 — 👍 0    🔁 0    💬 0    📌 0

Sequencer:Paketti:Sequences/Sections:Select, Add Entire Section to Schedule and Loop

09.02.2026 18:31 — 👍 0    🔁 0    💬 0    📌 0

next. Available for sections 00-64.
- Keybinding: Global:Paketti:Select, Add Entire Section to Schedule and Loop Section XX
- MIDI Mapping: Paketti:Select&Add Entire Section to Schedule&Loop Section XX
- Menu: Pattern

09.02.2026 18:31 — 👍 0    🔁 0    💬 1    📌 0

Feature: Schedule Entire Section. New variant of "Select, Add to Schedule and Loop" that schedules ALL sequences in a section, not just the first pattern. Useful for completing playback of an entire section before switching to the

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

09.02.2026 18:31 — 👍 0    🔁 0    💬 0    📌 0

Keybinding: Global:Paketti:Section Sequence Selection (Previous)
- MIDI Mapping: Paketti:Section Sequence Selection (Next)
- MIDI Mapping: Paketti:Section Sequence Selection (Previous)

09.02.2026 18:31 — 👍 0    🔁 0    💬 0    📌 0

to include next section. Previous contracts by removing the last section, clears at single, re-selects, then expands backward. Cursor moves to the boundary.
- Keybinding: Global:Paketti:Section Sequence Selection (Next)
-

09.02.2026 18:31 — 👍 0    🔁 0    💬 1    📌 0

Feature: Section Sequence Selection (Next/Previous). Direction-aware section-level selection. Each press adds or removes an entire section from the sequencer selection range. First press selects entire current section. Next expands

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

09.02.2026 18:31 — 👍 0    🔁 0    💬 0    📌 0

Selection (Next)
- MIDI Mapping: Paketti:Sequence Loop Selection (Previous)

09.02.2026 18:31 — 👍 0    🔁 0    💬 0    📌 0

single, re-selects, then expands backward. Cursor follows the edge.
- Keybinding: Global:Paketti:Sequence Loop Selection (Next)
- Keybinding: Global:Paketti:Sequence Loop Selection (Previous)
- MIDI Mapping: Paketti:Sequence Loop

09.02.2026 18:31 — 👍 0    🔁 0    💬 1    📌 0

Improvement: Direction-Aware Sequence Loop Selection (Next/Previous). Rewrote Sequence Loop Selection with the same direction-aware behavior but for the loop range. Next expands loop forward, Previous contracts from end, clears at

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

09.02.2026 18:31 — 👍 0    🔁 0    💬 0    📌 0

Mapping: Paketti:Sequence Selection (Next)
- MIDI Mapping: Paketti:Sequence Selection (Previous)

09.02.2026 18:31 — 👍 0    🔁 0    💬 0    📌 0

Previous clears, then re-selects, then expands backward. Cursor follows the expanding/contracting edge.
- Keybinding: Global:Paketti:Sequence Selection (Next)
- Keybinding: Global:Paketti:Sequence Selection (Previous)
- MIDI

09.02.2026 18:31 — 👍 0    🔁 0    💬 1    📌 0

Improvement: Direction-Aware Sequence Selection (Next/Previous). Rewrote Sequence Selection to be direction-aware. Next expands the selection forward one sequence at a time, Previous contracts from the end. At a single position,

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

09.02.2026 18:31 — 👍 0    🔁 0    💬 0    📌 0

Patterns`
- Menu: `Main Menu:Tools:Paketti:Pattern Editor:Clear Unreferenced Patterns`

09.02.2026 18:03 — 👍 0    🔁 0    💬 0    📌 0

Feature: Clear Unreferenced Patterns
Clears content of patterns not used by any sequence entry. Frees up pattern data.
- Keybinding: `Global:Paketti:Clear Unreferenced Patterns`
- MIDI Mapping: `Paketti:Clear Unreferenced

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

09.02.2026 18:03 — 👍 0    🔁 0    💬 1    📌 0

Columns (Note + Effect)`
- Menu: `Main Menu:Tools:Paketti:Pattern Editor:Remove Unused Columns (Note + Effect)`

09.02.2026 18:03 — 👍 0    🔁 0    💬 0    📌 0

Feature: Remove Unused Columns (Note + Effect)
Runs both unused note column and unused effect column removal at once.
- Keybinding: `Global:Paketti:Remove Unused Columns (Note + Effect)`
- MIDI Mapping: `Paketti:Remove Unused

#paketti #tracker #patreon #lua #renoise #demoscene #trackermusic

09.02.2026 18:03 — 👍 0    🔁 0    💬 1    📌 0

@esaruoho is following 20 prominent accounts