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

Available chord progressions #95

Open
RustoMCSpit opened this issue Mar 12, 2024 · 8 comments
Open

Available chord progressions #95

RustoMCSpit opened this issue Mar 12, 2024 · 8 comments

Comments

@RustoMCSpit
Copy link

so i could play chords i want looped and then i could do melodies on top

@juleskers
Copy link
Collaborator

juleskers commented Mar 16, 2024

I'm not in favour of this idea, but won't close it just yet until @nicolasbrailo and @pserwylo have had a say.

Given that the current app has zero understanding of beats, or even time at all, there is no foundation to build upon.

Additionally, the UI required for e.g. loop resetting, clearing button, displaying where in the current loop we are, etc would turn this app from a child's toy into a music workstation, which I don't think is a good direction for PianOli.

@RustoMCSpit from the overall direction of your (good!) suggestions (thanks for being involved!) I get the impression you are looking for something far more capable than the children's toy that is PianOli. Have you had a look at https://onlinesequencer.net/ yet? That is a complete, browser-based midi sequencer, far more capable than PianOli is ever hoping to be.

@RustoMCSpit
Copy link
Author

mmm, well maybe a good idea then would be to include https://github.com/ldrolez/free-midi-chords and let users see what notes are being played by shading the note as pressed. this would let users play with putting melody over chords and could be put below "Available melodies" as "Available chord progressions"

@RustoMCSpit
Copy link
Author

im chaging the title

@RustoMCSpit RustoMCSpit changed the title remember what i play and loop it Available chord progressions Mar 16, 2024
@juleskers
Copy link
Collaborator

juleskers commented Mar 16, 2024

Ah, thanks for including that link, that really clears up what you were getting at.

Some form of "background beat" I think would fit, and now that you mention it, is also commonly seen on physical children's toys, so it would definitely fit our audience.

I also think "play the following hardcoded notes repeatedly" is far more achievable than "loop arbitrary notes from user input".
We could even cheat and make a single long recording of the beat, and repeat that (which is trivial in the android API, and would sidestep all the timekeeping from our code)

I also like how a metronome / background beat provides a natural learning progression from "hitting the screen makes noise" to "making noise with rhythm".

@RustoMCSpit
Copy link
Author

I also like how a metronome / background beat provides a natural learning progression from "hitting the screen makes noise" to "making noise with rhythm".

well then with the chord progression youd have to be able to input a bpm. you could also have it alternate between two chord progressions every 4 bars

@juleskers
Copy link
Collaborator

As a side note, I am having to look up about 70% of the musical jargon you use, and it's a good learning experience :-)
I appreciate how your musical background is helping us think more in the direction of musical education!

Links for other musically-challenged (did I do a good job duck-duck-go-ing?:

As for the feature request specifically, I am struggling a bit on how to chart a path towards the "full" feature set.

  1. chord progressions have the advantage that they don't require additional sound samples, but seem to have a very deep configurability hole. as in: a musicial power user would want lots of knobs to turn to make it "sound good", "pleasing" and "interesting". I personally feel very overwhelmed at the breadth of this, and I don't see a middle ground between "uselessly limited" and "full-on composing configuration", but that is likely my extremely-limited musical background showing.
    So far, I have learned:
    • at which BPM
    • Which chords is played (e.g. C-major, G-minor)
    • Which progression(s) / inversions are chained (i.e. is it always C F G C F G .., or do we "mix it up")
    • Maybe alternate (in what sequence?) with a secondary chord?
    • There even seems to be something called "circle progressions"
  2. A simple metronome would perhaps be a good "minimal viable product" for "playing something automatically at all".
    • would need two new samples, one "accent" tick for the primary beat, one "normal" tick for the others (e.g. in 3/4 time: TICK-tick-tick, TICK-tick-tick)
    • Configuration knobs aren't too bad: BPM and time (3/4, 4/4, 3/8, others?)
  3. a 'cheat' alternative could be to provide a small selection of hardcoded "background beats" (for example "simple metronome 3/4", "simple metronome 4/4", "jazzy", "pop" and "rock") as long audio tracks, that loop forever.
  • Advantage: no time-keeping needed whatsoever in our code
  • Disadvantage: no time-keeping in our code, so no incremental progress towards the other features
  • Disadvantage: no BPM options, since I don't think the Android audio API provides playback-speed options (at least not without distorting the frequencies)
  1. Full on looping of user-input is a milestone I want to list for completeness sake, but I think it's too far beyond the current capabilities of our children's toy to delve to deep in its design. Options 1+2 would however help in building some foundations in that direction.

@RustoMCSpit
Copy link
Author

we could just have the user select a chord progression from https://github.com/ldrolez/free-midi-chords and input a bpm and have it loop as a minimal viable product.

we can make it more technical down the line

@RustoMCSpit
Copy link
Author

RustoMCSpit commented Mar 16, 2024

circle progressions

do you mean this? https://www.youtube.com/watch?v=CqEPCpYywVg

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