Initial implementation for two additional methods in AutomatableModel, AutomationPattern:
These methods are used to fetch the automated value of a model at a given MidiTime
These are still untested but that shouldn't be a problem since they aren't actually used by anything yet... but I'll be doing some testing and bugfixing (if needed) for them later.
These will be an important step in making sampletracks eventually be reliably playable from any position, and more generically, being able to reliably convert MidiTime to real time. Of course they can be useful for other things too (not sure what though, yet).
Kicker: new UI / graphics, also some additions:
- Envelope length is now temposyncable and has higher maximum
- Distortion is divided to start/end knobs for a simple distortion envelope
- Everything backwards compatible
Kicker: a bit of an additional GUI tweak
Move the initialization of BandLimitedWaves into engine.cpp
Since we now provide the wavetables as pre-generated files, there's no delay caused by their initialization
so we can move it to the startup of the software. I thought engine.cpp is the best place for this, it makes
conceptually more sense than main.cpp IMO.
This way each instrument that wants to use them in the future won't have to call the initialization function
separately, making things a bit easier.
InstrumentFunctions: Add power chord
Aka. 5-chord, simple 5th interval chord. A very simple addition and something I've always wondered why it's missing from the very extensive huge list of chords and scales.
Merge pull request #736 from diizy/powerchord

InstrumentFunctions: Add power chord
Merge pull request #727 from diizy/kicker

Kicker: new UI / graphics, also some additions:
Merge pull request #734 from diizy/bandlimit

Move the initialization of BandLimitedWaves into engine.cpp
Merge pull request #720 from diizy/master

Initial implementation for two additional methods in AutomatableModel, A...
DummyEffect: removed inline specifiers, fixed header guard identifiers
EffectChain: remember original effect plugin data when loading dummy plugin

We don't want to loose the settings of an effect plugin even if it's not
available and thus can't be instantiated. Therefore remember original
settings data and save them back properly.

Partly closes #733.