Skip to content

Richer arp variations: ping-pong-with-repeats & odd-then-even #8

Description

@philoking

Summary

Add two more arpeggiator motions to round out the set. Today arpStep() in js/generator.js supports up / down / updown / random (driven by state.arpDir). Add ping-pong with repeated endpoints and odd-then-even.

Why it fits

Small, cheap, high-flavour. The current "updown" already ping-pongs but clips the top and bottom notes; repeating the endpoints gives a different, rounder feel, and odd-then-even is a classic arp shuffle that reorders the same chord tones into a fresh contour — more variety from the notes already being spelled.

Proposed scope

arpStep(len, dir) in js/generator.js

  • pingpongRep — like updown but the first and last notes are played twice at the turnaround (no skipped endpoints).
  • oddeven — indices 0, 2, 4, … then 1, 3, 5, …, wrapping continuously across bars (keep the existing "flows continuously" behaviour via the persisted arpIdx).

UI (js/app.js)

  • Add both to the arp-direction select (currently ['up','down','updown','random']).
  • Update Style presets only where a style clearly wants the new motion (optional).

Where

js/generator.js (arpStep cases), js/app.js (arpDir options).

Done when

  • Both new motions are selectable and flow continuously across bar lines.
  • No regression to existing up / down / updown / random.

Open questions

  • Worth making arp direction per-part (it's currently a single global state.arpDir) while we're here, or keep that for a separate change?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions