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

brainstorm: possible items for second release (0.2) #1

Open
taylorbf opened this issue Aug 21, 2015 · 4 comments
Open

brainstorm: possible items for second release (0.2) #1

taylorbf opened this issue Aug 21, 2015 · 4 comments

Comments

@taylorbf
Copy link
Collaborator

  • setKey could be postponed until 0.2. It is not totally necessary for 0.1
  • .search() currently searches the titles of the scales. It could be nice to have a function that searches the descriptions of the scales. For example, some scale descriptions contain the word "Byzantine" but no titles do.
  • I am interested in the possibility of creating a single UI component to accompany this library. I imagine a matrix where each row is an octave of the scale, each column is a note in the scale, and certain intervals are highlighted for reference (for example, if the scale contains a perfect 5th (3/2) over the tonic, that cell would be red).
  • Some way to export builds of tune.js that only contain one or two scales (of a user's choice). I don't mind having a 1MB library, but some users might, since any application is likely to only use a few of the 3000 scales.
  • a responsive / phone-friendly scale archive
  • visualizations or ratio descriptions in the scale archive (could be on separate pages, linked to from the main page).
@taylorbf
Copy link
Collaborator Author

input modes for .note() :

  • "midi" mode (what we have currently)
  • "degree" mode: first argument is scale degree, second optional argument is octave.

examples of "degree" mode:

tune.note(0) is tonic.

tune.note(2,1) is the second scale degree, 1 octave up.

tune.note(-1) is the note below tonic.

tune.note(5,-2) is the fifth scale degree, two octaves down.

does this accomplish a clarity and ease of use? goal is for something as immediate as "C4" format.

@taylorbf
Copy link
Collaborator Author

I wonder if a .fifthAbove() or more generally like a .plus(x) or .offset(x) could be interesting.... as in a way to momentarily tonicize a note without calling .tonicize()

Case: Say I'm composing a piece in Partch mode and I want to play notes 23, 24, 25, but then I want to play note 25 w/ a second note that's a 5th above it. That "fifth above" might not exist in the scale, or I may not easily know what it is. So a helper function would be great.

tune.note(23)

tune.note(24)

tune.note(25)

tune.note(25); tune.note(25).offset(x)

@abbernie
Copy link
Owner

It would be nice for there to be a way for users to compose their own scales and add it to the archive. As it is, they could add their scale manually to the scales JSON. It might be necessary to store the scales in a database. This would make the program as whole smaller in size.

This could possibly address the fifthAbove()/offset() idea. If you want a certain scale with an extra interval, just copy that scale and add to it.

@abbernie
Copy link
Owner

+1 for the matrix UI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants