Feature Requests

Responsive Text Labels in Edit Mode (Auto-fit, Wrap, Ellipsis, Scale-Aware)
Description: Make widget text rendering in Edit mode scale-aware and responsive so labels always fit their widgets at any canvas zoom or screen size. Provide per-widget options for auto-sizing, wrapping, truncation (ellipsis), and min/max font sizes—so what you see while editing accurately reflects performance mode. Problem: In Edit mode, widget text does not re-adjust when the canvas is zoomed or when the AU/preview frame is resized. Labels can spill outside their widgets, overlap neighbors, or clip unpredictably. This looks odd, makes alignment hard, and can mislead users about what will appear on stage. Proposed Solution: Auto-Fit Engine: Shrink-to-fit with configurable min/max font size , optional character/word wrapping , and ellipsis for single-line modes. Scale-Aware Layout: Recompute text metrics whenever canvas zoom, window scale, or widget size changes; cache results for performance. Per-Widget Controls: - Mode: Auto-fit / Wrap / Single-line + Ellipsis / Clip . - Padding & Safe Area (keep text away from rounded corners/icons). - Alignment (H/V), line height , letter spacing , icon+text layout . Edit-Time Diagnostics: Optional overflow guides (red outline), “Text fits” indicator, live preview of resolved font size/lines. Parity Preview: “Preview @ scale” toggle to simulate performance rendering exactly inside Edit mode. Actions/Variables: Set Widget Label , Set Font Size , Toggle Auto-fit ; expose textFits , resolvedFontSize , lineCount , isTruncated for labels/logic. Benefits: Clean, accurate canvas while editing—no more text spilling over widgets. Faster layout work; fewer surprises switching between edit and performance. Better accessibility and localization (long strings/languages fit gracefully). Consistent look across iPad models, orientations, and AU windows. Examples: A compact button grid with long labels (“Emphasis”, “Contour”) shrinks to fit within each button at 70% canvas zoom; ellipsis engages only if the label exceeds the min font size. A two-line wrap mode for descriptive buttons keeps typography readable in portrait and landscape. During authoring, overflow guides show which widgets would truncate; a one-tap “Fix to Auto-fit” resolves them project-wide. This summary was automatically generated by GPT-5 Thinking on 2025-09-07. It would be great it textboxes re-adjusted to screen size! :) Maybe when they are locked to a widget?
1
·

under review

Template & Widget Presets Library (Buses, Instruments, Mappings)
Description: Add a portable presets system with two layers: (1) structural templates for buses/instruments/routings (including AUv3 chains and MIDI mappings), and (2) preconfigured widget templates (buttons/faders/knobs) that already target common parameters or global actions. Templates can be saved to a personal library and inserted via drag-and-drop into any project. Problem: Across projects, users repeatedly rebuild the same setups: specific bus chains, instrument routings with MIDI color/channel mappings, and widgets that control basics like “Bus B volume,” “Master volume,” or “FX toggle.” Recreating these from scratch is slow, disrupts creative flow, and results in inconsistent control layouts. Proposed Solution: Structural Templates: Save buses/instruments with their AUv3 chains, routings, sends, colors, and MIDI mappings. Option to include/exclude audio/midi clips. Widget Templates: Save ready-to-use controls (buttons/faders/knobs/grids) prebound to targets (e.g., bus volumes, effect parameters, global actions). Library & Browser: Project + user library with tags, favorites, search, preview, and versioning. Smart Insert: Conflict-aware import that remaps colors/channels, resolves name clashes, and prompts to create missing buses or reuse existing ones. Dependencies: Detect missing AUv3s and offer placeholders or alternative device mappings; show a summary report post-import. Scope Options: Insert as new, or Apply Template to Selection (update an existing bus/instrument). Share/Export: Pack templates (with optional assets) into a sharable file for collaborators; support drag-in to install. Shortcuts & Actions: “Save Selection as Template,” “Insert Template,” and “Replace With Template” actions for rapid workflow and controller mapping. Benefits: Huge time savings for both complex chains and simple, frequently used controls. Consistency of mappings and UI across projects, lowering on-stage errors. Encourages experimentation—drop in a complete chain + control surface in seconds. Easier collaboration and onboarding via shareable, versioned template packs. Examples: Save a Guitar Bus (Input 2 → Bus B → AUv3 FX chain) plus a pre-mapped fader; reuse it across multiple projects instantly. Insert a Ravenscroft275 instrument template mapped to a MIDI color with a sustain toggle button already wired. Drop a Master Utilities widget set (Master fader, Reverb Send, Mute/Panic) onto any page; targets auto-bind to the current project’s buses. Share a Live Vocals Chain pack (preamp → de-esser → comp → delay send) with a labeled control strip for a touring rig. This summary was automatically generated by GPT-5 Thinking on 2025-08-25.
2
·

