Michael Gregorius

Results 192 comments of Michael Gregorius

I can confirm this problem. On my machine the CPU load also increases over time which really baffles me because if someone told me to explicitly implement such a behaviour...

Here's a profiling result when replacing `ADSR::value()` with `return 1.;`: ![3825 - valgrind adsr quick return](https://user-images.githubusercontent.com/9293269/30873249-d2674e72-a2ec-11e7-998d-948259c29657.png) In this case it's dominated by calls to `GigInstrument::play` and `GigInstrument::loadSample`.

Here are the full profiling results: * [callgrind.out.10639.zip](https://github.com/LMMS/lmms/files/1334053/callgrind.out.10639.zip) * [callgrind.out.14521.zip](https://github.com/LMMS/lmms/files/1334055/callgrind.out.14521.zip)

@softrabbit You are right that it has to do with the disposal of the `GigNotes`. The problem seems to be that every note is played for 10 seconds before it...

I have replaced the original GIG file used in my testing (found here: https://drive.google.com/file/d/0B8RY2vt8PBm8NV9qN3Y2LU0tRUU/view) with another GIG file and cannot reproduce the problem anymore. Here's what I did: 1. Download...

> So I still think that this is 100% a bug in LMMS. I did some further investigations. The problem is caused in part by the file and in part...

There is already a test that checks if all samples have been played. It can be found on [this line](https://github.com/LMMS/lmms/blob/4d26654534a4ac136734ecc89e16e2c3be02d868/plugins/GigPlayer/GigPlayer.cpp#L383). However, it's coupled with the additional condition `it->isRelease == true`...

The links are all dead. So it's a bit of a question if the issue can be reproduced at all. I cannot find the files on my local machine anymore.

For me it also compiles and works if I simply replace the code with the symbols: ``` static std::array s_noteStrings { "C", "C♯ / D♭", "D", "D♯ / E♭", "E",...