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

musician playalong mode / voice IDs- ideas #142

Open
binary1230 opened this issue Nov 18, 2023 · 1 comment
Open

musician playalong mode / voice IDs- ideas #142

binary1230 opened this issue Nov 18, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@binary1230
Copy link

First: this player is such an amazing technical feat and is so easy to use. I've been using it for years, thanks so much for gluing together so many disparate and opinionated music libraries into a cohesive, easy to use, and really smooth/easy interface.

I'm a musician (and a dev) and find myself using this player to mute voices on tracks and play along (like, muting the leads vs drums vs bass)

I was considering how difficult it might be to implement the ability to implement a set of global "play along mode" settings. This could be something like "mute all drums" or "mute bass" and it would work across supported/known songs in the catalog.

The fun part of that is, of course, there's no standard amongst songs (even in the same game, or even within the same song sometimes) for which of their voices are part of which categories.

So, we'd have to create some kind of way to take each track and "tag" the voices.


So for example, for FF6: The Decisive Battle
https://chiptune.app/?play=Nintendo%20SNES%2FFinal%20Fantasy%20VI%2F124%20The%20Decisive%20Battle.spc

The map could look something like this:
[ DSP1 => [ instrument=>[Strings, High, Melody], role=>[Lead] ]]
[ DSP2 => [ instrument=>[Organ], role=>[Lead] ]]
[ DSP3 => [ instrument=>[Bass], role => [Rhythm, Bass] ]]
[ DSP4 => [ instruments=>[Kick, Snare], role => [Rhythm, Drums] ]]
[ DSP5 => [ instruments=>[Strings, Low, Harmony], role => [Rhythm, Drums] ]]
[ DSP6 => [ instruments=>[Organ, Harmony], role => [Rhythm] ]]
[ DSP7 => [ instruments=>[Cymbals], role => [Rhythm, Drums] ]]
[ DSP7 => [ instruments=>[Hi-Hat], role => [Rhythm, Drums] ]]

Oh but... crap DSP5 it also turns into harmony guitar, and DSP1 and 2 trade off when they are lead vs rhythm parts haha :). to do it right, would have to add some timestamps to each tag.


But, just being able to tag 'Rhythm' vs 'Leads' vs 'Bass' vs 'Drums' would cover a lot of ground.

It could be something where this is a library users could build over time by submitting their preset assignments one song or album at a time.


Then when you're in play-along mode, you select a preset of categories (like "I want to hear everything except drums" or "turn off the leads"), and it remembers that as it goes from song to song.

I'm sure that's a giant project, I was actually thinking about taking a shot at a basic version of this, if you had any suggestions for where to best store the meta-data (is there already some kind of tagging system with the catalog stuff? I'm unfamiliar with the codebase)

@mmontag
Copy link
Owner

mmontag commented Nov 24, 2023

This is a fun idea, but yes very ambitious.
It might make more sense as a top-down music theory product like Hooktheory.

To answer your question, there is no structured metadata storage in chip player. All the metadata comes from the files. I don't have a database yet so I would just approach this with json files or something.

@mmontag mmontag added the enhancement New feature or request label Dec 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants