Compare commits

...

54 Commits

Author SHA1 Message Date
Hyunjin Song
a2685c1cca Bump version to 1.2.0-rc7 2018-09-25 16:47:51 +09:00
Umcaruje
8154f886ed Update the LMMS logo and mimetypes (#4519)
* Update the LMMS logo and mimetypes

* fix bmp for nsis installer

* Update window and About icons, rename icons, change the file association logic

* Fix NSIS

* Revert nsh patch

* Fix small icon

* Always write DefaultIcon in the registry

* Fix file permissions

* Fix nsis branding

* Fix nsis branding #2

* update the icon windows and linux

* Update apple icon, add windows visual manifest

* try to fix windows installation

* typo

* typo 2

* Set small logo to conform to 48x48 grid
2018-09-24 11:09:49 +02:00
Johannes Lorenz
93dc557c56 Add bash completion (#4534) (#4604)
* Add bash completion (#4534)
2018-09-23 21:17:39 -04:00
Hyunjin Song
9fe74c2730 Specify infinte timeout in tryLock on export
Ensures remote plugins always process sound on export.
Follow-up of 408b72c798.
2018-09-19 19:52:08 +09:00
Karmo Rosental
dd7b0865fb Update UI 60 times per second (#4570)
* Update UI 60 times per second

* Adjust falloff values
2018-09-17 23:49:25 +09:00
Tres Finocchiaro
153f15f4b4 Add Carla support for MacOS (#4558)
Add Carla support for MacOS
2018-09-15 09:32:29 -04:00
Hyunjin Song
91ca660161 Fallback to default audio/MIDI backends if invalid one is set
Also shows the setup dialog in case of invalid audio backends
2018-09-13 11:01:49 +09:00
Hyunin Song
3064f03818 Validate audio/MIDI backend when opening setup dialog
Original work: #4372 by @justnope
2018-09-13 11:01:49 +09:00
Johannes Lorenz
a5a13b1256 Restructure help
* Allow actions (dump, render*, upgrade) without minuses
* Restructure help in CLI
* Restructure help in man pages
2018-09-12 22:25:33 +02:00
Hyunjin Song
f37ca49e6d Fix decimal separator handling (#4547)
Makes LMMS can handle both periods and commas properly when loading real numbers.
2018-09-12 11:02:40 +09:00
Dominic Clark
c3db486be0 Set VST program first when restoring settings
Fixes a bug where some VSTs (e.g. Temper) would have their settings reset on project load, due to using programs as presets.
2018-09-11 22:01:11 +09:00
justnope
4c7c68f45a Initialise OLE in RemoteVstPlugin
Some plugins don't initialise it themselves, expecting it already to be
done for them, and so are liable to hang without it (e.g. TX16Wx).

Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
Co-authored-by: Dominic Clark <mrdomclark@gmail.com>
2018-09-11 22:01:11 +09:00
DomClark
0ad8527ff7 Link RemoteVstPlugin with -mwindows
Stops each remote plugin process spawning a console host, and seems more in line with what other hosts do.
2018-09-11 22:01:11 +09:00
DomClark
53dadd5735 Fix VST windows resizing a little incorrectly
This was fixed for setting the initial size of the window in 8e9f74d, but I missed the resizing case.
2018-09-11 22:01:11 +09:00
DomClark
2c5cda563b Fix kVstTransportChanged flag usage in VST sync
Changed according to feedback from AudioBlast. The flag used to be set most of the time, now it is only set when playback starts/stops, looping is toggled, or playback jumps around.
2018-09-11 22:01:11 +09:00
DomClark
cc2ae66540 Fix hang when updateInOutCount called from processReplacing
Ignore requests to change the I/O count from within processReplacing and print a warning instead; the shared memory is in use so it can't be reallocated. Add a special case to return immediately if the I/O count hasn't changed at all; this will prevent spurious warnings when the plugin is only updating the latency and should reduce unnecessary reallocations in general.
2018-09-11 22:01:11 +09:00
DomClark
de427bbcf8 Suspend plugin when changing sample rate/buffer size
Some plugins ignore updates to these values if they're changed while the plugin is in a "resumed" state, resulting in incorrect tuning after a change of sample rate.
2018-09-11 22:01:11 +09:00
Lukas W
6f32c962b4 Fix invisible editors on project load by validating size (#4502) 2018-09-03 19:39:23 +09:00
Tobias Kortkamp
4bb6586c66 Allow building with sndio support on more systems than just OpenBSD (#4486)
Sndio also supports FreeBSD and Linux.
2018-08-27 16:19:23 -04:00
Hyunjin Song
a0cbcb6ec4 Remove Qt temporary files after loading ZynAddSubFX settings (#4551) 2018-08-25 15:29:40 +09:00
Hyunjin Song
7f541a544e Don't try to clear null buffer in NotePlayHandle::play (#4545)
This is a workaround for rare crashes when changing the tempo
while playing notes with stacking and/or arpeggio.
When playing the master note, _working_buffer is null.
Tempo change causes false positive in the check because
NotePlayHandle::resize changes m_totalFramesPlayed.
Thanks to 6fc4577f10, we can safely drop
the memset call.
2018-08-22 20:17:56 +09:00
Michael Gregorius
160488c096 Make the oscilloscope colors available as properties
Make the oscilloscope colors available as properties so that they can be
changed via style sheets. Adjust the existing styles to use the colors
that have been hard coded previously.

Cleanup the paintEvent method of VisualizationWidget, e.g. by extracting
a method to determine the color to use for the line and by pulling
variables to the place where they are used. Fix some Clang warnings.
2018-08-16 19:47:58 +02:00
Ivo Wetzel
0cddc469bc Fix Freeboy noise channel playback (#4538)
Writing the enable bit to `FF23` causes the noise oscillator to start outputting samples and writing the other registers (including the one for the SRW value) during the time the oscillator is active has undefined behaviour.
In order for `GB_apu` to correctly generate samples when the LSFR width is
set to `7`, the trigger write to `0xff23` must happen after all other
writes.
2018-08-16 12:05:50 +09:00
Tres Finocchiaro
2ecc8bb4fa Add CMake 2 support (#4530)
Partially reverts d599955
2018-08-07 15:26:58 -04:00
Tres Finocchiaro
b5dc70c20a Fix AppImage shim launcher
Due to upstream change in linuxdeployqt
2018-08-05 23:53:49 -04:00
Hyunjin Song
e07f9a3b64 Don't use dummy controllers for connections if not loading projects (#4493)
Remove the need of ControllerConnection::finalizeConnections
when not loading projects.
Fix ZynAddSubFX knob disconnection when exporting.
2018-08-01 14:35:16 +09:00
Oskar Wallgren
b268abba45 Fix some formatting issues in translations (#4482)
* Swedish translation formatting and fixes
* German translation formatting
* Czech translation formatting
* Spanish translation formatting
* Farsi translation formatting
* French translation formatting
* Italian translation formatting
* Portuguese translation formatting
* Galician translation formatting
* Russian translation formatting
* Ukrainian translation formatting
* Japanese translation formatting
2018-07-31 05:04:20 +02:00
Oskar Wallgren
b9634fa672 Setup Dialog - Fix bottom of letters cut off (#4483) 2018-07-28 14:07:21 -04:00
Hyunin Song
112d34226a Fix broken MIDI import
Fix a regression in 3e538d510c (#4401) that
readAllData doesn't read the file from the beginning
2018-07-27 15:48:58 +09:00
Oskar Wallgren
45d3359e21 Some demo project license fixes (#4481)
Add some missing licenses and split out CapDan and Skiessi project
licenses to their own files in the corresponding directories.
2018-07-15 14:03:37 +02:00
Hyunjin Song
408b72c798 Use tryLock in audio threads for VST/ZynAddSubFX (#4460)
Prevent loading VST or toggling ZynAddSubFX GUI
from blocking entire audio processing
2018-07-13 10:40:24 +09:00
Hyunjin Song
9f64d52146 Always show sample track panning knobs (#4477)
Fix hidden sample track panning knobs when using compact track buttons
2018-07-12 09:49:02 +09:00
Hyunjin Song
f2d68326a7 Fix occasional audio interface deadlock (#4450) 2018-07-10 11:13:56 +09:00
Hyunin Song
0f3b41f590 Fix fwrite parameter ordering 2018-07-07 10:37:30 +09:00
Hyunin Song
62d505b2e6 Improve STK rawwave path encoding handling
Still incomplete on Windows due to an upstream issue
2018-07-05 20:16:01 +09:00
Hyunin Song
3e538d510c Fix MIDI import encoding issue on Windows 2018-07-05 20:16:01 +09:00
Hyunin Song
1af0f083ea Fix WAV exporting on Windows 2018-07-05 20:16:01 +09:00
Hyunin Song
ddcae478d4 Fix sample file loading on Windows 2018-07-05 20:16:01 +09:00
Hyunin Song
9d0aae2708 Fix file name encoding issues with ZynAddSubFX on Windows 2018-07-05 20:16:01 +09:00
Hyunin Song
792e4786ad Fix file name encoding issues with VST on Windows
Fix plugin loading and setting loading/saving
2018-07-05 20:16:01 +09:00
Hyunin Song
e9f2b57107 Fix project URL for some files
They were created before https://github.com/LMMS/lmms/pull/3326
and added after it.
2018-06-28 20:23:53 +09:00
Hyunjin Song
28a522806b Fix hang on exit from specific MIDI devices + WinMM (#4451) 2018-06-27 08:59:36 +09:00
Lukas W
c45a21aac3 CMake: Fix FindSndio module
Fixes a bug where the module would set SNDIO_LIBRARY to NOT-FOUND
resulting in a CMake error when trying to link to ${SNDIO_LIBRARY}.
2018-06-20 08:47:10 +02:00
Lukas W
d1c36d7b96 CMake: Fix errors when path contains spaces 2018-06-20 08:47:10 +02:00
Oskar Wallgren
583e42e5bb Quit exit if failing to save project (#4428)
* Quit exiting when failing to save project

*Test outcome of save in MainWindow::saveProjectAsNewVersion()
2018-06-19 21:59:12 +02:00
Hyunjin Song
6af5154bec LADSPA: Fix undefined reference due to vectorization (#4434) 2018-06-19 09:32:11 +09:00
Hyunjin Song
b52861f19f Fixup 1bae047b98 2018-06-18 12:35:17 +09:00
Hyunjin Song
1bae047b98 Fix wrong accelerator character in sv.ts
Fixes #4415
2018-06-18 10:58:45 +09:00
Hyunjin Song
407973ad6f Fix crash when loading project with missing peak controller effect (#4391)
* Fix crash when loading project with missing peak controller effect

* Don't load/save dummy controller connections
2018-06-13 14:50:27 +09:00
Hyunjin Song
2f19fa11c8 Piano roll: reset editing mode when lost focus (#4393) 2018-06-05 17:39:04 +09:00
Hyunjin Song
3bf3fab0e3 Piano roll: Fix some crashes when no pattern is open (#4392) 2018-06-03 22:12:28 +09:00
Hyunjin Song
a9b5b92a2b Deselect FX channel's name text when losing focus (#4293) 2018-06-03 21:35:36 +09:00
Douglas
0d7ea273dc Initialize peak controller last sample with base value (#4382)
* Bug fix in peak_controller_effect.cpp

This change makes it so that when an LMMS project is loaded, each knob connected to a Peak Controller will be set to the Peak Controller's Base value, rather than its minimum possible value.
2018-06-01 20:41:52 -07:00
Lukas W
d3c90a81b9 Fix automation processing priority
Fixes regression from 75077f6200 that caused
global automation tracks to have priority in processing.

Adds a test checking for the desired behaviour.

Fixes #4268
2018-06-01 15:12:47 +02:00
156 changed files with 1897 additions and 4069 deletions

1
.gitignore vendored
View File

@@ -1,6 +1,7 @@
/build
/target
.*.sw?
.DS_Store
*~
/CMakeLists.txt.user
/plugins/zynaddsubfx/zynaddsubfx/ExternalPrograms/Controller/Makefile

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
PACKAGES="cmake pkgconfig fftw libogg libvorbis lame libsndfile libsamplerate jack sdl libgig libsoundio stk fluid-synth portaudio node fltk"
PACKAGES="cmake pkgconfig fftw libogg libvorbis lame libsndfile libsamplerate jack sdl libgig libsoundio stk fluid-synth portaudio node fltk carla"
if [ $QT5 ]; then
PACKAGES="$PACKAGES qt5"

View File

@@ -30,7 +30,7 @@ SET(PROJECT_COPYRIGHT "2008-${PROJECT_YEAR} ${PROJECT_AUTHOR}")
SET(VERSION_MAJOR "1")
SET(VERSION_MINOR "2")
SET(VERSION_RELEASE "0")
SET(VERSION_STAGE "rc6")
SET(VERSION_STAGE "rc7")
SET(VERSION_BUILD "0")
SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_RELEASE}")
IF(VERSION_STAGE)
@@ -56,6 +56,7 @@ OPTION(WANT_MP3LAME "Include MP3/Lame support" ON)
OPTION(WANT_OGGVORBIS "Include OGG/Vorbis support" ON)
OPTION(WANT_PULSEAUDIO "Include PulseAudio support" ON)
OPTION(WANT_PORTAUDIO "Include PortAudio support" ON)
OPTION(WANT_SNDIO "Include sndio support" ON)
OPTION(WANT_SOUNDIO "Include libsoundio support" ON)
OPTION(WANT_SDL "Include SDL (Simple DirectMedia Layer) support" ON)
OPTION(WANT_SF2 "Include SoundFont2 player plugin" ON)
@@ -86,6 +87,7 @@ IF(LMMS_BUILD_WIN32)
SET(WANT_JACK OFF)
SET(WANT_PULSEAUDIO OFF)
SET(WANT_PORTAUDIO OFF)
SET(WANT_SNDIO OFF)
SET(WANT_SOUNDIO OFF)
SET(WANT_WINMM ON)
SET(LMMS_HAVE_WINMM TRUE)
@@ -229,7 +231,11 @@ ENDIF(WANT_TAP)
# check for CARLA
IF(WANT_CARLA)
PKG_CHECK_MODULES(CARLA carla-standalone>=1.9.5)
PKG_CHECK_MODULES(CARLA carla-native-plugin)
# look for carla under old name
IF(NOT CARLA_FOUND)
PKG_CHECK_MODULES(CARLA carla-standalone>=1.9.5)
ENDIF()
IF(CARLA_FOUND)
SET(LMMS_HAVE_CARLA TRUE)
SET(STATUS_CARLA "OK")
@@ -428,7 +434,7 @@ IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD)
FIND_PACKAGE(Threads)
ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD)
IF(LMMS_BUILD_OPENBSD)
IF(WANT_SNDIO)
FIND_PACKAGE(Sndio)
IF(SNDIO_FOUND)
SET(LMMS_HAVE_SNDIO TRUE)
@@ -436,7 +442,7 @@ IF(LMMS_BUILD_OPENBSD)
ELSE()
SET(STATUS_SNDIO "<not found or not supported on this platform>")
ENDIF(SNDIO_FOUND)
ENDIF(LMMS_BUILD_OPENBSD)
ENDIF(WANT_SNDIO)
# check for WINE
IF(WANT_VST)

View File

@@ -1,4 +1,4 @@
SET(MACOSX_BUNDLE_ICON_FILE "lmms.icns")
SET(MACOSX_BUNDLE_ICON_FILE "icon.icns")
SET(MACOSX_BUNDLE_GUI_IDENTIFIER "${PROJECT_NAME_UCASE}")
SET(MACOSX_BUNDLE_LONG_VERSION_STRING "${VERSION}")
SET(MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME_UCASE}")

BIN
cmake/apple/icon.icns Normal file

Binary file not shown.

View File

@@ -21,14 +21,7 @@ echo -e "$MSG_COLOR\n\nCreating App Bundle \"$APP\"...$COLOR_RESET"
# Locate macdeployqt, assume homebrew & Qt5
which macdeployqt > /dev/null 2>&1
if [ $? -ne 0 ]; then
brew --prefix qt55 > /dev/null 2>&1
if [ $? -eq 0 ]; then
# Prefer Qt 5.5 (QTBUG-53533)
export PATH=$PATH:$(brew --prefix qt55)/bin
else
# Fallback Qt 5.6+
export PATH=$PATH:$(brew --prefix qt5)/bin
fi
export PATH=$PATH:$(brew --prefix qt)/bin
fi
# Remove any old .app bundles
@@ -71,6 +64,17 @@ install_name_tool -change @rpath/libZynAddSubFxCore.dylib \
@loader_path/../../$zynfmk \
"$APP/Contents/$zynlib"
# Replace @rpath with @loader_path for Carla
# See also plugins/carlabase/CMakeLists.txt
# This MUST be done BEFORE calling macdeployqt
install_name_tool -change @rpath/libcarlabase.dylib \
@loader_path/libcarlabase.dylib \
"$APP/Contents/lib/lmms/libcarlapatchbay.so"
install_name_tool -change @rpath/libcarlabase.dylib \
@loader_path/libcarlabase.dylib \
"$APP/Contents/lib/lmms/libcarlarack.so"
# Link lmms binary
_executables="${_executables} -executable=$APP/Contents/$zynbin"
_executables="${_executables} -executable=$APP/Contents/$zynfmk"
@@ -90,6 +94,27 @@ done
# Finalize .app
macdeployqt "$APP" $_executables
# Carla is a standalone plugin. Remove library, look for it side-by-side LMMS.app
# This MUST be done AFTER calling macdeployqt
#
# For example:
# /Applications/LMMS.app
# /Applications/Carla.app
carlalibs=$(echo "@CARLA_LIBRARIES@"|tr ";" "\n")
# Loop over all libcarlas, fix linking
for file in "$APP/Contents/lib/lmms/"libcarla*; do
_thisfile="$APP/Contents/lib/lmms/${file##*/}"
for lib in $carlalibs; do
_oldpath="../../Frameworks/lib${lib}.dylib"
_newpath="Carla.app/Contents/MacOS/lib${lib}.dylib"
install_name_tool -change @loader_path/$_oldpath \
@executable_path/../../../$_newpath \
"$_thisfile"
rm -f "$APP/Contents/Frameworks/lib${lib}.dylib"
done
done
# Cleanup
rm -rf "$APP/Contents/bin"
echo -e "\nFinished.\n\n"

Binary file not shown.

Binary file not shown.

View File

@@ -1,5 +1,4 @@
INSTALL(FILES lmms.svg DESTINATION "${DATA_DIR}/icons/hicolor/scalable/apps")
INSTALL(FILES project.svg DESTINATION "${DATA_DIR}/icons/hicolor/scalable/mimetypes/" RENAME "application-x-lmms-project.svg")
INSTALL(DIRECTORY icons/ DESTINATION "${DATA_DIR}/icons/hicolor")
INSTALL(FILES lmms.desktop DESTINATION "${DATA_DIR}/applications")
INSTALL(FILES lmms.xml DESTINATION "${DATA_DIR}/mime/packages")

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 934 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 771 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
id="svg4034"
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="64x64@2.png"
inkscape:export-xdpi="192"
inkscape:export-ydpi="192"
sodipodi:docname="lmms.svg">
<defs
id="defs4036">
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter4173"
x="-0.011714286"
width="1.0234286"
y="-0.0123"
height="1.0246">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.205"
id="feGaussianBlur4175" />
</filter>
<linearGradient
gradientTransform="translate(0,32)"
inkscape:collect="always"
xlink:href="#linearGradient4244-6"
id="linearGradient866"
x1="35"
y1="-14"
x2="35"
y2="27"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient4244-6"
inkscape:collect="always">
<stop
id="stop4428"
offset="0"
style="stop-color:#27ab5f;stop-opacity:1" />
<stop
id="stop4430"
offset="1"
style="stop-color:#249a56;stop-opacity:1" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4142135"
inkscape:cx="210.86487"
inkscape:cy="3.375495"
inkscape:current-layer="svg4034"
showgrid="true"
inkscape:grid-bbox="true"
inkscape:document-units="px"
inkscape:window-width="1366"
inkscape:window-height="705"
inkscape:window-x="253"
inkscape:window-y="1072"
inkscape:window-maximized="1"
showguides="false"
inkscape:guide-bbox="true"
inkscape:snap-bbox="true"
inkscape:object-nodes="true">
<inkscape:grid
type="xygrid"
id="grid4042" />
<sodipodi:guide
position="37,4"
orientation="0,1"
id="guide4951"
inkscape:locked="false" />
<sodipodi:guide
position="38,60"
orientation="0,1"
id="guide4955"
inkscape:locked="false" />
<sodipodi:guide
position="-19,32"
orientation="0,1"
id="guide4957"
inkscape:locked="false" />
</sodipodi:namedview>
<metadata
id="metadata4039">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<rect
rx="4"
y="4"
x="4"
height="56"
width="56"
id="rect5093"
style="display:inline;opacity:0.98999999;fill:#34d07b;fill-opacity:1;stroke:none;stroke-opacity:1" />
<rect
rx="3"
y="5"
x="5"
height="54"
width="54"
id="rect5095"
style="display:inline;opacity:1;fill:url(#linearGradient866);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="ccccccccccccccccc"
inkscape:connector-curvature="0"
id="path5085-3-6"
d="M 32,13 11,25 v 24 l 7,4 7,-4 v -8 l -7,-4 v -8 l 14,-8 14,8 v 8 l -7,4 v 8 l 7,4 7,-4 V 25 Z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.15;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.97797471;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4173);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<path
sodipodi:nodetypes="ccccccccccccccccc"
inkscape:connector-curvature="0"
id="path5085-3"
d="M 32,11 11,23 v 24 l 7,4 7,-4 v -8 l -7,-4 v -8 l 14,-8 14,8 v 8 l -7,4 v 8 l 7,4 7,-4 V 23 Z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.97797471;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter5497);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
</svg>

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -0,0 +1,173 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64"
height="64"
id="svg4034"
version="1.1"
inkscape:version="0.91 r13725"
inkscape:export-filename="/home/umcaruje/d/Dropbox/lmms icons/project-256x256.png"
inkscape:export-xdpi="360"
inkscape:export-ydpi="360"
sodipodi:docname="application-x-lmms-project.svg"
enable-background="new">
<defs
id="defs4036">
<linearGradient
id="linearGradient4244-6"
inkscape:collect="always">
<stop
id="stop4428"
offset="0"
style="stop-color:#27ab5f;stop-opacity:1" />
<stop
id="stop4430"
offset="1"
style="stop-color:#249a56;stop-opacity:1" />
</linearGradient>
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter4400"
x="-0.024"
width="1.048"
y="-0.024"
height="1.048">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.14999999"
id="feGaussianBlur4402" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4244-6"
id="linearGradient4432"
gradientUnits="userSpaceOnUse"
x1="9.8838835"
y1="-9.8994951"
x2="10.275496"
y2="27.930717" />
<filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter4442"
x="-0.0116"
width="1.0232"
y="-0.012428571"
height="1.0248571">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.145"
id="feGaussianBlur4444" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="4.2102935"
inkscape:cy="18.651114"
inkscape:current-layer="g4263"
showgrid="false"
inkscape:grid-bbox="true"
inkscape:document-units="px"
inkscape:window-width="1366"
inkscape:window-height="740"
inkscape:window-x="339"
inkscape:window-y="1080"
inkscape:window-maximized="1"
showguides="false"
inkscape:guide-bbox="true"
inkscape:snap-bbox="true"
inkscape:object-nodes="true">
<inkscape:grid
type="xygrid"
id="grid4042" />
<sodipodi:guide
position="37,4"
orientation="0,1"
id="guide4951" />
<sodipodi:guide
position="38,60"
orientation="0,1"
id="guide4955" />
<sodipodi:guide
position="-19,32"
orientation="0,1"
id="guide4957" />
</sodipodi:namedview>
<metadata
id="metadata4039">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="g4263"
inkscape:label="mimetype"
style="display:inline">
<g
id="g4189">
<path
sodipodi:nodetypes="ssssssccccs"
inkscape:connector-curvature="0"
id="path4273"
d="m 10,-30 c -1.108,0 -2,0.892 -2,2 l 0,56 c 0,1.108 0.892,2 2,2 l 44,0 c 1.108,0 2,-0.892 2,-2 l 0,-43 c 0,-1 -1,-2 -1,-2 L 43,-29 c 0,0 -1,-1 -2,-1 z"
style="display:inline;opacity:1;fill:#34d07b;fill-opacity:1;stroke:none;stroke-opacity:1"
transform="translate(0,32)" />
<path
sodipodi:nodetypes="sssssscccs"
inkscape:connector-curvature="0"
id="path4275"
d="m 10,-29 c -0.554,0 -1,0.446 -1,1 l 0,56 c 0,0.554 0.446,1 1,1 l 44,0 c 0.554,0 1,-0.446 1,-1 l 0,-43 -13,-1 -1,-13 z"
style="display:inline;opacity:1;fill:url(#linearGradient4432);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="translate(0,32)" />
<path
sodipodi:nodetypes="ccccccc"
inkscape:connector-curvature="0"
id="path4339-5"
d="m 40,-29 0,11.999999 c 0,2 1,3 3,3 l 11.999999,0 0,-1 L 41,-29 Z"
style="display:inline;opacity:0.12999998;fill:#222222;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter4400)"
transform="translate(0,32)" />
<path
sodipodi:nodetypes="ccccccc"
inkscape:connector-curvature="0"
id="path4339"
d="m 41,-29 0,12 c 0,1.03125 0.9375,2 2,2 l 12,0 0,-1 -13,-13 z"
style="display:inline;fill:#34d07b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
transform="translate(0,32)" />
<path
sodipodi:nodetypes="ccccccccccccccccc"
inkscape:connector-curvature="0"
id="path4436"
d="m 32,22 -15,8 0,17.5 5,2.5 4.999999,-2.5 0,-6 L 22,39 l 0,-6 10,-5.5 10,5.5 0,6 -4.999999,2.5 0,6 L 42,50 47,47.5 47,30 Z"
style="display:inline;color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;overflow:visible;visibility:visible;opacity:0.15;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.97797471;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4442);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.97797471;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter5497);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 32,20 -15,8 0,17.5 5,2.5 4.999999,-2.5 0,-6 L 22,37 l 0,-6 10,-5.5 10,5.5 0,6 -4.999999,2.5 0,6 L 42,48 47,45.5 47,28 Z"
id="path4265"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccc" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -55,6 +55,7 @@ echo -e "\nWriting verbose output to \"${LOGFILE}\""
export PATH="$(pwd -P)/squashfs-root/usr/bin:$(dirname "@QT_QMAKE_EXECUTABLE@")":$PATH
# Fetch portable linuxdeployqt if cache is older than $DAYSOLD
APPIMAGETOOL="squashfs-root/usr/bin/appimagetool"
echo -e "\nDownloading linuxdeployqt to ${LINUXDEPLOYQT}..."
mkdir -p "$HOME/bin"
DAYSOLD=2
@@ -69,7 +70,6 @@ elif ! find "$LINUXDEPLOYQT" -mtime -$DAYSOLD 2>/dev/null|grep -q "." > /dev/nul
touch "$LINUXDEPLOYQT"
success "Downloaded $LINUXDEPLOYQT"
"$LINUXDEPLOYQT" --appimage-extract > /dev/null 2>&1
APPIMAGETOOL="squashfs-root/usr/bin/appimagetool"
success "Extracted $APPIMAGETOOL"
else
skipped "$LINUXDEPLOYQT is less than $DAYSOLD days old"
@@ -181,6 +181,10 @@ if [ -e "${APPDIR}/usr/lib/libjack.so.0" ]; then
mv "${APPDIR}/usr/lib/libjack.so.0" "${APPDIR}usr/lib/lmms/optional/"
fi
# Point the AppRun to the shim launcher
rm -f "${APPDIR}/AppRun"
ln -sr "${APPDIR}/usr/bin/lmms" "${APPDIR}/AppRun"
# Create AppImage
echo -e "\nFinishing the AppImage..."
echo -e "\n\n>>>>> appimagetool" >> "$LOGFILE"

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -0,0 +1,92 @@
# A wrapper around pkg-config-provided and cmake-provided bash completion that
# will have dynamic behavior at INSTALL() time to allow both root-level
# INSTALL() as well as user-level INSTALL().
#
# See also https://github.com/scop/bash-completion
#
# Copyright (c) 2018, Tres Finocchiaro, <tres.finocchiaro@gmail.com>
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
# Usage:
# INCLUDE(BashCompletion)
# BASHCOMP_INSTALL(foo)
# ... where "foo" is a shell script adjacent to the CMakeLists.txt
#
# How it determines BASHCOMP_PKG_PATH, in order:
# 1. Uses BASHCOMP_PKG_PATH if already set (e.g. -DBASHCOMP_PKG_PATH=...)
# a. If not, uses pkg-config's PKG_CHECK_MODULES to determine path
# b. Fallback to cmake's FIND_PACKAGE(bash-completion) path
# c. Fallback to hard-coded /usr/share/bash-completion/completions
# 2. Final fallback to ${CMAKE_INSTALL_PREFIX}/share/bash-completion/completions if
# detected path is unwritable.
# - Windows does not support bash completion
# - macOS support should eventually be added for Homebrew (TODO)
IF(WIN32)
MESSAGE(STATUS "Bash competion is not supported on this platform.")
ELSEIF(APPLE)
MESSAGE(STATUS "Bash completion is not yet implemented for this platform.")
ELSE()
INCLUDE(FindUnixCommands)
# Honor manual override if provided
IF(NOT BASHCOMP_PKG_PATH)
# First, use pkg-config, which is the most reliable
FIND_PACKAGE(PkgConfig QUIET)
IF(PKGCONFIG_FOUND)
PKG_CHECK_MODULES(BASH_COMPLETION bash-completion)
PKG_GET_VARIABLE(BASHCOMP_PKG_PATH bash-completion completionsdir)
ELSE()
# Second, use cmake (preferred but less common)
FIND_PACKAGE(bash-completion QUIET)
IF(BASH_COMPLETION_FOUND)
SET(BASHCOMP_PKG_PATH "${BASH_COMPLETION_COMPLETIONSDIR}")
ENDIF()
ENDIF()
# Third, use a hard-coded fallback value
IF("${BASHCOMP_PKG_PATH}" STREQUAL "")
SET(BASHCOMP_PKG_PATH "/usr/share/bash-completion/completions")
ENDIF()
ENDIF()
# Always provide a fallback for non-root INSTALL()
SET(BASHCOMP_USER_PATH "${CMAKE_INSTALL_PREFIX}/share/bash-completion/completions")
# Cmake doesn't allow easy use of conditional logic at INSTALL() time
# this is a problem because ${BASHCOMP_PKG_PATH} may not be writable and we
# need sane fallback behavior for bundled INSTALL() (e.g. .AppImage, etc).
#
# The reason this can't be detected by cmake is that it's fairly common to
# run "cmake" as a one user (i.e. non-root) and "make install" as another user
# (i.e. root).
#
# - Creates a script called "install_${SCRIPT_NAME}_completion.sh" into the
# working binary directory and invokes this script at install.
# - Script handles INSTALL()-time conditional logic for sane ballback behavior
# when ${BASHCOMP_PKG_PATH} is unwritable (i.e. non-root); Something cmake
# can't handle on its own at INSTALL() time)
MACRO(BASHCOMP_INSTALL SCRIPT_NAME)
# A shell script for wrapping conditionl logic
SET(BASHCOMP_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/install_${SCRIPT_NAME}_completion.sh")
FILE(WRITE ${BASHCOMP_SCRIPT} "\
#!${BASH}\n\
set -e\n\
BASHCOMP_PKG_PATH=\"${BASHCOMP_USER_PATH}\"\n\
if [ -w \"${BASHCOMP_PKG_PATH}\" ]; then\n\
BASHCOMP_PKG_PATH=\"${BASHCOMP_PKG_PATH}\"\n\
fi\n\
echo -e \"\\nInstalling bash completion...\\n\"\n\
mkdir -p \"\$BASHCOMP_PKG_PATH\"\n\
cp \"${CMAKE_CURRENT_SOURCE_DIR}/${SCRIPT_NAME}\" \"\$BASHCOMP_PKG_PATH\"\n\
chmod a+r \"\$BASHCOMP_PKG_PATH/${SCRIPT_NAME}\"\n\
echo -e \"Bash completion for ${SCRIPT_NAME} has been installed to \$BASHCOMP_PKG_PATH/${SCRIPT_NAME}\"\n\
")
INSTALL(CODE "EXECUTE_PROCESS(COMMAND chmod u+x \"install_${SCRIPT_NAME}_completion.sh\" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )")
INSTALL(CODE "EXECUTE_PROCESS(COMMAND \"./install_${SCRIPT_NAME}_completion.sh\" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )")
MESSAGE(STATUS "Bash completion script for ${SCRIPT_NAME} will be installed to ${BASHCOMP_PKG_PATH} or fallback to ${BASHCOMP_USER_PATH} if unwritable.")
ENDMACRO()
ENDIF()

View File

@@ -7,7 +7,7 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME)
CMAKE_PARSE_ARGUMENTS(PLUGIN "" "" "MOCFILES;EMBEDDED_RESOURCES;UICFILES;LINK" ${ARGN})
SET(PLUGIN_SOURCES ${PLUGIN_UNPARSED_ARGUMENTS})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src/gui)
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_SOURCE_DIR}/include" "${CMAKE_SOURCE_DIR}/src/gui")
ADD_DEFINITIONS(-DPLUGIN_NAME=${PLUGIN_NAME})
@@ -20,15 +20,15 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME)
FILE(GLOB EXPANDED "${ARG}")
LIST(SORT EXPANDED)
FOREACH(ITEM ${EXPANDED})
LIST(APPEND NEW_ARGS ${ITEM})
LIST(APPEND NEW_ARGS "${ITEM}")
ENDFOREACH()
ENDFOREACH()
SET(PLUGIN_EMBEDDED_RESOURCES ${NEW_ARGS})
SET(ER_H ${CMAKE_CURRENT_BINARY_DIR}/embedded_resources.h)
SET(ER_H "${CMAKE_CURRENT_BINARY_DIR}/embedded_resources.h")
ADD_CUSTOM_COMMAND(OUTPUT ${ER_H}
COMMAND ${BIN2RES}
ARGS ${PLUGIN_EMBEDDED_RESOURCES} > ${ER_H}
ARGS ${PLUGIN_EMBEDDED_RESOURCES} > "${ER_H}"
DEPENDS bin2res)
ENDIF(ER_LEN)
@@ -45,11 +45,11 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME)
ENDFOREACH(f)
IF(LMMS_BUILD_APPLE)
LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
LINK_DIRECTORIES("${CMAKE_BINARY_DIR}")
LINK_LIBRARIES(${QT_LIBRARIES})
ENDIF(LMMS_BUILD_APPLE)
IF(LMMS_BUILD_WIN32)
LINK_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR})
LINK_DIRECTORIES("${CMAKE_BINARY_DIR}" "${CMAKE_SOURCE_DIR}")
LINK_LIBRARIES(${QT_LIBRARIES})
ENDIF(LMMS_BUILD_WIN32)
IF(LMMS_BUILD_MSYS AND CMAKE_BUILD_TYPE STREQUAL "Debug")
@@ -73,12 +73,16 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME)
INSTALL(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION "${PLUGIN_DIR}")
IF(LMMS_BUILD_APPLE)
SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES LINK_FLAGS "-bundle_loader ${CMAKE_BINARY_DIR}/lmms")
IF ("${PLUGIN_LINK}" STREQUAL "SHARED")
SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
ELSE()
SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES LINK_FLAGS "-bundle_loader \"${CMAKE_BINARY_DIR}/lmms\"")
ENDIF()
ADD_DEPENDENCIES(${PLUGIN_NAME} lmms)
ENDIF(LMMS_BUILD_APPLE)
IF(LMMS_BUILD_WIN32)
SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES PREFIX "")
ADD_CUSTOM_COMMAND(TARGET ${PLUGIN_NAME} POST_BUILD COMMAND ${STRIP} $<TARGET_FILE:${PLUGIN_NAME}>)
ADD_CUSTOM_COMMAND(TARGET ${PLUGIN_NAME} POST_BUILD COMMAND ${STRIP} "$<TARGET_FILE:${PLUGIN_NAME}>")
ENDIF(LMMS_BUILD_WIN32)
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${ER_H} ${plugin_MOC_out}")

View File

@@ -19,14 +19,16 @@ if(SNDIO_LIBRARY)
get_filename_component(SNDIO_LIBRARY_DIR ${SNDIO_LIBRARY} PATH)
endif(SNDIO_LIBRARY)
check_library_exists(sndio sio_open "${SNDIO_LIBRARY_DIR}" HAVE_SNDIO)
if(HAVE_SNDIO)
message(STATUS "Found sndio: ${SNDIO_LIBRARY}")
else(HAVE_SNDIO)
message(STATUS "sndio not found")
check_library_exists(sndio sio_open "${SNDIO_LIBRARY_DIR}" HAVE_SIO_OPEN)
find_path(SNDIO_INCLUDE_DIR sndio.h)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SNDIO DEFAULT_MSG SNDIO_LIBRARY SNDIO_INCLUDE_DIR HAVE_SIO_OPEN)
if(SNDIO_FOUND)
set(SNDIO_INCLUDE_DIRS "${SNDIO_INCLUDE_DIR}")
set(SNDIO_LIBRARIES "${SNDIO_LIBRARY}")
endif(HAVE_SNDIO)
set(SNDIO_FOUND ${HAVE_SNDIO})
find_path(SNDIO_INCLUDES sndio.h)
mark_as_advanced(SNDIO_INCLUDES SNDIO_LIBRARY)
mark_as_advanced(SNDIO_INCLUDE_DIR SNDIO_LIBRARY SNDIO_INCLUDE_DIRS SNDIO_LIBRARIES)

View File

@@ -51,6 +51,10 @@ ELSE()
SET(STRIP ${MINGW_TOOL_PREFIX}strip)
SET(WINDRES ${MINGW_TOOL_PREFIX}windres)
SET(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config)
IF(CMAKE_VERSION LESS 3)
SET(PKG_CONFIG_EXECUTABLE $ENV{PKG_CONFIG})
SET(PKG_CONFIG_FOUND TRUE)
ENDIF()
# Search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

View File

@@ -1,5 +1,5 @@
SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/nsis_branding.bmp")
SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/lmms.ico")
SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/icon.ico")
SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_PROJECT_NAME}.exe" PARENT_SCOPE)
SET(CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME_UCASE} ${VERSION}" PARENT_SCOPE)
SET(CPACK_NSIS_HELP_LINK "${PROJECT_URL}" PARENT_SCOPE)
@@ -71,3 +71,5 @@ IF(LMMS_HAVE_STK)
ENDIF()
INSTALL(FILES "lmms.exe.manifest" DESTINATION .)
INSTALL(FILES "lmms.VisualElementsManifest.xml" DESTINATION .)
INSTALL(DIRECTORY "assets" DESTINATION .)

View File

@@ -129,6 +129,7 @@ NoBackup:
WriteRegStr HKCR "$R0" "" "$R0"
WriteRegStr HKCR "$R0\shell" "" "open"
Skip:
WriteRegStr HKCR "$R0\DefaultIcon" "" "$R2,1"
WriteRegStr HKCR "$R0\shell\open\command" "" '"$R2" "%1"'
WriteRegStr HKCR "$R0\shell\edit" "" "Edit $R0"
WriteRegStr HKCR "$R0\shell\edit\command" "" '"$R2" "%1"'

BIN
cmake/nsis/assets/Logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
cmake/nsis/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 KiB

View File

@@ -0,0 +1,9 @@
<Application xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<VisualElements
ShowNameOnSquare150x150Logo='on'
Square150x150Logo='assets\Logo.png'
Square70x70Logo='assets\SmallLogo.png'
Square44x44Logo='assets\SmallLogo.png'
ForegroundText='light'
BackgroundColor='#249A57'/>
</Application>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

View File

@@ -1,4 +1,5 @@
lmmsicon ICON cmake/nsis/lmms.ico
lmmsicon ICON cmake/nsis/icon.ico
lmmsprojecticon ICON cmake/nsis/project.ico
#include <windows.h>
VS_VERSION_INFO VERSIONINFO

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

BIN
cmake/nsis/project.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 KiB

View File

@@ -1034,7 +1034,7 @@ Máte-li zájem o překlad LMMS do jiného jazyka, nebo chcete-li vylepšit exis
</message>
<message>
<source>FDBK</source>
<translation>ZP. VAZBA</translation>
<translation>FDBK</translation>
</message>
<message>
<source>RATE</source>
@@ -2172,7 +2172,7 @@ Please make sure you have write permission to the file and the directory contain
</message>
<message>
<source>FDBK</source>
<translation>ZP. VAZBA</translation>
<translation>FDBK</translation>
</message>
<message>
<source>NOISE</source>

View File

@@ -1030,7 +1030,7 @@ Wenn Sie daran interessiert sind LMMS in eine andere Sprache zu übersetzen oder
</message>
<message>
<source>DELAY</source>
<translation>VERZÖGERUNG</translation>
<translation>DELAY</translation>
</message>
<message>
<source>FDBK</source>
@@ -2164,7 +2164,7 @@ Please make sure you have write permission to the file and the directory contain
</message>
<message>
<source>DELAY</source>
<translation>VERZÖGERUNG</translation>
<translation>DELAY</translation>
</message>
<message>
<source>RATE</source>

View File

@@ -700,11 +700,11 @@ Si te interesa traducir LMMS a otros idiomas o mejorar las traducciones existent
<name>BitcrushControlDialog</name>
<message>
<source>IN</source>
<translation>ENTRADA</translation>
<translation>IN</translation>
</message>
<message>
<source>OUT</source>
<translation>SALIDA</translation>
<translation>OUT</translation>
</message>
<message>
<source>GAIN</source>
@@ -728,7 +728,7 @@ Si te interesa traducir LMMS a otros idiomas o mejorar las traducciones existent
</message>
<message>
<source>CLIP</source>
<translation>RECORTE</translation>
<translation>CLIP</translation>
</message>
<message>
<source>Output Clip:</source>
@@ -1031,7 +1031,7 @@ Si te interesa traducir LMMS a otros idiomas o mejorar las traducciones existent
</message>
<message>
<source>DELAY</source>
<translation>RETRASO</translation>
<translation>DELAY</translation>
</message>
<message>
<source>FDBK</source>

View File

@@ -1218,7 +1218,7 @@ If you&apos;re interested in translating LMMS in another language or want to imp
</message>
<message>
<source>DECAY</source>
<translation type="unfinished">محو-DECAY</translation>
<translation type="unfinished">DECAY</translation>
</message>
<message>
<source>Time:</source>
@@ -1360,7 +1360,7 @@ Right clicking will bring up a context menu where you can change the order in wh
</message>
<message>
<source>HOLD</source>
<translation type="unfinished">نگهداری-HOLD</translation>
<translation type="unfinished">HOLD</translation>
</message>
<message>
<source>Hold:</source>

View File

@@ -699,11 +699,11 @@ Si vous êtes intéressé par la traduction de LMMS dans une nouvelle langue ou
<name>BitcrushControlDialog</name>
<message>
<source>IN</source>
<translation>ENTRÉE</translation>
<translation>IN</translation>
</message>
<message>
<source>OUT</source>
<translation>SORTIE</translation>
<translation>OUT</translation>
</message>
<message>
<source>GAIN</source>
@@ -2173,7 +2173,7 @@ Veuillez vérifier que vous avez les droits d&apos;accès en écriture à ce fic
</message>
<message>
<source>DELAY</source>
<translation>DE RETARD</translation>
<translation>DELAY</translation>
</message>
<message>
<source>RATE</source>

View File

@@ -1468,7 +1468,7 @@ Ao premer co botón dereito aparece un menú de contexto no que se pode cambiar
<name>EnvelopeAndLfoView</name>
<message>
<source>DEL</source>
<translation>TMP REV</translation>
<translation>DEL</translation>
</message>
<message>
<source>Predelay:</source>
@@ -1540,7 +1540,7 @@ Ao premer co botón dereito aparece un menú de contexto no que se pode cambiar
</message>
<message>
<source>AMT</source>
<translation>CANTIDADE</translation>
<translation>AMT</translation>
</message>
<message>
<source>Modulation amount:</source>

View File

@@ -1033,7 +1033,7 @@ Se sei interessato a tradurre LMMS o vuoi migliorare una traduzione esistente, s
</message>
<message>
<source>DELAY</source>
<translation>RITARDO</translation>
<translation>DELAY</translation>
</message>
<message>
<source>FDBK</source>
@@ -1041,7 +1041,7 @@ Se sei interessato a tradurre LMMS o vuoi migliorare una traduzione esistente, s
</message>
<message>
<source>RATE</source>
<translation>FREQUENZA</translation>
<translation>RATE</translation>
</message>
<message>
<source>AMNT</source>
@@ -2168,11 +2168,11 @@ Si prega di controllare i permessi di scrittura sul file e la cartella che lo co
</message>
<message>
<source>DELAY</source>
<translation>RITARDO</translation>
<translation>DELAY</translation>
</message>
<message>
<source>RATE</source>
<translation>FREQUENZA</translation>
<translation>RATE</translation>
</message>
<message>
<source>Rate:</source>

View File

@@ -3277,7 +3277,7 @@ You can remove and move FX channels in the context menu, which is accessed by ri
</message>
<message>
<source>PAN</source>
<translation>パニング</translation>
<translation>PAN</translation>
</message>
<message>
<source>MIDI</source>
@@ -5984,7 +5984,7 @@ Reason: &quot;%2&quot;</source>
</message>
<message>
<source>PAN</source>
<translation></translation>
<translation>PAN</translation>
</message>
</context>
<context>

View File

@@ -80,7 +80,7 @@ Esteban Viveros</translation>
</message>
<message>
<source>LEFT</source>
<translation>ESQUERDA</translation>
<translation>LEFT</translation>
</message>
<message>
<source>Left gain:</source>
@@ -88,7 +88,7 @@ Esteban Viveros</translation>
</message>
<message>
<source>RIGHT</source>
<translation>DIREITA</translation>
<translation>RIGHT</translation>
</message>
<message>
<source>Right gain:</source>
@@ -701,11 +701,11 @@ Esteban Viveros</translation>
<name>BitcrushControlDialog</name>
<message>
<source>IN</source>
<translation>DENTRO</translation>
<translation>IN</translation>
</message>
<message>
<source>OUT</source>
<translation>FORA</translation>
<translation>OUT</translation>
</message>
<message>
<source>GAIN</source>
@@ -3000,7 +3000,7 @@ You can remove and move FX channels in the context menu, which is accessed by ri
</message>
<message>
<source>VELOCITY</source>
<translation>INTENSIDADE</translation>
<translation>VELOCITY</translation>
</message>
<message>
<source>ENABLE MIDI OUTPUT</source>
@@ -7776,7 +7776,7 @@ Por favor certifique-se que você tem permissões de leitura para o arquivo e pa
</message>
<message>
<source>RELEASE</source>
<translation>LANÇAMENTO</translation>
<translation>RELEASE</translation>
</message>
<message>
<source>Peak release time:</source>

View File

@@ -703,11 +703,11 @@ Oe Ai &lt;oeai/at/symbiants/dot/com&gt;</translation>
<name>BitcrushControlDialog</name>
<message>
<source>IN</source>
<translation>ВХОД</translation>
<translation>IN</translation>
</message>
<message>
<source>OUT</source>
<translation>ВЫХОД</translation>
<translation>OUT</translation>
</message>
<message>
<source>GAIN</source>

View File

@@ -1063,7 +1063,7 @@ If you&apos;re interested in translating LMMS in another language or want to imp
</message>
<message>
<source>FREQ</source>
<translation>FREKV.</translation>
<translation>FREQ</translation>
</message>
<message>
<source>Cutoff frequency</source>
@@ -1443,7 +1443,7 @@ Right clicking will bring up a context menu where you can change the order in wh
</message>
<message>
<source>Freq x 100</source>
<translation>Frekv. x 100</translation>
<translation>Freq x 100</translation>
</message>
<message>
<source>Modulate Env-Amount</source>
@@ -1454,7 +1454,7 @@ Right clicking will bring up a context menu where you can change the order in wh
<name>EnvelopeAndLfoView</name>
<message>
<source>DEL</source>
<translation>RADERA</translation>
<translation>DEL</translation>
</message>
<message>
<source>Predelay:</source>
@@ -1526,7 +1526,7 @@ Right clicking will bring up a context menu where you can change the order in wh
</message>
<message>
<source>AMT</source>
<translation>MÄNGD</translation>
<translation>AMT</translation>
</message>
<message>
<source>Modulation amount:</source>
@@ -1590,7 +1590,7 @@ Right clicking will bring up a context menu where you can change the order in wh
</message>
<message>
<source>FREQ x 100</source>
<translation>FREKV. x 100</translation>
<translation>FREQ x 100</translation>
</message>
<message>
<source>Click here if the frequency of this LFO should be multiplied by 100.</source>
@@ -1883,7 +1883,7 @@ Right clicking will bring up a context menu where you can change the order in wh
</message>
<message>
<source>Freq: </source>
<translation>Frekv.:</translation>
<translation>Freq:</translation>
</message>
</context>
<context>
@@ -3197,7 +3197,7 @@ You can remove and move FX channels in the context menu, which is accessed by ri
</message>
<message>
<source>FREQ</source>
<translation>FREKV.</translation>
<translation>FREQ</translation>
</message>
<message>
<source>cutoff frequency:</source>
@@ -3275,7 +3275,7 @@ You can remove and move FX channels in the context menu, which is accessed by ri
</message>
<message>
<source>PAN</source>
<translation>PANORERA</translation>
<translation>PAN</translation>
</message>
<message>
<source>MIDI</source>
@@ -3322,7 +3322,7 @@ You can remove and move FX channels in the context menu, which is accessed by ri
</message>
<message>
<source>PAN</source>
<translation>PANORERA</translation>
<translation>PAN</translation>
</message>
<message>
<source>Pitch</source>
@@ -3939,7 +3939,7 @@ Besök https://lmms.io/documentation/ för dokumentation (Engelska).</translatio
</message>
<message>
<source>&amp;View</source>
<translation>%Visa</translation>
<translation>&amp;Visa</translation>
</message>
<message>
<source>Toggle metronome</source>
@@ -5982,14 +5982,14 @@ Orsak: &quot;%2&quot;</translation>
</message>
<message>
<source>PAN</source>
<translation>PANORERA</translation>
<translation>PAN</translation>
</message>
</context>
<context>
<name>SetupDialog</name>
<message>
<source>Setup LMMS</source>
<translation>Ställ in LMMS</translation>
<translation>Inställningar</translation>
</message>
<message>
<source>General settings</source>
@@ -6077,7 +6077,7 @@ Orsak: &quot;%2&quot;</translation>
</message>
<message>
<source>STK rawwave directory</source>
<translation>Katalog för STK -vågform</translation>
<translation>Katalog för STK vågformer</translation>
</message>
<message>
<source>Default Soundfont File</source>
@@ -9950,4 +9950,4 @@ The LED in the lower right corner of the waveform editor determines whether the
<translation>Utgångsförstärkning</translation>
</message>
</context>
</TS>
</TS>

View File

@@ -1341,7 +1341,7 @@ If you&apos;re interested in translating LMMS in another language or want to imp
</message>
<message>
<source>DECAY</source>
<translation>ЗГАСАННЯ</translation>
<translation>DECAY</translation>
</message>
<message>
<source>Time:</source>

View File

@@ -0,0 +1,15 @@
* CapDan-ReggaeTry.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1369
* CapDan-ReggaetonTry.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1370
* CapDan-TwilightArea-OriginalByAlf42red.mmpz
- CC (by-sa)
- https://lmms.io/lsp/index.php?action=show&file=1439
* CapDan-ZeroSumGame-OriginalByZakarra.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1565

View File

@@ -2,22 +2,6 @@
- CC (by-sa)
- https://lmms.io/lsp/index.php?action=show&file=819
* CapDan-ReggaeTry.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1369
* CapDan-ReggaetonTry.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1370
* CapDan-TwilightArea-OriginalByAlf42red.mmpz
- CC (by-sa)
- https://lmms.io/lsp/index.php?action=show&file=1439
* CapDan-ZeroSumGame-OriginalByZakarra.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1565
* EsoXLB-CPU.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=723
@@ -34,6 +18,10 @@
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=581
* Jousboxx-BuzzerBeater.mmpz
- CC BY-SA 4.0
- https://github.com/LMMS/lmms/pull/3482#issuecomment-293609866
* Momo64-esp.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1534
@@ -50,6 +38,10 @@
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1156
* Popsip-Electric Dancer.mmpz
- Creative Commons (by-nc)
- https://lmms.io/lsp/?action=show&file=5414
* Root84-Initialize.mmpz
- Yellow openmusic
- https://lmms.io/lsp/index.php?action=show&file=628
@@ -62,14 +54,6 @@
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=515
* Skiessi-C64.mmpz
- CC (by sa)
- https://lmms.io/lsp/index.php?action=show&file=472
* Skiessi-Onion.mmpz
- CC (by-sa)
- https://lmms.io/lsp/index.php?action=show&file=405
* Socceroos-Progress.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1516
@@ -78,6 +62,10 @@
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1060
* Thaledric-Armageddon.mmpz
- Creative Commons (by-nc-sa)
- https://lmms.io/lsp/?action=show&file=1947
* Thomasso-AxeFromThe80s.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=474
@@ -85,7 +73,3 @@
* unfa-Spoken.mmpz
- CC (by-nc)
- https://lmms.io/lsp/index.php?action=show&file=4929
* Jousboxx-BuzzerBeater.mmpz
- CC (by-sa)
- https://lmms.io/lsp/?action=show&file=10488

View File

@@ -0,0 +1,7 @@
* Skiessi-C64.mmpz
- CC (by sa)
- https://lmms.io/lsp/index.php?action=show&file=472
* Skiessi-Onion.mmpz
- CC (by-sa)
- https://lmms.io/lsp/index.php?action=show&file=405

View File

@@ -1,3 +1,11 @@
* Crunk(Demo).mmp
- Artistic 2.0
- https://lmms.io/lsp/?action=show&file=4093
* DirtyLove.mmpz
- CC-BY-SA
- https://github.com/LMMS/lmms/pull/2727
* Greshz-CoolSnip.mmpz
- Artistic 2.0
- https://lmms.io/lsp/index.php?action=show&file=1170

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -157,6 +157,9 @@ GroupBox {
VisualizationWidget {
background: none;
border: none;
qproperty-normalColor: rgb(71, 253, 133);
qproperty-warningColor: rgb(255, 192, 64);
qproperty-clippingColor: rgb(255, 64, 64);
}
/* main toolbar cpu load widget - this can have transparent bg now */

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

View File

@@ -176,6 +176,9 @@ GroupBox {
VisualizationWidget {
background: none;
border: none;
qproperty-normalColor: rgb(71, 253, 133);
qproperty-warningColor: rgb(255, 192, 64);
qproperty-clippingColor: rgb(255, 64, 64);
}
/* main toolbar cpu load widget - this can have transparent bg now */

View File

@@ -15,3 +15,6 @@ if(DOXYGEN_FOUND)
COMMENT "Generating API documentation with Doxygen"
SOURCES Doxyfile.in)
endif(DOXYGEN_FOUND)
ADD_SUBDIRECTORY(bash-completion)

View File

@@ -0,0 +1,4 @@
INCLUDE(BashCompletion)
IF(COMMAND BASHCOMP_INSTALL)
BASHCOMP_INSTALL(lmms)
ENDIF()

334
doc/bash-completion/lmms Normal file
View File

@@ -0,0 +1,334 @@
# lmms(1) completion -*- shell-script -*-
# use shellcheck: "shellcheck -e bash <filename>"
_lmms_array_contains ()
{
local e match="$1"
shift
for e; do [[ "$e" == "$match" ]] && return 0; done
return 1
}
_lmms_long_param_of()
{
case "$1" in
-a)
echo "float"
;;
-b)
echo "bitrate"
;;
-c)
echo "config"
;;
-f)
echo "format"
;;
-i)
echo "interpolation"
;;
-l)
echo "loop"
;;
-m)
echo "mode"
;;
-o)
echo "output"
;;
-p)
echo "profile"
;;
-s)
echo "samplerate"
;;
-x)
echo "oversampling"
;;
*)
echo ""
;;
esac
}
_lmms_conv_old_action ()
{
case "$1" in
-d|--dump)
echo "dump"
;;
-r|--render)
echo "render"
;;
--rendertracks)
echo "rendertracks"
;;
-u|--upgrade)
echo "upgrade"
;;
*)
echo ""
;;
esac
}
_lmms()
{
local cword=$COMP_CWORD
local cur="${COMP_WORDS[COMP_CWORD]}"
# call routine provided by bash-completion
_init_completion || return
local params filemode filetypes
local i # counter variable
local pars_global pars_noaction pars_render actions shortargs
pars_global=(--allowroot --config --help --version)
pars_noaction=(--geometry --import)
pars_render=(--float --bitrate --format --interpolation)
pars_render+=(--loop --mode --output --profile)
pars_render+=(--samplerate --oversampling)
actions=(dump render rendertracks upgrade)
actions_old=(-d --dump -r --render --rendertracks -u --upgrade)
shortargs+=(-a -b -c -f -h -i -l -m -o -p -s -v -x)
local prev prev2
if [ "$cword" -gt 1 ]
then
prev=${COMP_WORDS[cword-1]}
fi
if [ "$cword" -gt 2 ]
then
prev2=${COMP_WORDS[cword-2]}
fi
# don't show shortargs, but complete them when entered
if [[ $cur =~ ^-[^-]$ ]]
then
if _lmms_array_contains "$cur" "${shortargs[@]}"
then
COMPREPLY=( "$cur" )
fi
return
fi
#
# please keep those in order like def_pars_args above
#
case $prev in
--bitrate|-b)
params="64 96 128 160 192 256 320"
;;
--config|-c)
filetypes='xml'
filemode='existing_files'
;;
--format|-f)
params='wav ogg mp3'
;;
--geometry)
# we can not name all possibilities, but this helps the user
# by showing them how the format is
params='0x0+0+0'
;;
--interpolation|-i)
params='linear sincfastest sincmedium sincbest'
;;
--import)
filetypes='mid|midi|MID|MIDI|rmi|RMI|h2song|H2SONG'
filemode='existing_files'
;;
--mode|-m)
params='s j m'
;;
--output|-o)
# default assumption: could be both
local render=1 rendertracks=1
for i in "${!COMP_WORDS[@]}"
do
if [[ ${COMP_WORDS[i]} =~ ^(render|-r|--render)$ ]]
then
rendertracks=
elif [[ ${COMP_WORDS[i]} =~ ^(rendertracks|--rendertracks)$ ]]
then
render=
fi
done
if [ "$rendertracks" ]
then
filemode='existing_directories'
fi
if [ "$render" ]
then
# filemode files is a superset of "existing directories"
# so it's OK to overwrite the filemode='existing_directories'
# from above
filetypes='wav|ogg|mp3'
filemode='files'
fi
;;
--profile|-p)
filemode='files'
;;
--samplerate|-s)
# these are the ones suggested for zyn
# if you think more are required,
# remove this comment and write a justification
params='44100 48000 96000 192000'
;;
--oversampling|-x)
params='1 2 4 8'
;;
*)
local action_found
# Is an action specified?
if [ "$cword" -gt 1 ]
then
local wrd
for wrd in "${COMP_WORDS[@]}"
do
# action named explicitly?
if _lmms_array_contains "$wrd" "${actions[@]}"
then
action_found=$wrd
break
# deprecated action name?
elif _lmms_array_contains "$wrd" "${actions_old[@]}"
then
action_found="$(_lmms_conv_old_action "$wrd")"
break
# no-action params found?
elif _lmms_array_contains "$wrd" "${pars_noaction[@]}"
then
action_found=none
break
fi
done
fi
if [[ $prev =~ -e|--help|-h|-version|-v ]]
then
# the -e flag (from --import) and help/version
# always mark the end of arguments
return
fi
if [[ "$action_found" =~ dump|none|^$ ]] && [[ $prev =~ \.mmpz? ]]
then
# mmp(z) mark the end of arguments for those actions
return
fi
local savefiletypes='mmpz|mmp'
local params_array
# find parameters/filetypes/dirtypes depending on actions
if ! [ "$action_found" ]
then
params_array=( "${actions[@]}" "${pars_global[@]}" "${pars_noaction[@]}")
filemode="existing_files"
filetypes="$savefiletypes"
elif [ "$action_found" == "none" ]
then
params_array=( "${pars_noaction[@]}" )
filemode="existing_files"
filetypes="$savefiletypes"
elif [ "$action_found" == "dump" ]
then
filemode="existing_files"
filetypes="mmpz"
elif [ "$action_found" == "upgrade" ]
then
if [ "$prev" == "upgrade" ]
then
filemode="existing_files"
filetypes="$savefiletypes"
elif [ "$prev2" == "upgrade" ]
then
filemode="files"
filetypes="$savefiletypes"
fi
elif [[ "$action_found" =~ render(tracks)? ]]
then
if [[ "$prev" =~ render(tracks)? ]]
then
filemode="existing_files"
filetypes="$savefiletypes"
else
params_array=( "${pars_render[@]}" )
fi
fi
# add params_array to params, but also check the history of comp words
local param
for param in "${params_array[@]}"
do
local do_append=1
for i in "${!COMP_WORDS[@]}"
do
if [ "$i" -ne 0 ] && [ "$i" -ne "$cword" ]
then
# disallow double long parameters
if [ "${COMP_WORDS[$i]}" == "$param" ]
then
do_append=
# disallow double short parameters
elif [ "--$(_lmms_long_param_of "${COMP_WORDS[$i]}")" == "$param" ]
then
do_append=
# --help or --version must be the first parameters
elif [ "$cword" -gt 1 ] && [[ $param =~ --help|--version ]]
then
do_append=
fi
fi
done
if [ "$do_append" ]
then
params+="$param "
fi
done
;;
esac
case $filemode in
# use completion routine provided by bash-completion
# to fill $COMPREPLY
existing_files)
_filedir "@($filetypes)"
;;
existing_directories)
_filedir -d
;;
files)
# non existing files complete like directories...
_filedir -d
# ...except for non-completing files with the right file type
if [ ${#COMPREPLY[@]} -eq 0 ]
then
if ! [[ "$cur" =~ /$ ]] && [ "$filetypes" ] && [[ "$cur" =~ \.($filetypes)$ ]]
then
# file ending fits, we seem to be done
COMPREPLY=( "$cur" )
fi
fi
;;
esac
if [ "$params" ]
then
# none of our parameters contain spaces, so deactivate shellcheck's warning
# shellcheck disable=SC2207
COMPREPLY+=( $(compgen -W "${params}" -- "${cur}") )
fi
}
complete -F _lmms lmms

View File

@@ -2,7 +2,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH LMMS 1 "June 15, 2017"
.TH LMMS 1 "September 10, 2018"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@@ -19,125 +19,83 @@
lmms \- software for easy music production
.SH SYNOPSIS
.B lmms
.RB "[ \--\fBallowroot\fP ]"
.RB "[\fBglobal options...\fP] [\fBaction\fP [\fBaction parameters\fP...]]
.br
.B lmms
.RB "[ \--\fBbitrate\fP \fIbitrate\fP ]"
.br
.B lmms
.RB "[ \--\fBconfig\fP \fIconfigfile\fP ]"
.br
.B lmms
.RB "[ \--\fBdump\fP \fIin\fP ]"
.br
.B lmms
.RB "[ \--\fBfloat\fP ]"
.br
.B lmms
.RB "[ \--\fBformat\fP \fIformat\fP ]"
.br
.B lmms
.RB "[ \--\fBgeometry\fP \fIgeometry\fP ]"
.br
.B lmms
.RB "[ \--\fBhelp\fP ]"
.br
.B lmms
.RB "[ \--\interpolation\fP \fImethod\fP ]"
.br
.B lmms
.RB "[ \--\fBimport\fP \fIin\fP [ \-e ] ]"
.br
.B lmms
.RB "[ \--\fBloop\fP ]"
.br
.B lmms
.RB "[ \--\fBmode\fP \fIstereomode\fP ]"
.br
.B lmms
.RB "[ \--\fBoutput\fP \fIpath\fP ]"
.br
.B lmms
.RB "[ \--\fBoversampling\fP \fIvalue\fP ]"
.br
.B lmms
.RB "[ \--\fBprofile\fP \fIout\fP ]"
.br
.B lmms
.RB "[ \--\fBrender\fP \fIfile\fP ] [options]"
.br
.B lmms
.RB "[ \--\fBsamplerate\fP \fIsamplerate\fP ]"
.br
.B lmms
.RB "[ \--\fBupgrade\fP \fIin\fP \fIout\fP ]"
.br
.B lmms
.RB "[ \--\fBversion\fP ]"
.br
.B lmms
.RI "[ file ]"
.SH DESCRIPTION
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively.
.B LMMS
LMMS is a free cross-platform alternative to commercial programs like FL Studio®, which allow you to produce music with your computer. This includes the creation of melodies and beats, the synthesis and mixing of sounds, and arranging of samples. You can have fun with your MIDI-keyboard and much more; all in a user-friendly and modern interface.
is a free cross-platform alternative to commercial programs like FL Studio®, which allow you to produce music with your computer. This includes the creation of melodies and beats, the synthesis and mixing of sounds, and arranging of samples. You can have fun with your MIDI-keyboard and much more; all in a user-friendly and modern interface.
LMMS features components such as a Song Editor, a Beat+Bassline Editor, a Piano Roll, an FX Mixer as well as many powerful instruments and effects.
.SH OPTIONS
.IP "\fB\-a, --float\fP
32bit float bit depth
.IP "\fB\-b, --bitrate\fP \fIbitrate\fP
Specify output bitrate in KBit/s (for OGG encoding only), default is 160
.SH ACTIONS
.IP "<no action> [\fIoptions\fP...] [\fIproject\fP]
Start LMMS in normal GUI mode.
.IP "\fBdump\fP \fIin\fP
Dump XML of compressed (MMPZ) file \fIin\fP.
.IP "\fBrender\fP \fIproject\fP [\fIoptions\fP...]
Render given project file.
.IP "\fBrendertracks\fP \fIproject\fP [\fIoptions\fP...]
Render each track to a different file.
.IP "\fBupgrade\fP \fIin\fP [\fIout\fP]
Upgrade file \fIin\fP and save as \fIout\fP. Standard out is used if no output file is specifed.
.SH GLOBAL OPTIONS
.IP "\fB\ --allowroot
Bypass root user startup check (use with caution).
.IP "\fB\-c, --config\fP \fIconfigfile\fP
Get the configuration from \fIconfigfile\fP instead of ~/.lmmsrc.xml (default)
.IP "\fB\-d, --dump\fP \fIin\fP
Dump XML of compressed file \fIin\fP (i.e. MMPZ-file)
.IP "\fB\-f, --format\fP \fIformat\fP
Specify format of render-output where \fIformat\fP is either 'wav', 'ogg' or 'mp3'.
.IP "\fB\ --geometry\fP \fIgeometry\fP
Specify the prefered size and position of the main window
.br
\fIgeometry\fP syntax is <\fIxsize\fPx\fIysize\fP+\fIxoffset\fP+\fIyoffset\fP>.
.br
Default: full screen
Get the configuration from \fIconfigfile\fP instead of ~/.lmmsrc.xml (default).
.IP "\fB\-h, --help\fP
Show usage information and exit.
.IP "\fB\-i, --interpolation\fP \fImethod\fP
Specify interpolation method - possible values are \fIlinear\fP, \fIsincfastest\fP (default), \fIsincmedium\fP, \fIsincbest\fP
.IP "\fB\ --import\fP \fIin\fP \fB\-e\fP
Import MIDI file \fIin\fP
.IP "\fB\-v, --version
Show version information and exit.
.SH OPTIONS IF NO ACTION IS GIVEN
.IP "\fB\ --geometry\fP \fIgeometry\fP
Specify the prefered size and position of the main window.
.br
\fIgeometry\fP syntax is \fIxsize\fPx\fIysize\fP+\fIxoffset\fP+\fIyoffset\fP.
.br
Default: full screen.
.IP "\fB\ --import\fP \fIin\fP \fB\-e\fP
Import MIDI or Hydrogen file \fIin\fP.
.br
.SH OPTIONS FOR RENDER AND RENDERTRACKS
.IP "\fB\-a, --float\fP
Use 32bit float bit depth.
.IP "\fB\-b, --bitrate\fP \fIbitrate\fP
Specify output bitrate in KBit/s (for OGG encoding only), default is 160.
.IP "\fB\-f, --format\fP \fIformat\fP
Specify format of render-output where \fIformat\fP is either 'wav', 'ogg' or 'mp3'.
.IP "\fB\-i, --interpolation\fP \fImethod\fP
Specify interpolation method - possible values are \fIlinear\fP, \fIsincfastest\fP (default), \fIsincmedium\fP, \fIsincbest\fP.
If -e is specified lmms exits after importing the file.
.IP "\fB\-l, --loop
Render the given file as a loop, i.e. stop rendering at exactly the end of the song. Additional silence or reverb tails at the end of the song are not rendered.
.IP "\fB\-m, --mode\fP \fIstereomode\fP
Set the stereo mode used for the MP3 export. \fIstereomode\fP can be either 's' (stereo mode), 'j' (joint stereo) or 'm' (mono). If no mode is given 'j' is used as the default.
.IP "\fB\-o, --output\fP \fIpath\fP
Render into \fIpath\fP
Render into \fIpath\fP.
.br
For --render, this is interpreted as a file path.
.br
For --render-tracks, this is interpreted as a path to an existing directory.
IP "\fB\-p, --profile\fP \fIout\fP
Dump profiling information to file \fIout\fP
.IP "\fB\-r, --render\fP \fIproject-file\fP
Render given file to either a wav\- or ogg\-file. See \fB\-f\fP for details
.IP "\fB\-r, --rendertracks\fP \fIproject-file\fP
Render each track into a separate wav\- or ogg\-file. See \fB\-f\fP for details
.IP "\fB\-p, --profile\fP \fIout\fP
Dump profiling information to file \fIout\fP.
.IP "\fB\-s, --samplerate\fP \fIsamplerate\fP
Specify output samplerate in Hz - range is 44100 (default) to 192000
.IP "\fB\-u, --upgrade\fP \fIin\fP \fIout\fP
Upgrade file \fIin\fP and save as \fIout\fP
.IP "\fB\-v, --version
Show version information and exit.
Specify output samplerate in Hz - range is 44100 (default) to 192000.
.IP "\fB\-x, --oversampling\fP \fIvalue\fP
Specify oversampling, possible values: 1, 2 (default), 4, 8
.IP "\fB\ --allowroot
Bypass root user startup check (use with caution).
Specify oversampling, possible values: 1, 2 (default), 4, 8.
.SH SEE ALSO
.BR https://lmms.io/
.BR https://lmms.io/documentation/

View File

@@ -56,6 +56,10 @@ protected:
return m_outputFile.isOpen();
}
inline int outputFileHandle() const
{
return m_outputFile.handle();
}
private:
QFile m_outputFile;

View File

@@ -37,7 +37,6 @@
#include <QtCore/QVector>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QMutexLocker>
#include "AudioDevice.h"
#include "AudioDeviceSetupWidget.h"
@@ -108,7 +107,6 @@ private:
bool m_active;
bool m_stopped;
QMutex m_processingMutex;
MidiJack *m_midiClient;
QVector<jack_port_t *> m_outputPorts;

View File

@@ -145,7 +145,6 @@ private:
int m_outBufSize;
bool m_stopped;
QSemaphore m_stopSemaphore;
} ;

View File

@@ -109,6 +109,8 @@ private:
fpp_t m_outBufFramesTotal;
fpp_t m_outBufFrameIndex;
bool m_stopped;
int m_disconnectErr;
void onBackendDisconnect(int err);

View File

@@ -84,25 +84,6 @@ public:
return m_type;
}
// small helper class for adjusting application's locale settings
// when loading or saving floating point values rendered to strings
class LocaleHelper
{
public:
enum Modes
{
ModeLoad,
ModeSave,
ModeCount
};
typedef Modes Mode;
LocaleHelper( Mode mode );
~LocaleHelper();
};
private:
static Type type( const QString& typeName );
static QString typeName( Type type );

View File

@@ -30,22 +30,24 @@
#include <stdint.h>
#include "lmms_basics.h"
class QString;
class DrumSynth {
public:
DrumSynth() {};
int GetDSFileSamples(const char *dsfile, int16_t *&wave, int channels, sample_rate_t Fs);
int GetDSFileSamples(QString dsfile, int16_t *&wave, int channels, sample_rate_t Fs);
private:
float LoudestEnv(void);
int LongestEnv(void);
void UpdateEnv(int e, long t);
void GetEnv(int env, const char *sec, const char *key, const char *ini);
void GetEnv(int env, const char *sec, const char *key, QString ini);
float waveform(float ph, int form);
int GetPrivateProfileString(const char *sec, const char *key, const char *def, char *buffer, int size, const char *file);
int GetPrivateProfileInt(const char *sec, const char *key, int def, const char *file);
float GetPrivateProfileFloat(const char *sec, const char *key, float def, const char *file);
int GetPrivateProfileString(const char *sec, const char *key, const char *def, char *buffer, int size, QString file);
int GetPrivateProfileInt(const char *sec, const char *key, int def, QString file);
float GetPrivateProfileFloat(const char *sec, const char *key, float def, QString file);
};

View File

@@ -78,6 +78,12 @@ protected:
return m_file.read( _data, _len );
}
inline QByteArray readAllData()
{
m_file.seek(0);
return m_file.readAll();
}
inline void ungetChar( char _ch )
{
m_file.ungetChar( _ch );

72
include/IoHelper.h Normal file
View File

@@ -0,0 +1,72 @@
/*
* IoHelper.h - helper functions for file I/O
*
* Copyright (c) 2018 Hyunjin Song <tteu.ingog/at/gmail.com>
*
* This file is part of LMMS - https://lmms.io
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program (see COPYING); if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
*/
#include "lmmsconfig.h"
#include <cstdio>
#ifdef _WIN32
#include <windows.h>
std::wstring toWString(const std::string& s)
{
std::wstring ret;
int len = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, s.data(),
s.length(), nullptr, 0);
if (len == 0)
{
return ret;
}
ret.resize(len);
MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, s.data(), s.length(), &ret[0], len);
return ret;
}
#endif
#ifdef LMMS_BUILD_WIN32
#include <io.h>
#define F_OPEN_UTF8(a, b) _wfopen(toWString(a).data(), L##b)
#else
#ifdef LMMS_HAVE_UNISTD_H
#include <unistd.h>
#endif
#define F_OPEN_UTF8(a, b) fopen((a).data(), b)
#endif
int fileToDescriptor(FILE* f, bool closeFile = true)
{
int fh;
if (f == NULL) {return -1;}
#ifdef LMMS_BUILD_WIN32
fh = _dup(_fileno(f));
#else
fh = dup(fileno(f));
#endif
if (closeFile) {fclose(f);}
return fh;
}

