You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CoilSnake currently assumes all BRR samples have an AddMusicK-style header at the beginning (two bytes with the loop point). It's possible to check for this header by seeing whether len(brr_data) % 9 is 0 or 2, but CoilSnake doesn't check that:
raiseInvalidUserDataError("instrument BRR '{}' doesn't exist in instrument pack directory".format(filename))
inst.sample=brr_data[2:]
inst.sample_loop_offset=brr_data.read_multi(0, 2)
As a result, if the user takes the direct output of many ordinary BRR sample converters (Bregalad's brrtools excluding some forks, kleinesfilmroellchen's BRR converter, etc), CoilSnake silently corrupts them. At the very least, it should check file size invariants if only headered samples are supported. But since it's easy to check the format, it also might make sense to just support those samples and use a dummy loop point. (Maybe with a non-fatal warning message if the sample ends with a "loop" block?)
The text was updated successfully, but these errors were encountered:
CoilSnake currently assumes all BRR samples have an AddMusicK-style header at the beginning (two bytes with the loop point). It's possible to check for this header by seeing whether
len(brr_data) % 9
is 0 or 2, but CoilSnake doesn't check that:CoilSnake/coilsnake/model/eb/musicpack.py
Lines 457 to 466 in 824dcc8
As a result, if the user takes the direct output of many ordinary BRR sample converters (Bregalad's brrtools excluding some forks, kleinesfilmroellchen's BRR converter, etc), CoilSnake silently corrupts them. At the very least, it should check file size invariants if only headered samples are supported. But since it's easy to check the format, it also might make sense to just support those samples and use a dummy loop point. (Maybe with a non-fatal warning message if the sample ends with a "loop" block?)
The text was updated successfully, but these errors were encountered: