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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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