Commit Graph

693 Commits

Author SHA1 Message Date
NoiseByNorthwest
d448e6743d Ergonomic enhancements for AudioFileProcessor plugin (interactive wave view).
This patch includes:
* sampleBuffer::visualise(): add possibility to specified a range to visualize instead of the whole sample
* add sampleBuffer::sampleRate() and sampleBuffer::sampleLength() getters
* definition of AudioFileProcessorWaveView and AudioFileProcessorWaveView::knob classes for AudioFileProcessor plugin
* knob::getValue() specified “virtual” to allow redefinition in child class  AudioFileProcessorWaveView::knob
* delete audioFileKnob class (made obsolete by AudioFileProcessorWaveView::knob)
* add audioFileProcessor::isPlaying() signal, which is emitted in audioFileProcessor::playNote
* change type of AudioFileProcessorView::m_startKnob and AudioFileProcessorView::m_endKnob (AudioFileProcessorWaveView::knob instead of audioFileKnob)
* replace AudioFileProcessorView::m_graph (QPixmap) by AudioFileProcessorView::m_waveView (AudioFileProcessorWaveView)

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-10-27 22:32:09 +02:00
Tobias Doerffel
370ff26c2b LocalZynAddSubFx: added missing header include
ZASF fails to build with GCC 4.7 due to missing header include.

Thanks to Alexander Liebendorfer for pointing out the issue.
2012-10-27 22:01:08 +02:00
Tobias Doerffel
8b66dfc860 ZynAddSubFX: fixed possible buffer overflow
bankdir could be overflowed in the strncat function since the length
limit is not correctly specified.

Closes #3510466.
2012-05-20 18:55:30 +02:00
Tobias Doerffel
60b93e331e ZynAddSAubFX Microtonal: Fixing formatting of detune values
- Fixes bug that prints values like "4.0123" as "4.123"
(cherry picked from commit 5a1fa4f3c522f2f438e052273a544091133bb0eb)
2012-02-02 22:40:03 +01:00
Tobias Doerffel
59da243fed ZynAddSubFX: Pruning code from static analysis
Static analysis performed with cppcheck and clang
(cherry picked from commit 7540c6b46e2e6158a38464aeb9a8b35fefc3c9a9)
2012-02-02 22:28:44 +01:00
Tobias Doerffel
376f11a6c0 ZynAddSubFX: Env: fixing envelope scaling
Fixing bug introduced in 56d7e2e6ec
2012-02-02 22:21:50 +01:00
Tobias Doerffel
88d0c59903 CALF: revert upstream commit 460642bfae534679b4094e6887714828c90d8172
Upstream commit 460642bfae534679b4094e6887714828c90d8172 removes LADSPA
support from CALF which definitely is not desired for LMMS. Therefore
simply revert it in our sources.
2012-02-02 21:59:45 +01:00
Tobias Doerffel
c1db55c56a CALF: updated up to commit 657b36073cae77d9f0e191a7f09b6b8d2099aade 2012-02-02 21:45:36 +01:00
Tobias Doerffel
6eb708ccee VeSTige/VstEffectControlDialog: fixed spelling error
Fixed minor spelling error.
2012-02-02 20:55:38 +01:00
Tobias Doerffel
2e7e09fd6b ZynAddSubFX: workaround for bug in Win64 GCC
When building LMMS with recent stable versions of GCC it generates
wrong code for the implicit REALTYPE specialization of the template
method stringFrom<T>() (problem in std::stringstream implementation).
By writing a custom template specialization which uses sprintf() the
bug can be circumvented.
2012-02-02 20:21:03 +01:00
Tobias Doerffel
03fcc1b5fc LVSL/RemoteVstPlugin: use big enough buffer when gathering preset names
The RemoteVstPlugin process crashed for plugins with lots of presets
as there was an overflow of the presName buffer. Chosing a bigger buffer
size fixes the problem.

