* First Preview of the X-Pressive Plugin
(exprtk.hpp is not included, get it from my exprtk fork in the branch
internal_data_functions)
available keys:
f- note's frequency. available only in the output expressions
t- time in seconds. in the Waves (W1,W2,W3) it's in the range [0,1)
key- the note's keyboard key. available only in the output expressions.
v- the note's velocity (divided by 255.0 so it is in the range [0,1]).
available only in the output expressions.
rel- gives 0 while the key is holded, and 1 after the key release.
available only in the output expressions.
A1,A2,A3- general purpose knobs (you can control them with the
automations). available only in the output expressions.
W1,W2,W3- precalculated wave forms. can be also load from file. you can
use them only in the output expressions
available functions:
cent(x)- gives pow(2,x/1200)
rand()- random number generator. in range [-1,1). each call gives other
value.
randv(i)- random vector (with pseudo infinite integer cells). the values
are in range [-1,1). it's stays consistent only across the note
playback. so each note playback will get other vector (even on the same
key).
sinew- sine wave with period of 1.
saww- saw wave with period of 1.
squarew- square wave with period of 1.
trianglew- triangle wave with period of 1.
expw- exponent wave with period of 1.
expnw- another exponent wave with period of 1.
moogw- moog wave with period of 1.
moogsaww- moog-saw wave with period of 1.
you can use * % ^ / + - pow sin log pi etc.
* Xpressive Plug-In:
Added Release transition knob that control the "rel" variable. (the
duration of transit from 0 to 1)
Fixed some problems in the displays. (update display when changing
A1,A2,A3, clear display with invalid expression.
* X-Pressive Plug-In: Few more fixes
Changed the callbacks in exprfront.cpp to be templated.
Added help.
Added ExprTk.hpp.
some bug fixes (inf issues).
Added integrate function.
* Special version of ExprTk with modified license (BSL) for the LMMS project https://github.com/LMMS/lmms
* Xpressive Plug-In- fixed some building errors.
Added the "e" euler's constant.
* Xpressive Plug-In - fix mingw64 issues
* X-Pressive Plug-in:
Added "trel" (time since release) variable.
The integrate function can now have unlimited usage.
Added selective interpolation per wave.
Improved a little the random vector function.
Some other improvements, code cleaning, etc...
* Xpressive Plug-In:
move clearGraph definition into Graph.cpp.
fixed compilation errors. (oops..)
* X-Pressive plug-in: updated presets names
* X-Pressive plug-in
added semitone function, added sample-rate variable
* X-Pressive plug-in, code cleaning, changed the rendering function to
achieve performace gain.
* X-Pressive plug-in - fix the string counting function
* X-Pressive plug-in - until somebody will find a better solution,
exprtk.hpp is patched under the name exprtk.patched.hpp ...
* X-Pressive plug-in - fix compiling errors.
* X-Pressive plug-in - added patch file for exprtk.hpp,
added last function that gives last calculated samples.
moved ExprSynth to be with ExprFront for performance reasons.
* X-Pressive plugin - moved the patched file back to the source tree, added .gitignore file..
* X-Pressive plugin - fix compilation error. (isnan isinf)
* X-Pressive plugin - tried to fix embed.cpp problem,
added new variable to the parser (tempo)
* X-Pressive plugin - fixed cmake script
* X-Pressive plugin - updated the license and the diff file.
* Updates to ExprTk
* Added return statement enable/disable via parser settings
Added exprtk_disable_return_statement macro for disabling return statements and associated exceptions at the source code level.
* X-Pressive plugin - updated CMakeLists.txt to use the correct flags on each platform.
also added exprtk.hpp as a dependency for the patch command.
Updated the exprtk diff file.
* X-Pressive plugin - moved the enhanced features flag to the WIN64 installation.
* X-Pressive plugin - another fix for CMakeLists.txt
* Minor updates to ExprTk
Updated multi-sub expression operator to return final sub-expression type.
Updates to exprtk_disable_return_statement macro for disabling return statements and associated exceptions at the source code level.
* X-Pressive plug-in - added try-block around exprtk calls and enabled the
-fexceptions flag, so patch file is no longer needed.
* X-Pressive plug-in - small fix in CMakeLists.txt
* Update ExprTk to tip of branch.
* X-Pressive plugin - added graph drawing feature..
* Updating exprtk.hpp to the latest upstream version
* Added support for wine-devel packages.
* Added support for wine-staging packages.
* Staging extra flags.
* Dynamic Wine branch detection (stable, devel, staging).
* Using STRING() to correct WINE_INCLUDE_DIR and WINE_LIBRARY.
* Don't override CMAKE_PREFIX_PATH.
* REPLACE outputs new variables.
* Renamed variables.
* Remove bin2res, use Qt's resource system
* Use QDir search paths and QImageReader in getIconPixmap
* Don't include "embed.cpp" in plugins
* getIconPixmap: Use QPixmapCache, use QPixmap::fromImageReader
* Require CMake 2.8.9
* Fix ReverbSC embed usage
- Additional LMMS_BUILD flag.
- Disallow on plugins -Wl,-no-undefined which triggers undefined references.
- Make sure X11 headers are found.
Lib ossaudio is needed only for OpenBSD
redundant expression removal
simplify condition for detection OS 'kind'
seems the last commit brought an issue on OSx travis test ....
The user might invoke cmake with CFLAGS containing "-m32" or (on OS X) "-arch i386" while on a 64-bit machine to indicate that it should build for 32-bit instead.
This adds libsoundio (http://libsound.io/) as an available audio
backend. libsoundio supports JACK, PulseAudio, ALSA, CoreAudio,
WASAPI, and a dummy backend.
LMMS now properly builds and runs with Qt5. Various deprecated functions
had to be replaced like QString::toAscii()/fromAscii(). Also occurences
of FALSE/TRUE have been replaced with false/true.
LmmsStyle now derives from QProxyStyle and sets a style instance as base
style (Plastique for Qt4, Fusion for Qt5).
MOC files are not included anymore but added as regular source files.
What's missing is support for embedding VST plugins into a subwindow
inside LMMS on Linux/X11 due to missing QX11EmbedContainer class in Qt5.
Build instructions can be found in INSTALL.Qt5
Minimum version requirement for Qt4 has been raised to 4.6.0 for best
API compatibility between Qt4 and Qt5.
LMMS failed to build with recent versions of CMake if CMAKE_RC_COMPILER
was not set in MinGWCrossCompile.cmake. Furthermore PKG_CONFIG_FOUND
manually needs to be set to TRUE.
I updated the MinGW cross compiling packages to come alogn with
Qt 4.7 and a revised build architecture. Qt's devel tools such as
qmake, moc & friends are now built natively and allow using them like
native Qt installations. This means there's less to hardcode in the
MinGWCrossCompile file.
The PortAudio backend lay down broken for quite a while. However as it
offers much better realtime capabilities on Windows compared to SDL, I
started to resurrect it, removed support for PortAudio < 1.9 and fixed
various bugs and crashes.
* 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)
All flags which are used now for building Win32 version of LMMS are now
defined in the top level build_mingw32 script instead of the
Win32Toolchain cmake files.
Cross compile support for Win32 and Win64 has been unified,
simplified and adapted to the new MinGW64-based build environment.
This finally allows to produce working Win64 binaries.
(cherry picked from commit 51103bb674)
If libraries are being used from somewhere other than
/usr/include or /usr/local/include, building plugins would fail.
Now it checks CMAKE_INSTALL_PREFIX/include.
(cherry picked from commit a86ca968b7)