67
include/LocaleHelper.h Normal file
View File

@@ -0,0 +1,67 @@
/*
* LocaleHelper.h - compatibility functions for handling decimal separators
* Providing helper functions which handle both periods and commas
* for decimal separators to load old projects correctly
*
* Copyright (c) 2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2018 Hyunjin Song <tteu.ingog/at/gmail.com>
*
* This file is part of LMMS - https://lmms.io
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program (see COPYING); if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
*/
#ifndef LOCALEHELPER_H
#define LOCALEHELPER_H
#include <QLocale>
#include <limits>
#include <cmath>
namespace LocaleHelper
{
inline double toDouble(QString str, bool* ok = nullptr)
{
bool isOkay;
double value;
QLocale c(QLocale::C);
c.setNumberOptions(QLocale::RejectGroupSeparator);
value = c.toDouble(str, &isOkay);
if (!isOkay)
{
QLocale german(QLocale::German);
german.setNumberOptions(QLocale::RejectGroupSeparator);
value = german.toDouble(str, &isOkay);
}
if (ok != nullptr) {*ok = isOkay;}
return value;
}
inline float toFloat(QString str, bool* ok = nullptr)
{
double d = toDouble(str, ok);
if (!std::isinf(d) && std::fabs(d) > std::numeric_limits<float>::max())
{
if (ok != nullptr) {*ok = false;}
return 0.0f;
}
return static_cast<float>(d);
}
}
#endif // LOCALEHELPER_H