Additionally initialize len variable in loadChunkFromPresetFile().
2012-02-01 23:26:28 +01:00
Tobias Doerffel
1a09828ad4 SID instrument plugin: fixed missing save/load for coarseModels
The coarseModel instances were not saved/loaded. Thanks to Mikobuntu for
pointing out the issue and providing a solution!

Closes #3394109.
2012-01-29 23:52:42 +01:00
Tobias Doerffel
cacc0d6c3e Updated SWH plugins and added missing hermes_filter plugin
There were minor updates in SWH Git repository. Incorporated bug fixes
and added missing hermes_filter plugin.
2012-01-13 22:25:44 +01:00
Tobias Doerffel
0bcd267063 CALF: updated up to commit 022dbc37d9d4bf1af2f33a288844156bdc13d27f 2012-01-13 21:53:25 +01:00
Tobias Doerffel
f4976adcd7 VstEffect: removed unused slot declaration
The openPlugin() slot in VstEffectControls class is not implemented,
therefore do not declare it as otherwise MOC references it.
2011-11-23 13:00:36 +01:00
quadro
d57b20ff2f LVSL: improved preset support
Fixed various bugs and crashes.
2011-11-11 23:58:37 +01:00
Tobias Doerffel
63c1928f57 LVSL: fixed Win32 and Win64 build
Some minor tweaks were neccessary in order to properly build the updated
LVSL on Win32 and Win64.
2011-10-24 23:50:38 +02:00
quadro
4d645b335d LVSL: added support for (automatable) VST controls and VST presets
LMMS VST Support Layer has been greatly advanced as it now features
(automatable) VST controls as well as support for VST presets. This
still needs some work as it crashes with various plugins (e.g. z3ta+).

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2011-10-22 20:17:58 +02:00
Tobias Doerffel
c6051e76b4 ZynAddSubFX: fix crash in Echo effect when changing samplerate
As ZynAddSubFX still uses the horrible approach of storing global
settings (such as the currently used samplerate) in global static
variables the Echo effect will crash when the samplerate is changed
for a previously loaded ZynAddSubFX instance.

As a quick fix the original samplerate used for instantiating and
accessing internal arrays (whose size depends on global samplerate
variable) is saved for each instance and used everywhere instead of
SAMPLE_RATE.

Fixes crash when exporting e.g. Saber-FinalStep.mmpz at a higher
samplerate than LMMS normally runs with.
2011-07-10 01:01:42 +02:00
Tobias Doerffel
76a4d88fe4 Added missing plugins from the SWH LADSPA plugin collection
Once I added the SWH LADSPA plugins I just added a small selection of
them in order to improve clarity. However lots of projects use SWH
LADSPA plugins that are not shipped with LMMS and thus can't be
played properly e.g. on Windows. Fix this by adding missing plugins
(except the analog and FM oscillators).
2011-07-02 12:47:49 +02:00
Tobias Doerffel
e338b34faf Widgets classes: use "WindowTitle" property instead of "AccessibleName"
As the interface for the "AccessibleName" property might not be available
when Qt was built without accessibility support, use the "WindowTitle"
property instead where appropriate.

Closes #3300101.
2011-06-27 20:43:09 +02:00
Tobias Doerffel
34e61f0ea3 ZynAddSubFX: regenerated UI source code files with recent Fluid (2)
Forgot to include one file in commit 13d1e38f4b.
(cherry picked from commit 99113677c4)
2011-06-16 00:21:38 +02:00
Tobias Doerffel
6f00e6d6f3 ZynAddSubFX: regenerated UI source code files with recent Fluid
Now that we updated FLTK we also need to regenerate ZynAddSubFX'
UI source code files using recent Fluid tool. Indentation seems to
have been fixed.
(cherry picked from commit 13d1e38f4b)
2011-06-16 00:13:36 +02:00
Tobias Doerffel
b99d63eaf0 ZynAddSubFX/FLTK: updated to SVN revision 8805
Updated FLTK to SVN revision 8805 of branch-1.3.
(cherry picked from commit c2c315e11f)
2011-06-16 00:13:31 +02:00
Tobias Doerffel
56d7e2e6ec ZynAddSubFX: minor fixes from upstream
* Fixing Envelopes not going to zero
  * FLTK1.3: Applying patch to force code generation
(cherry picked from commit a1006f7a32)
2011-06-16 00:13:23 +02:00
Krzysztof Foltman
bd84a2ee64 CALF/Monosynth: only set frequency-related values in params_changed if note is played. 2011-06-06 18:45:38 +02:00
Tobias Doerffel
2721fbae95 CALF: updated up to commit b22ca910642433a4507f33ec08bcbf8e6d02e3ff
* Fix broken band issue in EQ plugins.
  * Persist extension 0.2
2011-04-25 11:35:00 +02:00
Tobias Doerffel
d98acff3bb CAPS: updated to version 0.4.5
Updated CAPS plugins to version 0.4.5 - changes:

  * Narrower plugin added
  * fixed 'configure.py' to work with python3
  * fixed Sin, Roessler and Lorenz gain smoothing on activation

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2011-04-05 14:33:08 +02:00
Tobias Doerffel
8d61675e3e CALF: updated up to commit 3889df5d1448faf5078b0a2bdd4c220823b82bf9
* Simplify exciter code. No functional change... I hope!
* Work in progress on rotary speaker. May contain bugs.
* Replace allpass vibrato in Calf Organ with a simulation of scanner vibrato.
* Implement switchable vibrato type.
* Initialise delta members in ramp classes.
2011-01-26 11:11:45 +01:00
Tobias Doerffel
15fabc6a17 LB302: fixed typo
It has to be "imitation" instead of "immitation". Thanks to Capdan for
pointing this out.

Closes #3158102.
2011-01-24 16:35:46 +01:00
Tobias Doerffel
ec9658d205 PeakControllerEffect: properly save and load all settings
The settings for the new attack and decay controls weren't saved and
loaded at all while just the values of all other knobs were saved
(instead automation data, controllers etc.).
2011-01-24 16:02:50 +01:00
Tobias Doerffel
510f87bfcc Sf2Player: load default soundfont upon instantiation
When creating a new Sf2Player plugin instance, load the default
soundfont. Might decrease performance a little bit when loading projects
which make use of many other soundfonts but for the sake of improved
usability we should accept this.

Partially closes #3149779.
2011-01-23 23:19:31 +01:00
Tobias Doerffel
a494f4b160 PeakController: initial work on attack- and decay-support
The decay knob didn't actually do anything before. Now it's useful
together with newly introduced attack knob. One can do much better
sidechaining now without disturbing artifacts due to too responsive
volume changes.
(cherry picked from commit 9615ceabd5)
2011-01-16 22:49:47 +01:00
Tobias Doerffel
60970495b0 CMT LADSPA plugins: get rid of -nostartfiles linker flag
Using the -nostartfiles linker flag makes the CMT LADSPA plugin
library not being linked against neccessary libraries on recent Linux
systems. Therefore remove it.
2011-01-16 18:53:12 +01:00
Tobias Doerffel
cfce2bc827 Fixed various minor semantic glitches
There were various minor semantic glitches reported by cppcheck and
Andrei Smirnov.
(cherry picked from commit a4de8fa16a)
2011-01-08 00:19:11 +01:00
Tobias Doerffel
2bb08099b3 CALF: updated up to commit b9b6dc839c40cebbd632ca776817a11c2543265c
There were many changes in the CALF repository. Cherry picking all of
them individually would be lot's of work, that's why I just applied
a diff made up from the following commits:

 * Add ChangeLog entries of the remaining bugfix 0.0.18 releases.
 * First attempt to update ChangeLog with the changes from last 2 years.
 * Fluidsynth: set sample rate on a synth instance.
 * Monosynth: allow modulation matrix when configure is available.
 * Improve LADISH level 1 integration. Doxygenize host_session a little bit.
 * Avoid starting LASH just to display the help text.
 * Reuse instance IDs of removed plugins.
 * Don't crash on failure of the save operation.
 * Remove by pointer, not by position - better for rearranged lists.
 * Mark the reorder function as experimental. Print new plugin order to stdout.
 * Add channel number to internal MIDI API. Fix stack overflow in Calf Organ.
 * Ignore data type for now, to help diagnosing restore issue with Ardour.
