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

Different instruments in patterns possible? #679

Open
SchotenAndi opened this issue Dec 9, 2018 · 6 comments
Open

Different instruments in patterns possible? #679

SchotenAndi opened this issue Dec 9, 2018 · 6 comments

Comments

@SchotenAndi
Copy link

SchotenAndi commented Dec 9, 2018

Hydrogen version * : 0.9.7
Operating system + version : Windows 7


One question (feature request):
Because of the clarity I would like to see only the used instruments in each pattern. But if I delete one instrument, it is not available for the hole project anymore. In the german manual there is described a function to "lock" an instrument, but I can't find it in the newest version of hydrogen.
So, It would be very nice to define specific instruments from one (or even different?) drumkits for each pattern. It would be also nice, if the instruments in each pattern could be arrangable with "up" and down" buttons as in the song editor.
In practice, I could imagine, that the user has the option to load a drumkit for the hole song or for the selected pattern. Further he could change the listed instruments in each pattern as he like. The changes are pattern specific.

I hope my english is understandable ;-)
THX in advance!

@theGreatWhiteShark
Copy link
Contributor

The problem with having different drumkits in one song is that there has to be a context switch and all new samples have to be loaded when moving from one pattern to the next. This, however, is not realtime-save and would produce XRUNS (glitches in the audio engine). A better solution would be to incorporate all instruments into a single (new) drumkit and only use specific instruments per pattern.

You can already rearrange the instruments via drag-and-drop using your mouse.

I get what you mean. Usually drumkits have more instruments than can be displayed and you spend loads of time scrolling around. Apart from rearranging I have no got idea yet how to solve this issue. If one would have a button to hide them, the instrument line had to remain somewhat intact to activate them again

@trebmuh
Copy link
Member

trebmuh commented Jan 10, 2021

(see #1087)

@charlescochran
Copy link

I recently was trying to figure out how to load drumkits on a per pattern basis (see #1087). It seemed like an intuitive thing to do.

@theGreatWhiteShark has a good point about the non-realtime-friendly implications of reloading instruments every time you switch patterns, but I still think an instrument hiding feature could be implemented. Here's what I'm imagining:

When you right click a drumkit to load it, there would be three options: 1. Load and replace (what loading does now). 2. Load as additional drumkit (would load all of the instruments in the drumkit, adding to those already loaded, and organize them under a separate label). 3. Load instruments (would load all the instruments, adding to those already loaded, without organizing them under a separate label. This is like what dragging-and-dropping each of the instruments in a drumkit into the pattern editor does now.)

In top-left corner of the pattern editor, there would be a drop down for which instruments are visible. It would have All instruments and then the names of each of the labels (which probably correspond to the names of each of the drumkits that you've loaded via Load as additional drumkit). For each pattern, you could separately choose which label to view.

Additional things:

  • It might be useful if you could right-click an instrument and choose Hide. Changing the view back to All instruments would show all hidden instruments. You could also right-click an instrument and choose Always visible to make it always visible (even when you are viewing a different label/drumkit).
  • There could be the ability to create custom labels (kind of like "folders", except a given instrument can have multiple labels). Then you could right click an instrument and choose Add to > [name_of_label].

As an alternative to this label idea, there could just be a separate openable window (for each pattern) which lists all the loaded instruments and a checkbox for each of them which controls their visibility.

(If it wasn't clear, all of this pertains only to hiding/showing instruments. To satisfy realtime requirements, all the instruments in the song would be loaded, even if not visible. Also, my apologies if I used the term "drumkit" to mean "soundlibrary".)

@theGreatWhiteShark
Copy link
Contributor

Hey @charlescochran

There will be some bigger changes coming up this year ( see https://github.com/hydrogen-music/hydrogen/projects/2 ). Before there isn't at least an outline of how to implement these we can not go on here. But I will add it to the project so we do not loose sight of it.

@charlescochran
Copy link

Gotcha, thanks.

@theGreatWhiteShark
Copy link
Contributor

There will be some bigger changes coming up this year ( see https://github.com/hydrogen-music/hydrogen/projects/2 ). Before there isn't at least an outline of how to implement these we can not go on here. But I will add it to the project so we do not loose sight of it.

Well, wasn't that exact year and they are not entirely done yet. :D

Having multiple kits in one song was already ruled out (see #1087).

In top-left corner of the pattern editor, there would be a drop down for which instruments are visible. It would have All instruments and then the names of each of the labels (which probably correspond to the names of each of the drumkits that you've loaded via Load as additional drumkit). For each pattern, you could separately choose which label to view.

Additional things:

It might be useful if you could right-click an instrument and choose Hide. Changing the view back to All instruments would show all hidden instruments. You could also right-click an instrument and choose Always visible to make it always visible (even when you are viewing a different label/drumkit).
There could be the ability to create custom labels (kind of like "folders", except a given instrument can have multiple labels). Then you could right click an instrument and choose Add to > [name_of_label].

As an alternative to this label idea, there could just be a separate openable window (for each pattern) which lists all the loaded instruments and a checkbox for each of them which controls their visibility.

We would need to change a lot in the pattern editor to provide an easy-to-use and intuitive UX for those features. Hiding e.g. 15 instruments in a row using a right-click menu will cause an almost physical pain ;) But the instrument editor has to be rework anyway in order to properly integrate the component feature introduced in version 0.9.6 and maybe we can make the new design an additional visibility state or grouping feature in mind.

My biggest question mark right now is where to store those states? Not within the .h2pattern or drumkit.xml files. This would break forward compatibility for older versions (pattern created in e.g. 1.3.0 could not be loaded with version <= 1.2.X). Then there is just the .h2song left.

What happens when loading a different kit? Will all instruments be visible again or will be e.g. the kick of the new kit be hidden in case it was hidden in the previous one? The latter would feel more intuitive for me and this is something we could realize with the drumkit map feature introduced for v1.3.0. (Via the drumkit map we could also store the visibility state in a .h2song file).

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

No branches or pull requests

5 participants