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

(unimplemented) group channel option breaks part midi encapsulation #1401

Open
baconpaul opened this issue Oct 2, 2024 · 1 comment
Open

Comments

@baconpaul
Copy link
Contributor

EvilDragon — Today at 8:58 AM
btw
> (Image where I say that hey i forgot groups had channel overrides in omni mode)
per group override is supposed to be regardless of omni mode

baconpaul — Today at 9:00 AM
so a group sitting in part 3 which is listening to midi channel 7 could say 'please give me midi channel 9'
so all parts need all midi always

EvilDragon — Today at 9:00 AM
yes

baconpaul — Today at 9:00 AM
well
that sucks

so we need to move from part having channel to part having channel and a channel mask. That channel mask is set when a group feature changes. And then you match against the mask.

@baconpaul
Copy link
Contributor Author

baconpaul commented Oct 2, 2024

EvilDragon — Today at 9:03 AM
how badly

baconpaul — Today at 9:04 AM
well if i do it stupidly it would suck very badly. if i do it non stupidly it sucks a little less badly but is harder

the problem is if you do it naively for every midi message you have to trvarese every group and right now we prune by part. So that won't work

So what we need to do is move a part from having a channel or omni to having a channel or omni; and a channel mask.

That channel mask is a cache of the union of the channels of the groups and the part of the channel.
then when you edit or unstream a group you reuild the part channel mask so you don't have to traverse at midi time

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

1 participant