Hydrogen: I keep setting up custom kits I've saved them, even exported them as a back but when I return to work on them the sounds do not work.

Created on 2 Jul 2018  路  10Comments  路  Source: hydrogen-music/hydrogen

Hydrogen version * :0.9.7
Operating system + version : windows7 sp1 32bit
Audio driver + version :


When I set up a custom drumkit it works great. But if I return later the kits plays no sounds. preloaded kits work fine. I even tryed exporting a kit as a back up and it will not load at all.

_edit: message edited by @trebmuh for a better display_

bug severity 1

Most helpful comment

drumkit.xml does not validate against drumkit.xsd,
thus Legacy::load_drumkit( dk_path ) is called and then save_file( dk_path, true, -1 );
but the rewritten dumkit.xml is still not valid !!!!!
so at the second startup, Legacy::load_drumkit( dk_path ) is used again,
but it is not designed to read the tag within ...

the rewritten drumkit.xml must be valid, I'm on it ...

All 10 comments

@liquidshadows71 : please check if this still happens with 1.0.0-beta1 and report back here.

@trebmuh Hello, I am having the same issue as reported in this ticket. I am using the latest git build (commit 969c42d7faad4db21764012cc2b9508f676feca4), and I'm on Ubuntu 18.04 64-bit (running JACK2 for audio), so I this bug is also cross-platform, and still persists. I also noticed that in all of my non-working imported drumkits, the drumkit.xml file lacks all "layer" tags and anything that was in them. All the actual samples still remain though. I hope that helps this issue get resolved.

@FrictionCow : Do you have a step by step guide to reproduce this issue? I would like to look into it, but at the moment i can't reproduce it

@mauser In my situation, I try to import a local h2drumkit (made in hydrogen 0.9.7) file into the user drumkits. Then I either exit hydrogen, or load a different drumkit, and reload the original drumkit. Either way, there's no sound. And in the hydrogen/data/drumkits/.../drumkit.xml of the imported file, there should be no "layer" parts. Everything else, remains in the drumkit files, just not the layers. The imported drumkit.xml file does contain the newer elements like "image" and "instrumentComponent.
"

I've tried this with older drumkits (0.9.7), and a test drumkit from the current build. It seems that even if I overwrite the imported drumkit.xml with a previously working drumkit.xml, hydrogen overwrites it to delete the "layer" element when the program starts.

hydrogen overwrites it to delete the "layer" element when the program starts

mmm, kind of annoying!

I can confirm this issue. The same happened to me a couple of times with a custom drumkit. However, I was not able to reproduce the problem yet.

Okay, it just happened again and, fortunately, this time I was able to reproduce it and to boil it down to a minimal example using the attached drumkit
testKit1.tar.gz

Steps to reproduce the issue:

  • copy the extracted drumkit where Hydrogen can find it
cp testKit1 ~/.hydrogen/data/drumkits
cat testKit1/drumkit.xml | grep layer | wc -l

4

It still got two layer nodes containing two sound files.

  • open up Hydrogen (I used todays commit bdeed83) and close it again
hydrogen --verbose=DEBUG > h2.log.0.txt
cat testKit1/drumkit.xml | grep layer | wc -l

4

h2.log.0.txt

Still two layer nodes.

  • Finally, open up Hydrogen a second time.
hydrogen --verbose=DEBUG > h2.log.1.txt
cat testKit1/drumkit.xml | grep layer | wc -l

0

h2.log.1.txt

Suddenly, all layer nodes are gone.

Here is what changed in the drumkit.xml file. (I use meld to visualize the changes)

drumkitchange-0

After the first run of Hydrogen some additional additional nodes have been inserted into the original file (left) and the environment containing the layer were restructured (right).

Running Hydrogen a second time did produce the following:

drumkitchange-1

Left is the resulting drumkit.xml from starting Hydrogen the first time. Right are the changes applied when starting it a second time. As you can see, all the layer nodes have just been removed.

That looks great, thanks for your input!!

drumkit.xml does not validate against drumkit.xsd,
thus Legacy::load_drumkit( dk_path ) is called and then save_file( dk_path, true, -1 );
but the rewritten dumkit.xml is still not valid !!!!!
so at the second startup, Legacy::load_drumkit( dk_path ) is used again,
but it is not designed to read the tag within ...

the rewritten drumkit.xml must be valid, I'm on it ...

<Decay>40960</Decay> that was the problem

$ xmllint --noout --schema data/xsd/drumkit.xsd 03.xml
/drumkit}Decay': [facet 'maxInclusive'] The value '40960' is greater than the maximum value allowed ('1.0').

Was this page helpful?
0 / 5 - 0 ratings

Related issues

theGreatWhiteShark picture theGreatWhiteShark  路  13Comments

nathanaelmeister picture nathanaelmeister  路  7Comments

elpescado picture elpescado  路  7Comments

gnzgg picture gnzgg  路  9Comments

trebmuh picture trebmuh  路  10Comments