Compare commits
54 Commits
v1.2.0-rc6
...
v1.2.0-rc7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a2685c1cca | ||
|
|
8154f886ed | ||
|
|
93dc557c56 | ||
|
|
9fe74c2730 | ||
|
|
dd7b0865fb | ||
|
|
153f15f4b4 | ||
|
|
91ca660161 | ||
|
|
3064f03818 | ||
|
|
a5a13b1256 | ||
|
|
f37ca49e6d | ||
|
|
c3db486be0 | ||
|
|
4c7c68f45a | ||
|
|
0ad8527ff7 | ||
|
|
53dadd5735 | ||
|
|
2c5cda563b | ||
|
|
cc2ae66540 | ||
|
|
de427bbcf8 | ||
|
|
6f32c962b4 | ||
|
|
4bb6586c66 | ||
|
|
a0cbcb6ec4 | ||
|
|
7f541a544e | ||
|
|
160488c096 | ||
|
|
0cddc469bc | ||
|
|
2ecc8bb4fa | ||
|
|
b5dc70c20a | ||
|
|
e07f9a3b64 | ||
|
|
b268abba45 | ||
|
|
b9634fa672 | ||
|
|
112d34226a | ||
|
|
45d3359e21 | ||
|
|
408b72c798 | ||
|
|
9f64d52146 | ||
|
|
f2d68326a7 | ||
|
|
0f3b41f590 | ||
|
|
62d505b2e6 | ||
|
|
3e538d510c | ||
|
|
1af0f083ea | ||
|
|
ddcae478d4 | ||
|
|
9d0aae2708 | ||
|
|
792e4786ad | ||
|
|
e9f2b57107 | ||
|
|
28a522806b | ||
|
|
c45a21aac3 | ||
|
|
d1c36d7b96 | ||
|
|
583e42e5bb | ||
|
|
6af5154bec | ||
|
|
b52861f19f | ||
|
|
1bae047b98 | ||
|
|
407973ad6f | ||
|
|
2f19fa11c8 | ||
|
|
3bf3fab0e3 | ||
|
|
a9b5b92a2b | ||
|
|
0d7ea273dc | ||
|
|
d3c90a81b9 |
1
.gitignore
vendored
@@ -1,6 +1,7 @@
|
||||
/build
|
||||
/target
|
||||
.*.sw?
|
||||
.DS_Store
|
||||
*~
|
||||
/CMakeLists.txt.user
|
||||
/plugins/zynaddsubfx/zynaddsubfx/ExternalPrograms/Controller/Makefile
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
BIN
cmake/linux/icons/128x128/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
BIN
cmake/linux/icons/128x128@2/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
BIN
cmake/linux/icons/16x16/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 549 B |
BIN
cmake/linux/icons/16x16/mimetypes/application-x-lmms-project.png
Normal file
|
After Width: | Height: | Size: 446 B |
BIN
cmake/linux/icons/16x16@2/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 934 B |
|
After Width: | Height: | Size: 771 B |
BIN
cmake/linux/icons/24x24/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 799 B |
BIN
cmake/linux/icons/24x24/mimetypes/application-x-lmms-project.png
Normal file
|
After Width: | Height: | Size: 681 B |
BIN
cmake/linux/icons/24x24@2/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
BIN
cmake/linux/icons/32x32/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
cmake/linux/icons/32x32/mimetypes/application-x-lmms-project.png
Normal file
|
After Width: | Height: | Size: 836 B |
BIN
cmake/linux/icons/32x32@2/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
BIN
cmake/linux/icons/48x48/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
cmake/linux/icons/48x48/mimetypes/application-x-lmms-project.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
cmake/linux/icons/48x48@2/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
BIN
cmake/linux/icons/64x64/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
cmake/linux/icons/64x64/mimetypes/application-x-lmms-project.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
cmake/linux/icons/64x64@2/apps/lmms.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
142
cmake/linux/icons/scalable/apps/lmms.svg
Normal 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 |
@@ -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 |
|
Before Width: | Height: | Size: 93 KiB |
1540
cmake/linux/lmms.svg
|
Before Width: | Height: | Size: 54 KiB |
@@ -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"
|
||||
|
||||
|
Before Width: | Height: | Size: 66 KiB |
92
cmake/modules/BashCompletion.cmake
Normal 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()
|
||||
|
||||
@@ -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}")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 .)
|
||||
|
||||
@@ -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
|
After Width: | Height: | Size: 5.1 KiB |
BIN
cmake/nsis/assets/SmallLogo.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
cmake/nsis/icon.ico
Normal file
|
After Width: | Height: | Size: 401 KiB |
9
cmake/nsis/lmms.VisualElementsManifest.xml
Normal 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>
|
||||
|
Before Width: | Height: | Size: 134 KiB |
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
BIN
cmake/nsis/project.ico
Normal file
|
After Width: | Height: | Size: 401 KiB |
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1218,7 +1218,7 @@ If you'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>
|
||||
|
||||
@@ -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'accès en écriture à ce fic
|
||||
</message>
|
||||
<message>
|
||||
<source>DELAY</source>
|
||||
<translation>DE RETARD</translation>
|
||||
<translation>DELAY</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RATE</source>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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: "%2"</source>
|
||||
</message>
|
||||
<message>
|
||||
<source>PAN</source>
|
||||
<translation>パニング</translation>
|
||||
<translation>PAN</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -703,11 +703,11 @@ Oe Ai <oeai/at/symbiants/dot/com></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>
|
||||
|
||||
@@ -1063,7 +1063,7 @@ If you'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>&View</source>
|
||||
<translation>%Visa</translation>
|
||||
<translation>&Visa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toggle metronome</source>
|
||||
@@ -5982,14 +5982,14 @@ Orsak: "%2"</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: "%2"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>STK rawwave directory</source>
|
||||
<translation>Katalog för STK rå-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>
|
||||
|
||||
@@ -1341,7 +1341,7 @@ If you'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>
|
||||
|
||||
15
data/projects/demos/CapDan/LICENSES.TXT
Normal 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
|
||||
@@ -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
|
||||
|
||||
7
data/projects/demos/Skiessi/LICENSES.TXT
Normal 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
|
||||
@@ -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
|
||||
|
||||
BIN
data/themes/classic/icon_small.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
@@ -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 */
|
||||
|
||||
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
data/themes/default/icon_small.png
Normal file
|
After Width: | Height: | Size: 828 B |
@@ -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 */
|
||||
|
||||
@@ -15,3 +15,6 @@ if(DOXYGEN_FOUND)
|
||||
COMMENT "Generating API documentation with Doxygen"
|
||||
SOURCES Doxyfile.in)
|
||||
endif(DOXYGEN_FOUND)
|
||||
|
||||
ADD_SUBDIRECTORY(bash-completion)
|
||||
|
||||
|
||||
4
doc/bash-completion/CMakeLists.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
INCLUDE(BashCompletion)
|
||||
IF(COMMAND BASHCOMP_INSTALL)
|
||||
BASHCOMP_INSTALL(lmms)
|
||||
ENDIF()
|
||||
334
doc/bash-completion/lmms
Normal 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
|
||||
146
doc/lmms.1
@@ -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/
|
||||
|
||||
@@ -56,6 +56,10 @@ protected:
|
||||
return m_outputFile.isOpen();
|
||||
}
|
||||
|
||||
inline int outputFileHandle() const
|
||||
{
|
||||
return m_outputFile.handle();
|
||||
}
|
||||
|
||||
private:
|
||||
QFile m_outputFile;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -145,7 +145,6 @@ private:
|
||||
int m_outBufSize;
|
||||
|
||||
bool m_stopped;
|
||||
QSemaphore m_stopSemaphore;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -109,6 +109,8 @@ private:
|
||||
fpp_t m_outBufFramesTotal;
|
||||
fpp_t m_outBufFrameIndex;
|
||||
|
||||
bool m_stopped;
|
||||
|
||||
int m_disconnectErr;
|
||||
void onBackendDisconnect(int err);
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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);
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -308,6 +308,9 @@ public:
|
||||
void requestChangeInModel();
|
||||
void doneChangeInModel();
|
||||
|
||||
static bool isAudioDevNameValid(QString name);
|
||||
static bool isMidiDevNameValid(QString name);
|
||||
|
||||
|
||||
signals:
|
||||
void qualitySettingsChanged();
|
||||
|
||||
@@ -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 );
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -49,6 +49,7 @@ struct VstSyncData
|
||||
bool hasSHM;
|
||||
float cycleStart;
|
||||
float cycleEnd;
|
||||
bool m_playbackJumped;
|
||||
int m_bufferSize;
|
||||
int m_sampleRate;
|
||||
int m_bpm;
|
||||
|
||||
@@ -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() );
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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 ) );
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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})
|
||||
|
||||
|
||||
|
||||