What's new in version 2.0? How to migrate? - hydrogen-music/hydrogen GitHub Wiki
In version 2.0 of Hydrogen a lot of things will be changed. There will be some new features but most changes have been done to fix long standing bug and inconsistencies as well as to modernize the UI.
For a full list see our CHANGELOG.md. (A proper update of the documentation will be done once we have a stable release candidate).
In this document the most essential changes and potential obstacles during migration will be outlined.
Before you migrate to / run version 2.0
For version 2.0 the underlying structure of our drumkit, pattern, and song XML files had to be changed. Files saved in this version won't be compatible with most previous releases. Since Hydrogen does create and load autosave files for the current song and updates all your drumkits during startup, you might not be able to use them with the version installed on your system anymore once you tried v2.0.
Therefore it is probably a good idea to backup your songs, pattern, and drumkits first (usually they reside in the .hydrogen/data folder within your user's home directory).
However, the latest version in the 1.2.x release line will be able to handle all files created using v2.0.
Instrument types in Drumkits and Patterns
The main new feature in version 2.0 is the introduction of drumkit-independent patterns. Previously, each pattern was written for one specific drumkit. When loading another kit or importing the pattern into a song featuring a different kit, notes were mapped to the new instruments based on their order. This means, notes programmed for the first instrument of the original kit will be assigned to the first instrument of the new kit, those for the second to the second and so on. But if the previous drumkit used a kick as first instrument and the new one a snare, the whole pattern will be bricked.
Instead, starting from version 2.0 each instrument in a drumkit will feature a new property: an (instrument) type. Now, the author of the drumkit is responsible for assigning a meaningful type to each instrument and the mapping of notes will be type-based. This way, a note programmed for an instrument of type "kick" will be mapped to the "kick" of any other drumkit regardless of the instrument's position in the kit (as long as its types are set up properly). For all kits we host ourselves, we provide default types installed as .h2map files when installing v2.0. But for your custom, local ones you have to assign them yourself. You can do so in the (right-most) sidebar of the pattern editor or within the Drumkit Properties dialog in the "types" tab. If no types are present, mapping will fall back to the order based one of previous versions of Hydrogen.
Our pattern files .h2pattern will change too and incorporate the new "type" property. This way you can finally create a collection of patterns you can use in any song and for any drumkit. We will also provide a new repository for songs and patterns along with a new online import dialog allowing you to search and download patterns from within Hydrogen as well as to contribute and share your patterns with the community. It's not done yet but we already have an initial seed of almost 300 patterns.
Component handling
Since version 0.9.7 Hydrogen does feature drumkit/instrument components. But the whole thing was conceptional quite complex and hard to understand. It was a mixture of two things: let's call them instrument components and drumkit components.
Instrument components were an additional abstraction level in each instrument of a drumkit allowing to bundle multiple layers/samples. You could for example create a multi-layered component for a snare representing samples recorded by a mic positioned a dozen centimeters above the snare and another component containing recordings of the mesh right below it. In older versions of Hydrogen you would had to create two instruments for these set of samples. Since 0.9.7 you can put them into one. But this feature was never properly integrated into the instrument editor and was very hard to use.
Drumkit components were static aux channels introduced for all instrument components. This means, a separate fader strip was added to the mixer for each instrument component and all instruments had to have the same components. When having one instrument component represent direct recording and another one some room mics, this would make sense. But for the example above it did not as it forced all other instruments of a kit to have an empty "mesh" component.
For version 2.0 we dropped the drumkit components and reworked the layer view of the instrument editor to properly represent the instrument components. All instruments are now fully self-consistent and controlled by a single strip in the mixer. Each instrument can have an arbitrary number of components regardless of the structure of other instruments of the same kit and mixing the volume of those components will be done in the "Components" section of the instrument editor.