LMMS / lmms

Cross-platform music production software
https://lmms.io
GNU General Public License v2.0
8.1k stars 1.01k forks source link

Mallets no sound under Tubular Bells #2455

Closed jackokring closed 8 years ago

jackokring commented 8 years ago

The first time a selection is made of a setting lower than tubular bells, a sound similar to a mangled buffer is played, then nothing ... until one of the working ones is selected. Further more the mangle is heard just once, and never upon reselection of a non working variety.

Edited @tresf

Umcaruje commented 8 years ago

LMMS 1.0.3 is an outdated version and its not supported. Please check if this bug exists on 1.1.3, which is the latest stable version. If you expirience the bug on 1.1.3, please offer steps to reproduce and your OS information.

You can get the latest version over at https://lmms.io/download/

jackokring commented 8 years ago

Will check when I get the master branch to compile. Currently cmake errors. Debian 8.2 latest apt-get toolchain, forked repo of master.

jackokring commented 8 years ago

git checkout stable-1.1 ... cmake .. -DWANT_VST=no make

So I have 1.1.3 still no mallet sound beyond tubular bells

tresf commented 8 years ago

Reminds me slightly of this https://github.com/LMMS/lmms/pull/1529.

Side note.... @jackokring if you wrap your command/codeblocks in:

[stuff]

tags, they'll display nicely. e.g.

echo "foo"

or for c++

[stuff]
jackokring commented 8 years ago

OK, minor update, on inspection (listening) of the sound not output, the first time a selection is made of a setting lower than tubular bells, a sound similar to a mangled buffer is played, then nothing ... until one of the working ones is selected. Further more the mangle is heard just once, and never upon reselection of a non working variety.

Umcaruje commented 8 years ago

Reproduced on elementary OS Freya on the master branch.

None of the settings lower than Tubular Bells produce sound, but when I check the 'Bowed' checkbox, they start making a glitched sound, as if they are stuttered ...

jackokring commented 8 years ago

I check the box and the sound worked, so seems to me the box is implicitly ticked and should be removed from the GUI.

tresf commented 8 years ago

@jackokring can you please retitle and fix the original description?

zonkmachine commented 8 years ago

So it's the bowed instruments then. It could be the stk package.

zonkmachine commented 8 years ago

Yeah, this is in 0.4.14 too.

@musikBear You reported on this issue on the mailing list around the 1.0.3 release. What version of stk do you have?

tresf commented 8 years ago

He'll have whatever was bundled at the time of 1.1.3/mingw32

zonkmachine commented 8 years ago

OK. From the release notes for stk 4.4.3 Updates to Bowed class (thanks to Esteban Maestre!)

This places us in time around Ubuntu 12.04 and lmms-0.4.10

zonkmachine commented 8 years ago

lmms-0.4.2 / stk-4.2.0 Same issue, so the changes in stk above had nothing to do with it.

musikBear commented 8 years ago

@zonkmachine / current Systems Tool Kit c++ is the one @tresf bundled in the test RC g23d2824. This RC is '100%' stable for me. The new edit-features in piano-roll are incredible useful (saying that not because i suggested those :p, but current stk is ofcause of no relevance to the one at 1.1.3 release time. If i Can make any kind of experiment, that can be of interests? just let me know

zonkmachine commented 8 years ago

If i Can make any kind of experiment, that can be of interests? just let me know

Yes. Just test mallets and see if you find anything of interest.

musikBear commented 8 years ago

Yes. Just test mallets and see if you find anything of interest.

@zonkmachine Made a testbed on tresf new x32 (1.1.90 gd098a39) with escalating automation for all instrument-dials. I used wave-recording to illustrate the various functionalities. The first series are for the presets: Marimba, vibraphone, agogo, wood1, reso, wood2, beats, two-fixed, clump That all have the same controller-dials Hardness malletsvibraphonehardnessauto16bar

The dial does not change anything. doubt it connected.

Position malletsvibraphoneposauto16bar

The dial does not change anything. doubt it connected.

Stick mix malletsvibraphonestickmixauto16bar

The dial does not change anything. doubt it connected.

Vib Gain malletsvibraphonevibgainauto16bar The dial does not change anything. doubt it connected.

Vib freq malletsvibraphonevibfreqauto16bar Looks fine

Spread Waveform not influenced, but it is ok for *all.

Second series Preset Tubular bells Modulation malletstubularmodauto16bar

Crossfade malletstubularcrossfadeauto16bar

ADSR malletstubularadsrauto16bar Looks fine

LFO speed malletstubularlfospeedauto16bar Looks fine

Third series Presets Uniform-bar, Tuned-bar, glass, Tibetan-bowl These 4 presets is not working at all. They produce no sound unless bowed, but it is only 'noise'. In the case of Uniform-bar extremely loud, and dangerous for ears/speakers. ! Be careful !

zonkmachine commented 8 years ago

@musikBear We got pretty much the same result then. I'll add to this that:

musikBear commented 8 years ago

:+1: very good

zonkmachine commented 8 years ago

@LMMS/developers What I'm thinking about this right now is:

This way you end up with two new instruments that works and has more manageable code.

Edit: An updated Mallets will open older projects wrong because people will have turned the knobs. Even though that had no effect previously it really saved the settings so it will come out wrong.

Fastigium commented 8 years ago

An updated Mallets will open older projects wrong because people will have turned the knobs

Maybe that could be addressed using DataFile::upgrade()?

Umcaruje commented 8 years ago

Maybe that could be addressed using DataFile::upgrade()?

^What Fastigium said, making another version of the same plugin is the wrong approach to this problem imo.

zonkmachine commented 8 years ago

Maybe that could be addressed using DataFile::upgrade()?

I'm sure there's way to manage the update but we need to take care of the other bugs first and they're in code related to/or in, the BandedWG module. https://github.com/LMMS/lmms/pull/2671#issuecomment-195940322 If you find what's wrong in there bump me about it but for now I'm stuck. I just think the most clever way is to roll along with the two spin-offs of Mallets and instead find a way to hide old stuff in the menu and only launch them in project's that already got them and for users who choose to activate all plug ins.

Fastigium commented 8 years ago

If you find what's wrong in there bump me about it but for now I'm stuck

My plate is full with crash-fixing for the moment, but perhaps you might gain some insight by using conditional breakpoints in gdb. They should allow you to halt execution when a spike happens and trace where it might come from (bt full will show you values of local variables). Hope that helps, otherwise I'll see if I can take a peek sometime soon.

zonkmachine commented 8 years ago

OK. I'll try and move my upgrades to Mallets instead and will read up a bit on gdb.

Fastigium commented 8 years ago

You may also find gdb's frame command useful. It allows you to enter the scope of any function in the backtrace and print members of local objects and such. Was invaluable to me in fixing those "index out of range" crashes.

zonkmachine commented 8 years ago

Mallets is now ready for testing. https://github.com/LMMS/lmms/pull/2670

I used the same backward compatibility method as Kicker as I recently worked with it and it's familiar. Most bugs fixed. Mallets seem more to have been abandoned before really completed and left with more or less the preset values from stk modalbar, BandedWG presets turned default off and only Tubular Bells from stk::FM really working full out.

They should allow you to halt execution when a spike happens

I haven't been able to reproduce the spikes.