under review

MIDI Latency Offset (Positive & Negative)
Description: Provide precise MIDI latency compensation for both incoming and outgoing MIDI with positive (delay) and negative (advance) offsets. Offer scopes at Global , Device/Port , Channel , Track/Instrument , and Mapping levels, with units in ms and musical ticks/beats . Problem: External gear, AUv3s, and networks introduce variable MIDI and audio latency/jitter. Without per-path compensation, notes, CCs, and clocks can feel late or early relative to audio, causing flams with drums, sloppy tightness, and misaligned automation. Current workarounds (manual clip nudge, quantize) don’t help live output or real-time controller mappings. Proposed Solution: Scopes & Units: - Global → Device/Port → Channel → Track/Instrument → individual Mapping. - Offsets in milliseconds or ticks/beats (tempo-aware). Directions: - Input Offset (record/learn): Shift captured MIDI timestamps (pre-quantize) to de-jitter playing feel. - Output Offset (live send): Schedule outgoing Note/CC/PC/Clock earlier (negative) or later (positive) relative to the engine timeline. Message Coverage: Notes, CC, Program Change, Aftertouch, Pitch Bend, MIDI Clock/Start/Stop, MPE (per-channel). Scheduling & Safety: Sample/buffer-aware timing; guard rails when negative offset exceeds look-ahead (auto-clamp, warn). Works with plugin delay compensation and project quantization. Calibration Wizard: - Loopback mode: send test bursts → measure round-trip → propose offsets per port. - Audio probe mode: send MIDI to a device that emits audio transients; detect via input to estimate device path latency. - Store per-rig profiles (studio/live). Per-Mapping Overrides: Action-level “Apply MIDI Offset” toggle/amount for critical macros (e.g., tight mutes, scene calls). Monitoring & UI: - Inspector shows resolved offset per path (ms & beats), recent jitter (ms p95), and active profile. - Status badges on tracks/ports when non-zero offsets are applied. Automation & API: Actions to Set/Cycle MIDI Offset at any scope; variables midiOffsetMs , midiOffsetBeats , jitterMs for labels/logic/OSC. Presets: Tight Drums , External Synth , Wireless Controller . Benefits: Tighter groove with external drum machines and synths. Reliable alignment of MIDI automation with audio events and clip boundaries. Portable, profile-based setups for different rigs/venues. Less manual nudging; better live feel and reduced flams. Examples: Set −7 ms output offset on Port: TR-8S so its kicks land exactly with internal audio. Apply +3 ms input offset to a Bluetooth controller to stabilize recorded timing before quantize. Give the Bass Instrument Track a −1/64 note offset (tempo-scaled) to feel ahead without changing audio latency. For show control, per-mapping offset −12 ms on a “Mute Bus” CC ensures mutes hit precisely on scene boundaries despite device lag. This summary was automatically generated by GPT-5 Thinking on 2025-09-07.
2
·

under review