View File

@@ -3,7 +3,7 @@
*
* Copyright (c) 2017-2017 Tres Finocchiaro <tres.finocchiaro/at/gmail.com>
*
* This file is part of LMMS - http://lmms.io
* This file is part of LMMS - https://lmms.io
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public

View File

@@ -308,6 +308,9 @@ public:
void requestChangeInModel();
void doneChangeInModel();
static bool isAudioDevNameValid(QString name);
static bool isMidiDevNameValid(QString name);
signals:
void qualitySettingsChanged();

View File

@@ -270,15 +270,15 @@ private:
void convertIntToFloat ( int_sample_t * & _ibuf, f_cnt_t _frames, int _channels);
void directFloatWrite ( sample_t * & _fbuf, f_cnt_t _frames, int _channels);
f_cnt_t decodeSampleSF( const char * _f, sample_t * & _buf,
f_cnt_t decodeSampleSF( QString _f, sample_t * & _buf,
ch_cnt_t & _channels,
sample_rate_t & _sample_rate );
#ifdef LMMS_HAVE_OGGVORBIS
f_cnt_t decodeSampleOGGVorbis( const char * _f, int_sample_t * & _buf,
f_cnt_t decodeSampleOGGVorbis( QString _f, int_sample_t * & _buf,
ch_cnt_t & _channels,
sample_rate_t & _sample_rate );
#endif
f_cnt_t decodeSampleDS( const char * _f, int_sample_t * & _buf,
f_cnt_t decodeSampleDS( QString _f, int_sample_t * & _buf,
ch_cnt_t & _channels,
sample_rate_t & _sample_rate );

View File

@@ -87,10 +87,19 @@ public:
{
return m_currentFrame;
}
inline void setJumped( const bool jumped )
{
m_jumped = jumped;
}
inline bool jumped() const
{
return m_jumped;
}
TimeLineWidget * m_timeLine;
private:
float m_currentFrame;
bool m_jumped;
} ;

View File

@@ -36,6 +36,9 @@ class VisualizationWidget : public QWidget
{
Q_OBJECT
public:
Q_PROPERTY( QColor normalColor READ normalColor WRITE setNormalColor )
Q_PROPERTY( QColor warningColor READ warningColor WRITE setWarningColor )
Q_PROPERTY( QColor clippingColor READ clippingColor WRITE setClippingColor )
enum visualizationTypes
{
Simple // add more here
@@ -47,6 +50,15 @@ public:
void setActive( bool _active );
QColor const & normalColor() const;
void setNormalColor(QColor const & normalColor);
QColor const & warningColor() const;
void setWarningColor(QColor const & warningColor);
QColor const & clippingColor() const;
void setClippingColor(QColor const & clippingColor);
protected:
virtual void paintEvent( QPaintEvent * _pe );
@@ -56,6 +68,8 @@ protected:
protected slots:
void updateAudioBuffer( const surroundSampleFrame * buffer );
private:
QColor const & determineLineColor(float level) const;
private:
QPixmap s_background;
@@ -64,6 +78,9 @@ private:
sampleFrame * m_buffer;
bool m_active;
QColor m_normalColor;
QColor m_warningColor;
QColor m_clippingColor;
} ;
#endif

View File

@@ -61,6 +61,11 @@ public:
m_syncData->isCycle = false;
}
void setPlaybackJumped( bool jumped )
{
m_syncData->m_playbackJumped = jumped;
}
void update();
@@ -79,6 +84,7 @@ private:
bool hasSHM;
float cycleStart;
float cycleEnd;
bool m_playbackJumped;
int m_bufferSize;
int m_sampleRate;
int m_bpm;

View File

@@ -49,6 +49,7 @@ struct VstSyncData
bool hasSHM;
float cycleStart;
float cycleEnd;
bool m_playbackJumped;
int m_bufferSize;
int m_sampleRate;
int m_bpm;

View File

@@ -66,6 +66,12 @@ public:
return( element );
}
void waitUntilRead()
{
m_writer_sem.acquire( m_size );
m_writer_sem.release( m_size );
}
bool available()
{
return( m_reader_sem.available() );

View File

@@ -1,5 +1,5 @@
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
# Enable C++11
ADD_DEFINITIONS(-std=c++0x)

View File

@@ -80,7 +80,7 @@ private slots:
{
const float opl = getPeak_L();
const float opr = getPeak_R();
const float fall_off = 1.2;
const float fallOff = 1.07;
if( *m_lPeak > opl )
{
setPeak_L( *m_lPeak );
@@ -88,7 +88,7 @@ private slots:
}
else
{
setPeak_L( opl/fall_off );
setPeak_L( opl/fallOff );
}
if( *m_rPeak > opr )
@@ -98,7 +98,7 @@ private slots:
}
else
{
setPeak_R( opr/fall_off );
setPeak_R( opr/fallOff );
}
update();
}

View File

@@ -224,7 +224,7 @@ void EqSpectrumView::paintEvent(QPaintEvent *event)
float peak;
m_path.moveTo( 0, height() );
m_peakSum = 0;
float fallOff = 1.2;
const float fallOff = 1.07;
for( int x = 0; x < MAX_BANDS; ++x, ++bands )
{
peak = ( fh * 2.0 / 3.0 * ( 20 * ( log10( *bands / energy ) ) - LOWER_Y ) / ( - LOWER_Y ) );

View File

@@ -121,9 +121,6 @@ void LadspaEffect::changeSampleRate()
// the IDs of re-created controls have been saved and now need to be
// resolved again
AutomationPattern::resolveAllIDs();
// make sure, connections are ok
ControllerConnection::finalizeConnections();
}

View File

@@ -7,6 +7,11 @@ LINK_DIRECTORIES(${FFTW3F_LIBRARY_DIRS})
FILE(GLOB PLUGIN_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.c")
LIST(SORT PLUGIN_SOURCES)
SET(COMPILE_FLAGS "${COMPILE_FLAGS} -O3 -Wall -fomit-frame-pointer -funroll-loops -ffast-math -fno-strict-aliasing")
IF(NOT LMMS_BUILD_WIN32)
SET(COMPILE_FLAGS "${COMPILE_FLAGS} -fPIC -DPIC")
ENDIF()
FOREACH(_item ${PLUGIN_SOURCES})
GET_FILENAME_COMPONENT(_plugin "${_item}" NAME_WE)
@@ -15,22 +20,15 @@ FOREACH(_item ${PLUGIN_SOURCES})
IF(NOT ("${_plugin}" STREQUAL "vocoder_1337"))
TARGET_LINK_LIBRARIES("${_plugin}" -lfftw3f)
ENDIF()
IF(NOT MSVC)
TARGET_LINK_LIBRARIES("${_plugin}" m)
ENDIF()
INSTALL(TARGETS "${_plugin}" LIBRARY DESTINATION "${PLUGIN_DIR}/ladspa")
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES PREFIX "")
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES COMPILE_FLAGS "-O3 -Wall -fomit-frame-pointer -fstrength-reduce -funroll-loops -ffast-math -c -fno-strict-aliasing")
IF(LMMS_BUILD_WIN32)
ADD_CUSTOM_COMMAND(TARGET "${_plugin}" POST_BUILD COMMAND "${STRIP}" \"$<TARGET_FILE:${_plugin}>\")
ELSE(LMMS_BUILD_WIN32)
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -fPIC -DPIC")
ENDIF(LMMS_BUILD_WIN32)
IF(LMMS_BUILD_APPLE)
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Bsymbolic -lm")
ELSEIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD)
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined -Wl,-Bsymbolic -lm")
ENDIF(LMMS_BUILD_APPLE)
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_HAIKU)
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS}")
ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_HAIKU)
ENDIF()
SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS}")
ENDFOREACH(_item ${PLUGIN_SOURCES})

Some files were not shown because too many files have changed in this diff Show More