You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Click accents cannot follow a song in an odd meter #593
The click panel offers four fixed meters -- 2/4, 3/4, 4/4 and 6/8 -- and nothing else. A song in 5/4, 7/8, 9/8 or anything less common cannot be accented correctly from the transport, so the click either lands on the wrong beats all the way through or has to be left on Auto and hope the detector guessed right.
Auto is not a general answer. It follows the bar marks the detector found, and on an odd-meter track those are exactly the marks most likely to be wrong or missing. When they are missing, Auto is disabled entirely and the only remaining choices are the four presets and Off.
beats_per_bar is validated as ge=1, le=32 in app/api/jobs.py.
The beat-grid editor already exposes a free <input type="number" min="1" max="32">, so a user can set 7 per bar today -- just from a different panel, per region, rather than as a click setting.
computeCountIn derives its clicks as countBars * beatsPerBar, and count_in_beats in app/pipeline/click_render.py mirrors it. Both are already meter-agnostic.
The click render cache key includes the bar signature, so custom values invalidate correctly rather than serving a stale render.
The <select> in static/index.html is the only thing narrowing that range.
Constraints for whoever picks this up
The same field carries two sentinels: -1 is Auto and 0 is Off. A free-entry control must not let a typed value collide with either.
The denominator in the existing labels is cosmetic. "6/8" is stored as the integer 6, and there is no note-value concept anywhere in the app. Offering "7/8" therefore means seven beats per bar, not a subdivision change. Making the denominator real is a much larger change that reaches click rate, count-in tempo and the render cache key, and is not what this issue asks for.
Anything typed has to be clamped to 1..32 to match the backend, and clamping should correct the value rather than reject it.
New strings must be added to all ten language tables in static/js/i18n.js, not just en. The fallback silently serves English for a missing key, so a gap here is invisible while testing.
I don't know if this is a helpful distinction, but I play a lot of odd time signature music, and my soltion in the DAW is to simply set the time signature to 1/4 so that there is no accent. The ability to set a proper click would be ideal but just having something where there are no accents and therefore cannot be wrong is a good fallback.
Activity
MetalMan1245 commentedon Sep 7, 2026
I don't know if this is a helpful distinction, but I play a lot of odd time signature music, and my soltion in the DAW is to simply set the time signature to 1/4 so that there is no accent. The ability to set a proper click would be ideal but just having something where there are no accents and therefore cannot be wrong is a good fallback.
Set the count-in length, and accent a song in an odd meter (stemdecka…