(cherry picked from commit a6c6e18508)
2011-01-03 00:01:57 +01:00
Tobias Doerffel
a04df066bd ZynAddSubFX: fixed improved packaging of ZynAddSubFxCore library
When packaging the ZynAddSubFxCore library (Windows builds), there's no
need for including the DLL import library, so skip it. Furthermore make
sure to strip the ZynAddSubFxCore library which decreases its size from
8 MB to about 1 MB.
(cherry picked from commit 4616a53eb2)
2011-01-02 23:45:01 +01:00
Tobias Doerffel
a9717c0cc3 NotePlayHandle: send correct MidiNoteOff events if base note changed
When changing an InstrumentTrack's base note while NotePlayHandles are
active, they will send a wrong MidiNoteOff event due to the masterKey()
translation in InstrumentTrack::processOutEvent().

Therefore in NotePlayHandle remember the original base note value and
add the difference between original and current base note to the value
returned by NotePlayHandle::key(). Fixes hanging notes in MIDI-based
instruments such as ZynAddSubFX.

Furthermore some coding style improvements.

Closes #3146975.
2010-12-31 13:23:08 +01:00
Tobias Doerffel
65a0313807 Merge branch 'win64-vst'
* win64-vst:
  VST support layer: fixed non-working 64 bit VST plugins
  VST support layer: added 32 bit VST plugin support for Win64
  Win64Toolchain: added 32 bit compiler configuration
  ZynAddSubFX: use new RemotePlugin::init() method
  RemotePlugin: added support for running remote process multiple times
(cherry picked from commit 65c073ec63)
2010-12-26 11:25:54 +01:00
Tobias Doerffel
269234fd09 SpectrumAnalyzer: fixed multiple instantiations
When instantiating the SpectrumAnalyzer plugin more than once the
processed data somehow got invalid and caused all but the first
SpectrumAnalyzer instance not to work at all. This can be fixed easily
by clearing m_buffer in SpectrumAnalyzer's constructor.

Closes #3137877.
(cherry picked from commit ab814c03a7)
2010-12-24 00:37:58 +01:00
Tobias Doerffel
1590dd0d39 ZynAddSubFX: link against -lws2_32 on Win32
Once more explicit linking is required with recent MinGW toolchains.
2010-12-06 10:42:29 +01:00
Tobias Doerffel
625e70d50a Build system: fixed relative linker paths warnings
Fixed the warnings about relative linker paths issued by CMake >= 2.8.
2010-12-05 23:27:55 +01:00
Tobias Doerffel
b1b63364d5 Merge branch 'calf-updates'
* calf-updates:
  Reimplement modulation matrix (and tables in general) using configure variables. Slow and most likely incomplete, but a good start.
  Add extra checks to detect when param_count != param array size - 1.
  Fix another install-related crash, this time due to invalid params in fluidsynth. (cherry picked from commit 034e3a47cd40eb6bb7d221274fda2a5c1c79f42f)
  Fix the infamous crash on install. (cherry picked from commit f0568e2f8a4c7d0003cc5a15e300aa2ebb3f93cb)
  The range given in the comment wasn't really correct. (cherry picked from commit 292cdaa81dab7e7d948f597041cb86d70dc5ff92)
  Use symmetric dB range for EQ plugins.
  Fix a few bugs in compilation of limited versions (DSSI without GUI, no JACK host).
  Initialise the vintage delay properly... hopefully this time. (cherry picked from commit c96ff1d680148cc877fab3b641d666068eea06aa)
  Unbreak Monosynth by changing listview to use a 'key' attribute instead of 'param'.
(cherry picked from commit c562952800)
2010-12-05 23:11:43 +01:00
André Hentschel
1ea719c7c4 vst_base: Fix winelib build on x86-64 2010-11-04 17:09:35 -04:00
Tobias Doerffel
af17d00821 Merge branch 'calf-updates'
* calf-updates:
  Make meters in compressor/EQ/distortion modules sample-rate-dependent. (cherry picked from commit 47a87c696223625d31cf106e12ed08cd3293be14)
(cherry picked from commit 6581a11a45)
2010-10-17 18:19:32 +02:00
Tobias Doerffel
f1f5040ddc Merge branch 'calf-updates'
* calf-updates:
  LADSPA/CALF: removed unused file
  One table_edit_iface per table; start implementing a bridge class. (cherry picked from commit 2019ae2d8f9636b7d5cdb0c1fdd5f0d6f2b47e3d)
  Move the table_edit_iface out of plugin_metadata_iface, where it should have never been in first place. (cherry picked from commit 6907dc9670eae2313707b142c552a8d9e8b477b5)
  Fix organ crash in calfjackhost. (cherry picked from commit b2853103199b3f5f3a5d22271c5d89122514dd53)
  Remove the forgotten leftover references to the old extensions. (cherry picked from commit deb8b77bdb1e1648a38589b3be3d4d66175b4934)
  Replace string port/message context using persist extension. (cherry picked from commit b8e69ceb2ff7aca549efd939d04447e2f08ad5a8)
  Comment out the barfage when passing configure variables via message_run. (cherry picked from commit 1e767ff88578011c2f65466d5516953271e2cafd)
  Add a crude incomplete implementation of persist extension support. (cherry picked from commit 3ec11c04799fc08fd408c4ef2350df65f88ccfde)
  Add LV2 persist extension by paniq. (cherry picked from commit 1965282a28c6940164ffff7ebd106b27cafd7f2a)
  More refactoring of the VUs. The goal: to be able to add peak meters without major hassle. (cherry picked from commit 00ee132cc2ebe3b664c7d5760260d76dda37bf26)
  Fix handling of very short notes in Monosynth. (cherry picked from commit 5965d9922a0753e2dce4f743a23b9512be01a7ac)
(cherry picked from commit 01c91b6ce3)
2010-09-28 23:44:33 +02:00
Tobias Doerffel
49d833c2fd VstEffectControlDialog: fixed preprocessor macro logic
Fixed preprocessor macro logic that was messed up in commit
fa9e0f762c.
(cherry picked from commit 342ea2ba05)
2010-09-02 23:48:58 +02:00
Tobias Doerffel
1bf3768c1c VstEffectControlDialog: workaround for invisible GUI on Linux
For some reaons with recent versions of Qt we can't embed the VST FX
GUI into an existing EffectControlDialog anymore. As a workaround, embed
it into a new subwindow and added an additional show/hide button.

Closes #3028717.
(cherry picked from commit fa9e0f762c)
2010-09-02 17:38:05 +02:00
Tobias Doerffel
d396a29c06 ZynAddSubFX: only re-instantiate ZASF if m_hasGUI has changed
Do not re-instantiate ZynAddSubFX if m_hasGUI is different from the
value of the according push button.
(cherry picked from commit f05c510f4d)
2010-09-02 17:23:31 +02:00
Tobias Doerffel
bac2b28ad7 ZynAddSubFX: save which controllers were modified and restore them
We must not only restore the controller knobs but also send updates
to ZynAddSubFX. However this only applies to knobs that were modified.
Therefore save and remember which knobs this applies for.
(cherry picked from commit b2cc802528)
2010-09-02 17:23:28 +02:00