Disable/Enable Follow Actions at Global, Color, and Clip Levels
Description: Add first-class controls to suspend/disable/enable Follow Actions at multiple scopes—Global, Page, Color group, Track, and individual Clip—with mappable actions and conditions (e.g., “while recording”). Include targeting tools to disable specific follow actions by ID/tag rather than all-or-nothing. Problem: Follow Actions are great for automating program changes and flow, but sometimes you need them temporarily off —for example, to record into an empty clip without sending its stored program change. Today, a clip can be empty yet still carry a Follow Action that fires on trigger, causing unwanted device changes and disrupting performance. Proposed Solution: Scopes & Toggles: - Global: Suspend All Follow Actions / Resume All . - Color Group: Enable/Disable Follow Actions for Color = X . - Track/Clip: Enable/Disable Follow Actions (per target). - Page/Project presets that recall scope states. Selective Targeting: - Tag follow actions (e.g., progChange , lighting , sceneAdvance ) and Enable/Disable by Tag . - Address follow actions by stable ID for surgical control. Context Conditions: - One-tap “While Recording” guard : block follow actions during record/overdub on selected clips/tracks. - Options: Block on empty clips , Block on armed tracks , Block on manual trigger only . Scheduling & Safety: - Quantize state changes to bar/loop boundary (optional), with preview/HUD showing what will be suppressed. - Undoable, with timeout (auto-resume after N bars/seconds) and panic action to re-enable everything. UI & Feedback: - Small badge on clips/tracks when follow actions are suspended ; global status light with quick menu (All / Color / Track / Clip / Tags). - Inspector shows active blocks and their origins (scope, tag, condition). Automation API & Variables: - Actions: Suspend/Resume Follow Actions (scope/tag/ID) , Toggle Follow Actions While Recording , Enable Only… (whitelist) . - Vars: followActionsSuspended , suspendScope , suspendTags[] , isClipEmpty , isRecording . Backwards Compatibility: - Existing follow actions remain unchanged; suspension layers sit “on top” and can be saved with the project or ignored per preference. Benefits: Prevents unwanted program changes or scene jumps while capturing new ideas. Fine-grained control (by scope and by tag) avoids over-disabling unrelated automation. Safer live workflow with clear visual feedback and quick global recovery. Cleaner templates—no need for duplicate “no-FA” copies of clips/pages. Examples: Before recording into empty “Lead” clips, trigger Suspend Follow Actions (Color=Red, While Recording) so embedded program-change follow actions won’t fire. Keep lighting FAs active but **disable only progChange -tagged** follow actions during a sound-design section. Map a footswitch to Toggle: Suspend All FAs (2 bars) —auto-resumes after two bars to restore normal automation. Per-clip switch: Disable Follow Actions on This Clip while you overdub; the global status stays unaffected. This summary was automatically generated by GPT-5 Thinking on 2025-09-07. Original Post: Disable Follow Actions (Global-Colour-Clip level) Action to disable Follow Actions on all levels. In my scenario, I am using Follow Actions on clips to send program changes to my synths when these clips are triggered, but that is not always necessary. Sometimes I just want to record something in an empty clip without switching the sound on my synth because of the clip’s Follow Action which i am currently recording .The clip may be empty, but it is still carry the Follow Action. Being able to disable these follow actions with widgets would resolve these kinds of issues. Even better, to target multiple specific Follow Actions.
2
·

under review

