Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generated ED tunings don't cover required ranges #25

Open
j5v opened this issue Jun 18, 2023 · 1 comment
Open

Generated ED tunings don't cover required ranges #25

j5v opened this issue Jun 18, 2023 · 1 comment
Labels
bug Something isn't working enhancement New feature or request

Comments

@j5v
Copy link
Owner

j5v commented Jun 18, 2023

Fix: For ED or generated repeating tunings, dynamically infer notes outside the explicitly defined range 0 .. Repeat ratio. Don't overwrite user-customized notes. Indicate inferred notes in the UI.

Background

Most tunings are cyclic, defined explicitly over a Repeat ratio. Any notes outside the explicit range should be inferred for display and analysis.

Currently for ED tunings, we generate notes in the range -1 octaves .. +3 octaves, and export only the range -1 to , inclusive. While this works for most scenarios, it can be tricky to infer the provenance of individual notes (especially after editing), and we currently don't properly cover the display range for all sensible Repeat ratio values.

We already set tunings[].notes[].isDefined, but need some analysis about the instantiation of implied 'ghost' notes for on-demand drawing and UI interactions, and whether they should persist in the tunings[].notes[] array - and if so, do we use tunings[].notes[].isDefined to distinguish explicit from implicit notes?

Suggestion

Whenever view parameters change (e.g. zoom bounds on the tuning rows, or analysis), expand/re-generate notes, setting .isDefined = false. This needs a function to solve boundary frequency or count limits for scale generation.

@j5v j5v added bug Something isn't working enhancement New feature or request labels Jun 18, 2023
@j5v
Copy link
Owner Author

j5v commented Jul 1, 2023

TBC:
solve n, for x=y^(n/m)
n = (m log(x))/log(y)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant