Commit Graph

43 Commits

Author SHA1 Message Date
Levin Oehlmann
7227c89847 Namespace lmms (#6174)
This PR places all LMMS symbols into namespaces to eliminate any potential future name collisions between LMMS and third-party modules.

Also, this PR changes back `LmmsCore` to `Engine`, reverting c519921306 .

Co-authored-by: allejok96 <allejok96@gmail.com>
2022-06-19 20:08:46 +02:00
Alex
dc73911391 Rename Beat/Bassline to Pattern (#6284)
- BB* -> Pattern*
- BBTrackContainer -> PatternStore
- BBTrackContainerView -> PatternEditor
- BBEditor -> PatternEditorWindow

Does not touch save files
2022-02-13 09:03:37 +01:00
Yashraj Shinde
bf323d2024 Rename FxMixer to Mixer (#6239)
... as decided in #6089 and #5592.

This PR replaces every occurrence of "FX" where "Mixer Channel" is meant.
2022-01-09 08:15:23 +01:00
Levin Oehlmann
f742710758 Macro cleanup (#6095)
Summary:

* `NULL` -> `nullptr`
* `gui` -> Function `getGUI()`
* `pluginFactory` -> Function `getPluginFactory()`
* `assert` (redefinition) -> using `NDEBUG` instead, which standard `assert` respects.
* `powf` (C stdlib symbol clash) -> removed and all expansions replaced with calls to `std::pow`.
* `exp10` (nonstandard function symbol clash) -> removed and all expansions replaced with calls to `std::pow`.
* `PATH_DEV_DSP` -> File-scope QString of identical name and value.
* `VST_SNC_SHM_KEY_FILE` -> constexpr char* with identical name and value.
* `MM_ALLOC` and `MM_FREE` -> Functions with identical name and implementation.
* `INVAL`, `OUTVAL`, etc. for automation nodes -> Functions with identical names and implementations.
* BandLimitedWave.h: All integer constant macros replaced with constexpr ints of same name and value.
* `FAST_RAND_MAX` -> constexpr int of same name and value.
* `QSTR_TO_STDSTR` -> Function with identical name and equivalent implementation.
* `CCONST` -> constexpr function template with identical name and implementation.
* `F_OPEN_UTF8` -> Function with identical name and equivalent implementation.
* `LADSPA_PATH_SEPARATOR` -> constexpr char with identical name and value.
* `UI_CTRL_KEY` -> constexpr char* with identical name and value.
* `ALIGN_SIZE` -> Renamed to `LMMS_ALIGN_SIZE` and converted from a macro to a constexpr size_t.
* `JACK_MIDI_BUFFER_MAX` -> constexpr size_t with identical name and value.
* versioninfo.h: `PLATFORM`, `MACHINE` and `COMPILER_VERSION` -> prefixed with `LMMS_BUILDCONF_` and converted from macros to constexpr char* literals.
* Header guard _OSCILLOSCOPE -> renamed to OSCILLOSCOPE_H
* Header guard _TIME_DISPLAY_WIDGET -> renamed to TIME_DISPLAY_WIDGET_H
* C-style typecasts in DrumSynth.cpp have been replaced with `static_cast`.
* constexpr numerical constants are initialized with assignment notation instead of curly brace intializers.
* In portsmf, `Alg_seq::operator[]` will throw an exception instead of returning null if the operator index is out of range.

Additionally, in many places, global constants that were declared as `const T foo = bar;` were changed from const to constexpr, leaving them const and making them potentially evaluable at compile time.

Some macros that only appeared in single source files and were unused in those files have been removed entirely.
2021-09-30 18:01:27 +02:00
Alexandre Almeida
770d2498b5 Rename Mixer to AudioEngine (#6127) 2021-09-12 01:00:21 +02:00
Martin Pavelek
6f8c6dba82 Alias-free oscillators (#5826)
Add a band-limited, alias-free wavetable oscillator option to the
`Oscillator` class. Use it by default for Triple Oscillator.

Savefiles which do not have this feature enabled (e.g. old
savefiles) will be loaded without this feature to keep the sound
consistent.

Original author: @curlymorphic.
Fixed: @he29-net.
2021-07-04 13:14:59 +02:00
Alexandre Almeida
83e51ffc45 Remove unused stuff (#5685) 2020-11-20 15:49:15 +00:00
Johannes Lorenz
7dd6a39366 Introduce blacklisted plugins to core 2020-11-15 20:10:20 +01:00
Johannes Lorenz
2a66e83f53 Lv2 core implementation
Implementation of the Lv2 core, except for CV ports. No features or
extensions are supported yet.

You can now generate sound using Lv2 instruments (restricted to non-piano)
or effects.

For an explenation about the new classes, see Lv2Manager.h
2020-05-24 12:50:50 +02:00
Alexandre Almeida
53e6b645c8 Use "bar" instead of "tact"
Closes #4865
2019-10-31 15:13:25 +01:00
Hyunjin Song
12ea80d4fb Merge branch 'stable-1.2'
# Conflicts:
#	data/locale/cs.ts
#	data/locale/en.ts
#	data/locale/ko.ts
#	data/locale/ru.ts
#	data/locale/uk.ts
#	data/locale/zh_TW.ts
#	include/Engine.h
#	plugins/nes/Nes.cpp
#	src/core/NotePlayHandle.cpp
#	src/core/SampleBuffer.cpp
#	src/tracks/SampleTrack.cpp
2019-06-12 17:41:12 +09:00
Shmuel H
665e50395c Bugfix - SampleTrack -> Play: Fix sample track not being played in the
right place when it not played from the begining.

That has created a difference between the ticks and the metronome and
the sample track.

The cause of the problem was that the calculation of the frame to play
was wrong: we had calculated `framesPerTick` according to the current
engine's sample rate instead of the SampleBuffer's sample rate.
2019-06-02 20:48:58 +03:00
Johannes Lorenz
4d64c422b2 Fix Engine.cpp not compiling on some compilers 2018-12-27 21:59:50 +01:00
Johannes Lorenz
a1b355828e Allow sub plugins for instruments aswell
* Move m_key member of Effect into Plugin
* Pass key to Instrument ctors and instantiaters
* Add pluginKeys to all plugin selector widgets, and let them pass the keys
  when instantiating the instruments; or, if the keys must be passed over
  threads, pass the keys to the Engine using `Engine::setDndPluginKey()`
* As instrument plugin libraries now also need to get their key passed, their
  second argument, which was always the same as the first, is now used to pass
  the sub plugin keys. This affects *all* instrument plugins.
* Plugin.h: Add more virtuals to `SubPluginFeatures` in order to draw logos
  and images into instrument selector widgets
* LadspaSubPluginFeatures: Implement the `displayName` virtual because the
  new behaviour to resolve displayNames is to first look at the
  SubPluginFeatures, which, without override, returns the superior plugin's
  name (Plugin.cpp)

Additional:

* PluginFactory.h: Allow setting up search paths without discovering plugins
  yet
* Plugin.h: Add full documentation (should be checked)
2018-12-27 21:24:19 +01:00
Lukas W
435c898781 Mixer: Save renderOnly flag 2017-03-21 17:52:10 +01:00
Lukas W
10e28c26b9 Merge branch 'renderer' of https://github.com/PaulBatchelor/lmms 2017-03-21 17:51:51 +01:00
Lukas W
29f832034a Remove unused includes (#3429) 2017-03-16 11:35:18 +00:00
Paul Batchelor
5e536319b7 when rendering, use dummy Audio/MIDI devices 2017-03-04 22:10:36 -08:00
grejppi
9e85d7c66e update all copyright headers to the proper url (#3326) 2017-02-06 02:41:15 +02:00
Fastigium
b645f43cfd Destroy the FxMixer before the Mixer when shutting down
Fixes #2584.
2016-02-24 16:37:53 +01:00
Colin Wallace
c519921306 Rename Engine to LmmsCore, but typedef'd as Engine to prevent name conflicts with ZASFx
Document the Engine renaming better & link to relevant issues/PRs
2015-12-29 23:29:35 -08:00
M374LX
18b6f20c29 Fix #1878 2015-08-05 20:42:10 -03:00
Colin Wallace
860d419c14 Replace 'Engine::hasGUI()' with 'gui != nullptr' 2015-06-16 05:40:05 +00:00
Lukas W
422fbbc8d3 Merge branch 'master' into cmake_dist
# Conflicts:
#	include/ConfigManager.h
#	include/Engine.h
#	plugins/CMakeLists.txt
#	plugins/vst_base/CMakeLists.txt
#	plugins/vst_base/Win64/CMakeLists.txt
#	src/core/Engine.cpp
2015-05-30 22:59:06 +02:00
Colin Wallace
44c42d9d38 Provide status messages on splash screen when loading (#1696) 2015-04-02 08:23:14 +00:00
Lukas W
35e1c4ed89 Refactor: Move plugin file support handling to PluginFactory 2015-02-05 17:22:23 +01:00
Lukas W
c28b0b5407 PluginFactory: Map plugins by type 2015-01-29 14:00:29 +01:00
Lukas W
7be47230e3 Introduce PluginFactory class
This singleton class handles management of plugin search paths and plugin
discovery. Search paths are (if they exist):
  * <lmms-exe-dir>/../lib/lmms: This is the common location on Unixoids
    (Not included in Windows builds)
  * <lmms-exe-dir>/plugins: For portable and Windows installations
  * The path given by the compile define LMMS_PLUGIN_DIR
  * Environment variable LMMS_PLUGIN_DIR if given

This commit also tweaks the build script to output built plugins to
"${CMAKE_BINARY_DIR}/plugins". This way lmms can find plugins during
development without the need to use `make install`.

Plugin::getDescriptorsOfAvailPlugins and ConfigManager::pluginDir were
removed.
2015-01-29 13:48:52 +01:00
Lukas W
df9d495571 Some #include cleanups 2015-01-22 16:28:41 +01:00
Amadeus Folego
edebf5d7da Refactor loading song errors notification 2015-01-13 00:18:36 -02:00
Amadeus Folego
3dd1da4e25 Collect effects errors to show on summary window 2015-01-12 23:51:32 -02:00
Lukas W
e0dbfa696e Remove Engine's has_gui option 2015-01-07 00:22:40 +01:00
Lukas W
1ee93409d1 Move Engine' GUI code to new GuiApplication class 2014-12-17 23:25:55 +01:00
Lukas W
eb79701acc Merge branch 'master' into ed_refac 2014-12-17 11:35:42 +01:00
Vesa
150b16bd15 Merge branch 'stable-1.1'
Conflicts:
	include/lmms_math.h
	plugins/delay/delaycontrolsdialog.cpp
	src/core/FxMixer.cpp
	src/gui/FxMixerView.cpp
2014-12-10 01:38:17 +02:00
Lukas W
ec9158cda9 PianoRoll: Use Editor superclass 2014-12-08 16:48:10 +01:00
Lukas W
3e9cc61042 SongEditor: Use Editor superclass 2014-12-07 17:37:22 +01:00
Lukas W
02006f9855 Use Editor superclass in AutomationEditor
Split AutomationEditor -> AutomationEditor + AutomationEditorWindow
2014-12-07 12:48:49 +01:00
Lukas W
95798da9d0 Rename a lot of classes
* aboutDialog -> AboutDialog
* bbEditor -> BBEditor
* exportProjectDialog -> ExportProjectDialog
* setupDialog -> SetupDialog
* stringPairDrag -> StringPairDrag
2014-11-26 10:39:02 +01:00
Lukas W
7d4f179b4b Rename a lot of files
* about_dialog -> AboutDialog
* bb_editor -> BBEditor
* export_project_dialog -> ExportProjectDialog
* setup_dialog -> SetupDialog
* string_pair_drag -> StringPairDrag
2014-11-26 10:27:25 +01:00
Lukas W
1bbf7455a4 Rename a lot… 2014-11-26 10:09:49 +01:00
Lukas W
5b306ea845 Rename ladspa_2_lmms to Ladspa2LMMS 2014-11-26 00:52:25 +01:00
Lukas W
968909c07c Rename engine to Engine 2014-11-26 00:49:55 +01:00