MIDI Editor: Precision Movement & Smart Snap on the Grid
Description: Improve note movement in the MIDI editor with precise drag/nudge behavior, smarter snapping (absolute/relative/groove), constrained moves, fast autoscroll, and clear readouts—so editing is accurate at any zoom and never breaks the layout. Problem: Dragging and nudging notes can feel imprecise at different zoom levels. Notes may jump unpredictably to the grid, overflow visually while editing, or require too many steps to make small timing/pitch adjustments. Lack of constrained moves, weak autoscroll, and limited snap options slow detailed editing. Proposed Solution: Snap Modes (per tool & per-move modifier): - Absolute Snap (to nearest grid line). - Relative Snap (preserve original offset from grid while moving). - Groove Snap (align to current groove template/swing). - Hold a modifier to Temporarily Bypass Snap for free moves. Constrained Movement: - Horizontal-only (time) / Vertical-only (pitch) constraints via modifier or two-axis gesture; optional octave-step constraint. - “Scale Lock” to keep moved notes within the selected scale (with nearest-note fallback). Nudge System (keyboard/MIDI/OSC mappable): - Nudge time by: ticks , current grid step , beat , bar (positive/negative). - Nudge pitch by semitone or octave ; optional “keep chord shape.” - Repeat-to-accelerate with configurable ramp. Edge-Aware Autoscroll: - Smooth, speed-ramped autoscroll when dragging to the viewport edge; hysteresis prevents accidental scrolling. - “Scroll while holding” and mini-map preview of destination. Visual Feedback & Handles: - Ghost preview with start/end, length, and Δ readouts (e.g., +23 ticks, +2 st ). - Collision hints and legato-protect option to keep note gaps/overlaps intact; ripple mode to shift following notes together. Multi-Selection QoL: - Box-select respects current grid; add/remove with lasso; preserve relative spacings when moving chords/phrases. - ALT/Option-drag = duplicate-while-moving; “repeat xN” dial to create evenly spaced copies. Grid & Groove Integration: - Grid units: bars/beats/subdivisions (incl. triplets & dotted), tempo-aware at any zoom. - Groove amount applies to move/duplicate commits; “snap to groove markers” overlay. Linked Lanes: - Move notes with their automation/velocity ramps (toggleable). - Per-lane offset locks to keep CC/aftertouch aligned when timing shifts. Performance & Safety: - Edit-time text never overflows widgets; live-fit labels in editor UI. - Per-move undo grouping; “preview only” until mouse-up/touch release for low CPU. Benefits: Faster, more accurate edits at any zoom level. Musical results via groove-aware and relative snap options. Fewer accidental jumps and cleaner phrasing with constrained moves and ripple/legato guards. Clear feedback reduces guesswork; fewer steps to achieve micromoves. Examples: Hold Shift to drag a chord horizontally only by 1/16 steps while preserving its swing offset (Relative Snap). Tap arrow to nudge −10 ticks for tight flams; hold to accelerate to −1/16 steps. ALT-drag a hi-hat note and set repeat x7 to stencil an even pattern across the bar. Enable Scale Lock so moving a melody up keeps every note within D Dorian. Drag near the right edge to autoscroll smoothly into the next section while the ghost overlay shows Δ +0.5 beat . This summary was automatically generated by GPT-5 Thinking on 2025-09-07. Original Post: Please, Improved movement on the midi editing grid. I would like a second spin about movement and editing Midi notes in Loopy. I find it quite worky. -I would prefer if when I’m double pinching on the grid I would be able to move around the screen in all 4 directions aswell as zooming so I don’t have to switch between the movement button and the editing button all the time. -Also when I’m zooming and moving currently it sometimes it jumps a little, try it! I have not been able to find the condition but when moving towards the start of the song, or zooming in out at the current loop boundary it gets hectic
1
·

under review

Actions to Assign and Change Group Settings
Description: Add a comprehensive set of actions and variables to assign items to groups and modify group settings at runtime —including membership, launch/mute behavior, exclusivity/choke rules, voice limits, quantization, color/tags, and selection/iteration—so groups can be managed hands-free during performance. Problem: Group behavior (e.g., exclusive playback, voice limits, quantization) is typically configured in editors, not on stage. When arrangements evolve mid-set—adding a new clip to an exclusive group, toggling choke, changing launch quantization, or iterating through group members—performers need mappable controls. Without action-level access, users duplicate pages or stop the flow to edit settings. Proposed Solution: Membership Actions: - Add Selected to Group … / Remove Selected from Group … / Move Selected to Group … - Clear Group Membership (selected items) - Target by Group Name/ID , Color , or Tag ; support multi-select. Behavior Actions (per Group): - Set Group Mode = Free / Exclusive (Choke) / Round-Robin / Random / Cycle - Set Voice Limit (N) ; Set Choke on New Start (on/off) - Set Launch Quantization = None/Beat/Bar/Loop/Custom - Set Stop Quantization ; Set Fade In/Out (ms or bars/beats) - Set Default Record Target (group catches new recordings) - Enable/Disable Follow Actions for Group (ties into FA system) - Set Group Color/Tag(s) Control & Navigation: - Group Play/Mute/Solo/Stop/Clear - Select Next/Previous Member ; Select Member by Index/Name - Trigger Current Member ; Cycle to Next on Trigger (honors mode) - Apply Template to Group (optional, for consistent widgets/FX) Guards & Scheduling: - Quantize membership changes and mode switches to bar/loop (optional) - Safe fallbacks when removing the last member; full undo Variables & Feedback: - group.id , group.name , group.mode , group.voiceLimit , group.quantizeLaunch , group.memberCount , group.playingCount , group.selectedIndex , group.color , group.tags[] - Events: onGroupChanged , onGroupMemberSelected UX: - Inspector shows live group state and membership; quick-assign popover; badges on members indicating their group(s) Benefits: Real-time, performance-safe control over grouping without leaving the canvas. Faster musical choreography: choke hats, rotate fills, change quantize on the fly. Fewer duplicated templates; more flexible shows. Clear feedback for controllers and labels via exposed variables. Examples: Map a footswitch to Move Selected to Group “Hats (Exclusive)” and Set Voice Limit = 1 —open/closed hats now choke correctly. Before a breakdown, Set Group Launch Quantize = Bar and Fade Out = 250 ms to guarantee tight transitions. A “Variations” button Selects Next Member of the “Bass Lines” group; mode = Round-Robin so each press advances to a new riff. During live capture, enable Default Record Target = Group “Perc FX” so new one-shots auto-join that choke group. Temporarily Disable Follow Actions for Group “Pads” while overdubbing, then resume with a single action. This summary was automatically generated by GPT-5 Thinking on 2025-09-10. Original Post: It would be very useful to be able to change Group settings via actions. For example: Group/Ungroup Clips play together or not settings Mutually exclusive settings This would make for much cleaner templates and allow for a flexible looping workflow all on one page without needing to have multiple versions of clips to accomplish different workflows.
1
·

under review

Per-Action Colors & Dynamic Widget Text on a Single Button
Description: Allow a single button to change both its color and its label/icon per action, event, and state (e.g., cycle through “Record” → “Play” → “Stop”), with expression-driven control for fully dynamic text. Problem: Multi-purpose buttons look identical and keep the same label, forcing extra buttons or slow reading of tiny text. That wastes screen space and increases on-stage mistakes. Proposed Solution: Per-action style & label: For each action/event (press, release, long-press, double-tap, hold), set Color, Text, Icon, Text Color, and Effects (blink/pulse). State awareness: Bind style/label to toggle state, radio/stepper index, transport/clip state. Dynamic text: Support expressions/tokens (e.g., transport.isPlaying ? "Stop" : "Play" , {indexName} , {clip.state} ). APIs & actions: Actions to Set Widget Label/Icon/Color , Cycle Mode , Show Last Result ; variables widget.label , widget.modeIndex , actionLastSucceeded . Transitions & priority: Short fades (ms/beats); success/error feedback; priority rules for overlapping styles. Accessibility & presets: Auto-fit, compact/pill styles, large text, high contrast; reusable presets (e.g., “Record/Play/Stop”, “Clear/Solo/Mute”). Benefits: Fewer buttons, more usable screen space. Immediate, at-a-glance understanding of what the button will do and what just happened. Faster, safer live operation with one button cycling multiple roles. Examples: Transport combo: Idle = red “Record”; after recording = green “Play”; during playback = gray “Stop”; amber blink during count-in. Mode cycler: One button steps Monitor → Overdub → Replace ; label and color follow the current index. Utility: Short-press Mute (blue “Mute”), long-press Solo (yellow “Solo”), double-tap Clear (orange with brief success pulse). This summary was automatically generated by GPT-5 Thinking on 2025-09-07. Original Post: Different colour per action on a single button When using a single button for more than one action for better visual feedback state. Example. Using a press action on a single button widget with a green colour to play a clip and a long press action to record the clip on the same button.the button's colour should turn green when the press action is triggered and red when the long press is triggered.that way we can have a better visual feedback state on the button.The option could be placed on the action menu near the action to open the colour menu.
3
·

under review

Load More