Compare commits
137 Commits
v1.2.0-rc8
...
v1.2.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94363be152 | ||
|
|
fde11df89b | ||
|
|
24eb2304fd | ||
|
|
c28dbd1835 | ||
|
|
c6f8f7b8e7 | ||
|
|
f56b4963c1 | ||
|
|
0528a00cca | ||
|
|
c6a1abe150 | ||
|
|
3a985ff1fc | ||
|
|
d5a2366fc8 | ||
|
|
109cdf6cf3 | ||
|
|
29a5abc30b | ||
|
|
737fcd3e55 | ||
|
|
e3cae80580 | ||
|
|
9e9c5acc17 | ||
|
|
c6d60e982e | ||
|
|
317be01012 | ||
|
|
56fbefc700 | ||
|
|
71b6107d9b | ||
|
|
f4f10c11fc | ||
|
|
ca09b29087 | ||
|
|
687870d302 | ||
|
|
1c5a3f8a36 | ||
|
|
149eca1ec9 | ||
|
|
27b1ce914b | ||
|
|
8afa2d5412 | ||
|
|
656eede6ba | ||
|
|
a8df120a58 | ||
|
|
b51079e921 | ||
|
|
2367a62a51 | ||
|
|
d382d4e08b | ||
|
|
ab8be73047 | ||
|
|
94431ea9de | ||
|
|
47786865ef | ||
|
|
97a6379c6d | ||
|
|
a0f4e50805 | ||
|
|
534d7ca9c5 | ||
|
|
a77e592c19 | ||
|
|
aeac24c06d | ||
|
|
d280b8628d | ||
|
|
427d779668 | ||
|
|
fd77c79cda | ||
|
|
c52682dfb1 | ||
|
|
a9640c8898 | ||
|
|
11e5de3a4e | ||
|
|
42f7e262e9 | ||
|
|
d849cc179c | ||
|
|
4bfcc30a71 | ||
|
|
578a9475ec | ||
|
|
a2e328e3dd | ||
|
|
cf4bb7b851 | ||
|
|
a8d91b10e8 | ||
|
|
08c7e8e8dd | ||
|
|
02980e610c | ||
|
|
55b65527c3 | ||
|
|
fd203c3f7b | ||
|
|
6c865c072d | ||
|
|
5e4e536bf0 | ||
|
|
dbf5f47149 | ||
|
|
4f11cf1b23 | ||
|
|
a9262b9613 | ||
|
|
732448c392 | ||
|
|
95c46a805d | ||
|
|
6dee6a4418 | ||
|
|
e321dff733 | ||
|
|
5aa87886c9 | ||
|
|
16390f61a5 | ||
|
|
419321dd01 | ||
|
|
0059c6e71f | ||
|
|
c436e5ca57 | ||
|
|
2e84cd3e0c | ||
|
|
8568ae4eac | ||
|
|
a631c0c47e | ||
|
|
0db83c55a0 | ||
|
|
bdbea87149 | ||
|
|
3ada5b8a12 | ||
|
|
4cb243b0ef | ||
|
|
df79f8c1be | ||
|
|
0fbaca40bd | ||
|
|
bfa8a4bc8c | ||
|
|
ca06b886f5 | ||
|
|
457f2c6712 | ||
|
|
6e5650c50a | ||
|
|
d194c70391 | ||
|
|
47d6388182 | ||
|
|
c37228c7e3 | ||
|
|
359de2083e | ||
|
|
665e50395c | ||
|
|
6d27f90271 | ||
|
|
37f0c3f33d | ||
|
|
fad89d6be7 | ||
|
|
9c6e2278ce | ||
|
|
ec64de0723 | ||
|
|
4b4b470550 | ||
|
|
934ea6d086 | ||
|
|
50796b2088 | ||
|
|
b9503a8c70 | ||
|
|
3dcffbf96f | ||
|
|
9ff882d09d | ||
|
|
8f4757ee3b | ||
|
|
32df2d7fba | ||
|
|
8bcdf06c6c | ||
|
|
ca9a9564cd | ||
|
|
160d306f48 | ||
|
|
461faccaa0 | ||
|
|
a685049627 | ||
|
|
5784dd6dc9 | ||
|
|
5a56969af2 | ||
|
|
91f9f1a890 | ||
|
|
82e3ba75c6 | ||
|
|
032c324dbc | ||
|
|
f79c2929a5 | ||
|
|
ea5cbe6789 | ||
|
|
e1adfc3952 | ||
|
|
dd6c18e62b | ||
|
|
0c3db1045c | ||
|
|
3aeacca7ac | ||
|
|
205b57531d | ||
|
|
6fef905dfe | ||
|
|
17f6235500 | ||
|
|
295b899df2 | ||
|
|
97d5529c18 | ||
|
|
04768ee3e1 | ||
|
|
2a72808095 | ||
|
|
17e87c1d68 | ||
|
|
cdd1ddbb0c | ||
|
|
9e6ce0638d | ||
|
|
991ffcd2e0 | ||
|
|
009a451d0b | ||
|
|
e54969c568 | ||
|
|
05d5e2036d | ||
|
|
a233291c27 | ||
|
|
ad1fa16a95 | ||
|
|
e34f75a8c7 | ||
|
|
31dc8e18ff | ||
|
|
e7720cc8cb | ||
|
|
18d478782c |
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -4,3 +4,6 @@
|
||||
[submodule "src/3rdparty/rpmalloc/rpmalloc"]
|
||||
path = src/3rdparty/rpmalloc/rpmalloc
|
||||
url = https://github.com/rampantpixels/rpmalloc.git
|
||||
[submodule "plugins/carlabase/carla"]
|
||||
path = plugins/carlabase/carla
|
||||
url = https://github.com/falktx/carla
|
||||
|
||||
1
.mailmap
1
.mailmap
@@ -29,3 +29,4 @@ grejppi <grejppi@gmail.com>
|
||||
Johannes Lorenz <j.git@lorenz-ho.me> <johannes89@mailueberfall.de>
|
||||
Johannes Lorenz <j.git@lorenz-ho.me> <1042576+JohannesLorenz@users.noreply.github.com>
|
||||
Noah Brecht <noahb2713@gmail.com>
|
||||
Olivier Humbert <trebmuh@tuxfamily.org> <trebmuh@users.noreply.github.com>
|
||||
|
||||
32
.travis.yml
32
.travis.yml
@@ -1,56 +1,50 @@
|
||||
language: cpp
|
||||
compiler: gcc
|
||||
dist: trusty
|
||||
dist: xenial
|
||||
sudo: required
|
||||
cache:
|
||||
directories:
|
||||
- apt_mingw_cache
|
||||
- $HOME/apt_mingw_cache
|
||||
- $HOME/.ccache
|
||||
- $HOME/pbuilder-bases
|
||||
matrix:
|
||||
include:
|
||||
- env: TARGET_OS=win32
|
||||
dist: trusty
|
||||
- env: TARGET_OS=win64
|
||||
dist: trusty
|
||||
- os: osx
|
||||
osx_image: xcode8.2
|
||||
- env: QT5=
|
||||
- env: QT5=True
|
||||
- env: QT5=True TARGET_OS=win32 TARGET_DEPLOY=True
|
||||
dist: trusty
|
||||
- env: QT5=True TARGET_OS=win64 TARGET_DEPLOY=True
|
||||
dist: trusty
|
||||
- os: osx
|
||||
osx_image: xcode8.2
|
||||
env: QT5=True
|
||||
- env: TARGET_OS=debian-sid TARGET_DEPLOY=True
|
||||
git:
|
||||
depth: false
|
||||
- env: TARGET_OS=debian-sid TARGET_ARCH=i386
|
||||
git:
|
||||
depth: false
|
||||
- compiler: clang
|
||||
env: TARGET_OS=debian-sid
|
||||
git:
|
||||
depth: false
|
||||
before_install:
|
||||
- . ${TRAVIS_BUILD_DIR}/.travis/${TRAVIS_OS_NAME}.${TARGET_OS}.before_install.sh
|
||||
install:
|
||||
- . ${TRAVIS_BUILD_DIR}/.travis/${TRAVIS_OS_NAME}.${TARGET_OS}.install.sh
|
||||
before_script:
|
||||
- export CMAKE_FLAGS="-DWANT_QT5=$QT5 -DUSE_WERROR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo"
|
||||
- export CMAKE_FLAGS="-DWANT_QT5=$QT5 -DUSE_WERROR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUNDLE_QT_TRANSLATIONS=ON"
|
||||
- if [ -z "$TRAVIS_TAG" ]; then export CMAKE_FLAGS="$CMAKE_FLAGS -DUSE_CCACHE=ON"; fi
|
||||
script:
|
||||
- . ${TRAVIS_BUILD_DIR}/.travis/${TRAVIS_OS_NAME}.${TARGET_OS}.script.sh
|
||||
after_script:
|
||||
- ccache -s
|
||||
before_deploy:
|
||||
- if [ "$TARGET_OS" != debian-sid ]; then make package; fi
|
||||
deploy:
|
||||
provider: releases
|
||||
api_key:
|
||||
secure: d4a+x4Gugpss7JK2DcHjyBZDmEFFh4iVfKDfITSD50T6Mc6At4LMgojvEu+6qT6IyOY2vm3UVT6fhyeuWDTRDwW9tfFlaHVA0h8aTRD+eAXOA7pQ8rEMwQO3+WCKuKTfEqUkpL4wxhww8dpkv54tqeIs0S4TBqz9tk8UhzU7XbE=
|
||||
file_glob: true
|
||||
file:
|
||||
- lmms-${TRAVIS_TAG:1}-$TARGET_OS.exe
|
||||
- /var/cache/pbuilder/result/lmms_*.tar.xz
|
||||
skip_cleanup: true
|
||||
on:
|
||||
tags: true
|
||||
all_branches: true
|
||||
condition: '"$TARGET_DEPLOY" = True'
|
||||
repo: LMMS/lmms
|
||||
notifications:
|
||||
webhooks:
|
||||
urls:
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
314ef4af137903dfb13e8c3ef1e6ea56cfdb23808d52ec4f5f50e288c73610c5 pbuilder_0.229.1_all.deb
|
||||
fa82aa8ed3055c6f6330104deedf080b26778295e589426d4c4dd0f2c2a5defa debootstrap_1.0.95_all.deb
|
||||
2ef4c09f7841b72f93412803ddd142f72658536dbfabe00e449eb548f432f3f8 debian-archive-keyring_2017.7ubuntu1_all.deb
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
sudo add-apt-repository ppa:beineri/opt-qt592-trusty -y
|
||||
sudo add-apt-repository ppa:andrewrk/libgroove -y
|
||||
sudo sed -e "s/trusty/precise/" -i \
|
||||
/etc/apt/sources.list.d/andrewrk-libgroove-trusty.list
|
||||
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt-get update -qq || true
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
PACKAGES="cmake libsndfile-dev fftw3-dev libvorbis-dev libogg-dev libmp3lame-dev
|
||||
libasound2-dev libjack-jackd2-dev libsdl-dev libsamplerate0-dev libstk0-dev stk
|
||||
libfluidsynth-dev portaudio19-dev g++-multilib libfltk1.3-dev
|
||||
libfluidsynth-dev portaudio19-dev g++-multilib libfltk1.3-dev fluid
|
||||
libgig-dev libsoundio-dev"
|
||||
|
||||
VST_PACKAGES="wine-dev libqt5x11extras5-dev qtbase5-private-dev libxcb-util0-dev libxcb-keysyms1-dev"
|
||||
@@ -11,15 +11,9 @@ VST_PACKAGES="wine-dev libqt5x11extras5-dev qtbase5-private-dev libxcb-util0-dev
|
||||
PACKAGES="$PACKAGES $VST_PACKAGES libjack-jackd2-0"
|
||||
|
||||
if [ $QT5 ]; then
|
||||
PACKAGES="$PACKAGES qt59base qt59translations qt59tools"
|
||||
PACKAGES="$PACKAGES qttools5-dev-tools"
|
||||
else
|
||||
PACKAGES="$PACKAGES libqt4-dev"
|
||||
fi
|
||||
|
||||
sudo apt-get install -y $PACKAGES
|
||||
|
||||
# kxstudio repo offers Carla; avoid package conflicts (wine, etc) by running last
|
||||
sudo add-apt-repository -y ppa:kxstudio-debian/libs
|
||||
sudo add-apt-repository -y ppa:kxstudio-debian/apps
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y carla-git
|
||||
|
||||
@@ -7,8 +7,11 @@ if [ $QT5 ]; then
|
||||
source /opt/qt59/bin/qt59-env.sh
|
||||
fi
|
||||
|
||||
cmake -DUSE_WERROR=ON $CMAKE_FLAGS ..
|
||||
cmake -DCMAKE_INSTALL_PREFIX=../target/ -DUSE_WERROR=ON $CMAKE_FLAGS ..
|
||||
|
||||
make -j4
|
||||
make tests
|
||||
./tests/tests
|
||||
|
||||
make install
|
||||
make appimage
|
||||
|
||||
@@ -2,15 +2,16 @@
|
||||
set -e
|
||||
|
||||
sudo apt-get install -y \
|
||||
debian-archive-keyring \
|
||||
dpkg \
|
||||
pbuilder
|
||||
|
||||
# work around a pbuilder bug which breaks ccache
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666525
|
||||
# and also missing signing keys in Trusty's debian-archive-keyring
|
||||
cd /tmp
|
||||
wget http://archive.ubuntu.com/ubuntu/pool/main/p/pbuilder/pbuilder_0.229.1_all.deb
|
||||
wget http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.95_all.deb
|
||||
wget http://archive.ubuntu.com/ubuntu/pool/universe/d/debian-archive-keyring/debian-archive-keyring_2017.7ubuntu1_all.deb
|
||||
sha256sum -c "$TRAVIS_BUILD_DIR/.travis/debian_pkgs.sha256"
|
||||
sudo dpkg -i pbuilder_0.229.1_all.deb debootstrap_1.0.95_all.deb
|
||||
sudo dpkg -i pbuilder_0.229.1_all.deb debootstrap_1.0.95_all.deb debian-archive-keyring_2017.7ubuntu1_all.deb
|
||||
cd "$OLDPWD"
|
||||
|
||||
@@ -31,6 +31,40 @@ else
|
||||
sudo pbuilder --update --basetgz "$BASETGZ"
|
||||
fi
|
||||
|
||||
sync_version() {
|
||||
local VERSION
|
||||
local MMR
|
||||
local STAGE
|
||||
local EXTRA
|
||||
|
||||
VERSION=$(git describe --tags --match v[0-9].[0-9].[0-9]*)
|
||||
VERSION=${VERSION#v}
|
||||
MMR=${VERSION%%-*}
|
||||
case $VERSION in
|
||||
*-*-*-*)
|
||||
VERSION=${VERSION%-*}
|
||||
STAGE=${VERSION#*-}
|
||||
STAGE=${STAGE%-*}
|
||||
EXTRA=${VERSION##*-}
|
||||
VERSION=$MMR~$STAGE.$EXTRA
|
||||
;;
|
||||
*-*-*)
|
||||
VERSION=${VERSION%-*}
|
||||
EXTRA=${VERSION##*-}
|
||||
VERSION=$MMR.$EXTRA
|
||||
;;
|
||||
*-*)
|
||||
STAGE=${VERSION#*-}
|
||||
VERSION=$MMR~$STAGE
|
||||
;;
|
||||
esac
|
||||
|
||||
sed "1 s/@VERSION@/$VERSION/" -i debian/changelog
|
||||
echo Set Debian version to $VERSION
|
||||
}
|
||||
|
||||
sync_version
|
||||
|
||||
DIR="$PWD"
|
||||
cd ..
|
||||
dpkg-source -b "$DIR"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
CACHE_DIR=$TRAVIS_BUILD_DIR/apt_mingw_cache/$1
|
||||
CACHE_DIR=$HOME/apt_mingw_cache/$1
|
||||
mkdir -p $CACHE_DIR
|
||||
|
||||
pushd $CACHE_DIR
|
||||
|
||||
@@ -6,3 +6,5 @@ export CMAKE_OPTS="$CMAKE_FLAGS -DUSE_WERROR=ON"
|
||||
../cmake/build_mingw32.sh
|
||||
|
||||
make -j4
|
||||
|
||||
make package
|
||||
|
||||
@@ -6,3 +6,5 @@ export CMAKE_OPTS="$CMAKE_FLAGS -DUSE_WERROR=ON"
|
||||
../cmake/build_mingw64.sh
|
||||
|
||||
make -j4
|
||||
|
||||
make package
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
brew update
|
||||
|
||||
# appdmg doesn't work with old versions of Node.js
|
||||
nvm install --lts
|
||||
|
||||
@@ -14,4 +14,4 @@ if [ -z "$QT5" ]; then
|
||||
brew install qt@4
|
||||
fi
|
||||
|
||||
sudo npm install -g appdmg
|
||||
npm install -g appdmg
|
||||
|
||||
@@ -7,8 +7,11 @@ if [ $QT5 ]; then
|
||||
export CMAKE_PREFIX_PATH="$(brew --prefix qt5)"
|
||||
fi
|
||||
|
||||
cmake $CMAKE_FLAGS -DUSE_WERROR=OFF ..
|
||||
cmake -DCMAKE_INSTALL_PREFIX=../target/ $CMAKE_FLAGS -DUSE_WERROR=OFF ..
|
||||
|
||||
make -j4
|
||||
make tests
|
||||
./tests/tests
|
||||
|
||||
make install
|
||||
make dmg
|
||||
|
||||
@@ -20,7 +20,7 @@ INCLUDE(FindPkgConfig)
|
||||
|
||||
STRING(TOUPPER "${CMAKE_PROJECT_NAME}" PROJECT_NAME_UCASE)
|
||||
|
||||
SET(PROJECT_YEAR 2019)
|
||||
SET(PROJECT_YEAR 2020)
|
||||
|
||||
SET(PROJECT_AUTHOR "LMMS Developers")
|
||||
SET(PROJECT_URL "https://lmms.io")
|
||||
@@ -29,8 +29,8 @@ SET(PROJECT_DESCRIPTION "${PROJECT_NAME_UCASE} - Free music production software"
|
||||
SET(PROJECT_COPYRIGHT "2008-${PROJECT_YEAR} ${PROJECT_AUTHOR}")
|
||||
SET(VERSION_MAJOR "1")
|
||||
SET(VERSION_MINOR "2")
|
||||
SET(VERSION_RELEASE "0")
|
||||
SET(VERSION_STAGE "rc8")
|
||||
SET(VERSION_RELEASE "2")
|
||||
SET(VERSION_STAGE "")
|
||||
SET(VERSION_BUILD "0")
|
||||
SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_RELEASE}")
|
||||
IF(VERSION_STAGE)
|
||||
@@ -68,11 +68,13 @@ OPTION(WANT_VST "Include VST support" ON)
|
||||
OPTION(WANT_VST_NOWINE "Include partial VST support (without wine)" OFF)
|
||||
OPTION(WANT_WINMM "Include WinMM MIDI support" OFF)
|
||||
OPTION(WANT_QT5 "Build with Qt5" OFF)
|
||||
OPTION(BUNDLE_QT_TRANSLATIONS "Install Qt translation files for LMMS" OFF)
|
||||
|
||||
|
||||
IF(LMMS_BUILD_APPLE)
|
||||
# Fix linking on 10.14+. See issue #4762 on github
|
||||
LINK_DIRECTORIES(/usr/local/lib)
|
||||
SET(WANT_SOUNDIO OFF)
|
||||
SET(WANT_ALSA OFF)
|
||||
SET(WANT_PULSEAUDIO OFF)
|
||||
SET(WANT_VST OFF)
|
||||
@@ -91,6 +93,7 @@ IF(LMMS_BUILD_WIN32)
|
||||
SET(WANT_SNDIO OFF)
|
||||
SET(WANT_SOUNDIO OFF)
|
||||
SET(WANT_WINMM ON)
|
||||
SET(BUNDLE_QT_TRANSLATIONS ON)
|
||||
SET(LMMS_HAVE_WINMM TRUE)
|
||||
SET(STATUS_ALSA "<not supported on this platform>")
|
||||
SET(STATUS_JACK "<not supported on this platform>")
|
||||
@@ -157,13 +160,22 @@ IF(WANT_QT5)
|
||||
Qt5::Xml
|
||||
)
|
||||
|
||||
IF(LMMS_BUILD_LINUX)
|
||||
IF(LMMS_BUILD_LINUX AND WANT_VST)
|
||||
FIND_PACKAGE(Qt5X11Extras REQUIRED)
|
||||
LIST(APPEND QT_LIBRARIES Qt5::X11Extras)
|
||||
ENDIF()
|
||||
|
||||
# Resolve Qt5::qmake to full path for use in packaging scripts
|
||||
GET_TARGET_PROPERTY(QT_QMAKE_EXECUTABLE "${Qt5Core_QMAKE_EXECUTABLE}" IMPORTED_LOCATION)
|
||||
execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_TRANSLATIONS
|
||||
OUTPUT_VARIABLE QT_TRANSLATIONS_DIR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_QUIET
|
||||
)
|
||||
IF(EXISTS "${QT_TRANSLATIONS_DIR}")
|
||||
MESSAGE("-- Found Qt translations in ${QT_TRANSLATIONS_DIR}")
|
||||
ADD_DEFINITIONS(-D'QT_TRANSLATIONS_DIR="${QT_TRANSLATIONS_DIR}"')
|
||||
ENDIF()
|
||||
|
||||
FIND_PACKAGE(Qt5Test)
|
||||
SET(QT_QTTEST_LIBRARY Qt5::Test)
|
||||
@@ -240,7 +252,8 @@ IF(WANT_CARLA)
|
||||
SET(LMMS_HAVE_CARLA TRUE)
|
||||
SET(STATUS_CARLA "OK")
|
||||
ELSE(CARLA_FOUND)
|
||||
SET(STATUS_CARLA "not found, please install the latest carla")
|
||||
SET(LMMS_HAVE_WEAKCARLA TRUE)
|
||||
SET(STATUS_CARLA "OK (weak linking enabled)")
|
||||
ENDIF(CARLA_FOUND)
|
||||
ENDIF(WANT_CARLA)
|
||||
|
||||
@@ -430,9 +443,9 @@ If(WANT_GIG)
|
||||
ENDIF(WANT_GIG)
|
||||
|
||||
# check for pthreads
|
||||
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD)
|
||||
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD OR LMMS_BUILD_FREEBSD)
|
||||
FIND_PACKAGE(Threads)
|
||||
ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD)
|
||||
ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD OR LMMS_BUILD_FREEBSD)
|
||||
|
||||
IF(WANT_SNDIO)
|
||||
FIND_PACKAGE(Sndio)
|
||||
@@ -479,7 +492,7 @@ ENDIF()
|
||||
|
||||
# Due to a regression in gcc-4.8.X, we need to disable array-bounds check
|
||||
IF (CMAKE_COMPILER_IS_GNUCXX AND ((CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL "4.8.0") OR (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "4.8.0") OR LMMS_BUILD_WIN32))
|
||||
SET(WERROR_FLAGS "${WERROR_FLAGS} -Wno-array-bounds")
|
||||
SET(WERROR_FLAGS "${WERROR_FLAGS} -Wno-array-bounds -Wno-attributes")
|
||||
ENDIF()
|
||||
|
||||
IF(NOT CMAKE_BUILD_TYPE)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 50 KiB |
BIN
cmake/apple/dmg_branding@2x.png
Normal file
BIN
cmake/apple/dmg_branding@2x.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 113 KiB |
@@ -147,5 +147,7 @@
|
||||
<string>NSApplication</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<string>True</string>
|
||||
<key>NSRequiresAquaSystemAppearance</key>
|
||||
<string>False</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"title": "@MACOSX_BUNDLE_BUNDLE_NAME@ @MACOSX_BUNDLE_LONG_VERSION_STRING@",
|
||||
"background": "@CMAKE_SOURCE_DIR@/cmake/apple/dmg_branding.png",
|
||||
"icon-size": 72,
|
||||
"icon-size": 128,
|
||||
"contents": [
|
||||
{ "x": 460, "y": 260, "type": "link", "path": "/Applications" },
|
||||
{ "x": 220, "y": 260, "type": "file", "path": "@CMAKE_BINARY_DIR@/@MACOSX_BUNDLE_BUNDLE_NAME@.app" }
|
||||
{ "x": 139, "y": 200, "type": "file", "path": "@CMAKE_BINARY_DIR@/@MACOSX_BUNDLE_BUNDLE_NAME@.app" },
|
||||
{ "x": 568, "y": 200, "type": "link", "path": "/Applications" }
|
||||
]
|
||||
}
|
||||
|
||||
24
cmake/linux/launch_lmms.sh
Normal file
24
cmake/linux/launch_lmms.sh
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
export PATH="$PATH:/sbin"
|
||||
if command -v carla > /dev/null 2>&1; then
|
||||
CARLAPATH="$(command -v carla)"
|
||||
CARLAPREFIX="${CARLAPATH%/bin*}"
|
||||
echo "Carla appears to be installed on this system at $CARLAPREFIX/lib[64]/carla so we'll use it."
|
||||
export LD_LIBRARY_PATH=$CARLAPREFIX/lib/carla:$CARLAPREFIX/lib64/carla:$LD_LIBRARY_PATH
|
||||
else
|
||||
echo "Carla does not appear to be installed. That's OK, please ignore any related library errors."
|
||||
fi
|
||||
export LD_LIBRARY_PATH=$DIR/usr/lib/:$DIR/usr/lib/lmms:$LD_LIBRARY_PATH
|
||||
# Prevent segfault on VirualBox
|
||||
if lsmod |grep vboxguest > /dev/null 2>&1; then
|
||||
echo "VirtualBox detected. Forcing libgl software rendering."
|
||||
export LIBGL_ALWAYS_SOFTWARE=1;
|
||||
fi
|
||||
if ldconfig -p | grep libjack.so.0 > /dev/null 2>&1; then
|
||||
echo "Jack appears to be installed on this system, so we'll use it."
|
||||
else
|
||||
echo "Jack does not appear to be installed. That's OK, we'll use a dummy version instead."
|
||||
export LD_LIBRARY_PATH=$DIR/usr/lib/lmms/optional:$LD_LIBRARY_PATH
|
||||
fi
|
||||
QT_X11_NO_NATIVE_MENUBAR=1 "$DIR"/usr/bin/lmms.real "$@"
|
||||
@@ -3,10 +3,10 @@ Name=LMMS
|
||||
GenericName=Music production suite
|
||||
GenericName[ca]=Programari de producció musical
|
||||
GenericName[de]=Software zur Musik-Produktion
|
||||
GenericName[fr]=Ensemble pour la production musicale
|
||||
GenericName[fr]=Suite de production musicale
|
||||
Comment=Music sequencer and synthesizer
|
||||
Comment[ca]=Producció fàcil de música per a tothom!
|
||||
Comment[fr]=Production facile de musique pour tout le monde !
|
||||
Comment[fr]=Séquenceur et synthétiseur de musique
|
||||
Icon=lmms
|
||||
Exec=lmms %f
|
||||
Terminal=false
|
||||
|
||||
@@ -70,6 +70,9 @@ elif ! find "$LINUXDEPLOYQT" -mtime -$DAYSOLD 2>/dev/null|grep -q "." > /dev/nul
|
||||
touch "$LINUXDEPLOYQT"
|
||||
success "Downloaded $LINUXDEPLOYQT"
|
||||
"$LINUXDEPLOYQT" --appimage-extract > /dev/null 2>&1
|
||||
# We need to set LD_LIBRARY_PATH, but linuxdepoyqt's AppRun unsets it
|
||||
# See https://github.com/probonopd/linuxdeployqt/pull/370/
|
||||
LINUXDEPLOYQT="squashfs-root/usr/bin/linuxdeployqt"
|
||||
success "Extracted $APPIMAGETOOL"
|
||||
else
|
||||
skipped "$LINUXDEPLOYQT is less than $DAYSOLD days old"
|
||||
@@ -93,40 +96,16 @@ cp -R /usr/share/stk/rawwaves/ "${APPDIR}usr/share/stk/"
|
||||
|
||||
# Create a wrapper script which calls the lmms executable
|
||||
mv "${APPDIR}usr/bin/lmms" "${APPDIR}usr/bin/lmms.real"
|
||||
# shellcheck disable=SC1083
|
||||
cat >"${APPDIR}usr/bin/lmms" <<EOL
|
||||
#!/usr/bin/env bash
|
||||
DIR="\$( cd "\$( dirname "\${BASH_SOURCE[0]}" )" && pwd )"
|
||||
if which carla > /dev/null 2>&1; then
|
||||
CARLAPATH="\$(which carla)"
|
||||
CARLAPREFIX="\${CARLAPATH%/bin*}"
|
||||
echo "Carla appears to be installed on this system at \$CARLAPREFIX/lib[64]/carla so we'll use it."
|
||||
export LD_LIBRARY_PATH=\$CARLAPREFIX/lib/carla:\$CARLAPREFIX/lib64/carla:\$LD_LIBRARY_PATH
|
||||
else
|
||||
echo "Carla does not appear to be installed. That's OK, please ignore any related library errors."
|
||||
fi
|
||||
export LD_LIBRARY_PATH=\$DIR/usr/lib/:\$DIR/usr/lib/lmms:\$LD_LIBRARY_PATH
|
||||
# Prevent segfault on VirualBox
|
||||
if lsmod |grep vboxguest > /dev/null 2>&1; then
|
||||
echo "VirtualBox detected. Forcing libgl software rendering."
|
||||
export LIBGL_ALWAYS_SOFTWARE=1;
|
||||
fi
|
||||
if ldconfig -p | grep libjack.so.0 > /dev/null 2>&1; then
|
||||
echo "Jack appears to be installed on this system, so we'll use it."
|
||||
else
|
||||
echo "Jack does not appear to be installed. That's OK, we'll use a dummy version instead."
|
||||
export LD_LIBRARY_PATH=\$DIR/usr/lib/lmms/optional:\$LD_LIBRARY_PATH
|
||||
fi
|
||||
QT_X11_NO_NATIVE_MENUBAR=1 \$DIR/usr/bin/lmms.real "\$@"
|
||||
EOL
|
||||
|
||||
cp "@CMAKE_CURRENT_SOURCE_DIR@/launch_lmms.sh" "${APPDIR}usr/bin/lmms"
|
||||
|
||||
chmod +x "${APPDIR}usr/bin/lmms"
|
||||
|
||||
# Per https://github.com/probonopd/linuxdeployqt/issues/129
|
||||
# Per https://github.com/probonopd/linuxdeployqt/issues/129
|
||||
unset LD_LIBRARY_PATH
|
||||
|
||||
# Ensure linuxdeployqt can find shared objects
|
||||
export LD_LIBRARY_PATH="${APPDIR}usr/lib/lmms/":$LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH="${APPDIR}usr/lib/lmms/":"${APPDIR}usr/lib/lmms/optional":$LD_LIBRARY_PATH
|
||||
|
||||
# Handle wine linking
|
||||
if [ -d "@WINE_LIBRARY_FIX@" ]; then
|
||||
@@ -141,7 +120,7 @@ ZYNBIN="${APPDIR}usr/bin/RemoteZynAddSubFx"
|
||||
VSTBIN="${APPDIR}usr/bin/RemoteVstPlugin.exe.so"
|
||||
|
||||
mv "$ZYNLIB" "$ZYNBIN"
|
||||
mv "$VSTLIB" "$VSTBIN"
|
||||
mv "$VSTLIB" "$VSTBIN" || true
|
||||
|
||||
# Patch the desktop file
|
||||
sed -i 's/.*Exec=.*/Exec=lmms.real/' "$DESKTOPFILE"
|
||||
@@ -167,13 +146,14 @@ success "Bundled and relinked dependencies"
|
||||
|
||||
# Link to original location so lmms can find them
|
||||
ln -sr "$ZYNBIN" "$ZYNLIB"
|
||||
ln -sr "$VSTBIN" "$VSTLIB"
|
||||
ln -sr "$VSTBIN" "$VSTLIB" || true
|
||||
|
||||
# Remove wine library conflict
|
||||
rm -f "${APPDIR}/usr/lib/libwine.so.1"
|
||||
|
||||
# Use system-provided carla
|
||||
rm -f "${APPDIR}usr/lib/"libcarla*.so
|
||||
rm -f "${APPDIR}usr/lib/lmms/optional/"libcarla*.so
|
||||
|
||||
# Remove bundled jack in LD_LIBRARY_PATH if exists
|
||||
if [ -e "${APPDIR}/usr/lib/libjack.so.0" ]; then
|
||||
@@ -181,7 +161,7 @@ if [ -e "${APPDIR}/usr/lib/libjack.so.0" ]; then
|
||||
fi
|
||||
|
||||
# Bundle jack out of LD_LIBRARY_PATH
|
||||
JACK_LIB=$(ldd "${APPDIR}/usr/bin/lmms" | sed -n 's/\tlibjack\.so\.0 => \(.\+\) (0x[0-9a-f]\+)/\1/p')
|
||||
JACK_LIB=$(ldd "${APPDIR}/usr/bin/lmms.real" | sed -n 's/\tlibjack\.so\.0 => \(.\+\) (0x[0-9a-f]\+)/\1/p')
|
||||
if [ -e "$JACK_LIB" ]; then
|
||||
mkdir -p "${APPDIR}usr/lib/lmms/optional/"
|
||||
cp "$JACK_LIB" "${APPDIR}usr/lib/lmms/optional/"
|
||||
|
||||
@@ -70,7 +70,11 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME)
|
||||
TARGET_LINK_LIBRARIES(${PLUGIN_NAME} lmms)
|
||||
ENDIF(LMMS_BUILD_WIN32)
|
||||
|
||||
INSTALL(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION "${PLUGIN_DIR}")
|
||||
IF(LMMS_BUILD_WIN32 AND "${PLUGIN_LINK}" STREQUAL "SHARED")
|
||||
INSTALL(TARGETS ${PLUGIN_NAME} RUNTIME DESTINATION "${PLUGIN_DIR}")
|
||||
ELSE()
|
||||
INSTALL(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION "${PLUGIN_DIR}")
|
||||
ENDIF()
|
||||
|
||||
IF(LMMS_BUILD_APPLE)
|
||||
IF ("${PLUGIN_LINK}" STREQUAL "SHARED")
|
||||
|
||||
@@ -4,6 +4,8 @@ ELSEIF(APPLE)
|
||||
SET(LMMS_BUILD_APPLE 1)
|
||||
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
|
||||
SET(LMMS_BUILD_OPENBSD 1)
|
||||
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
|
||||
SET(LMMS_BUILD_FREEBSD 1)
|
||||
ELSEIF(HAIKU)
|
||||
SET(LMMS_BUILD_HAIKU 1)
|
||||
ELSE()
|
||||
|
||||
@@ -48,9 +48,9 @@ FOREACH(_item ${qm_targets})
|
||||
ADD_DEPENDENCIES(finalize-locales "${_item}")
|
||||
ENDFOREACH(_item ${qm_targets})
|
||||
|
||||
IF(LMMS_BUILD_WIN32)
|
||||
FILE(GLOB QT_QM_FILES "${QT_TRANSLATIONS_DIR}/qt*[^h].qm")
|
||||
IF(BUNDLE_QT_TRANSLATIONS)
|
||||
FILE(GLOB QT_QM_FILES "${QT_TRANSLATIONS_DIR}/qt*.qm")
|
||||
LIST(SORT QT_QM_FILES)
|
||||
ENDIF(LMMS_BUILD_WIN32)
|
||||
ENDIF()
|
||||
|
||||
INSTALL(FILES ${QM_FILES} ${QT_QM_FILES} DESTINATION "${LMMS_DATA_DIR}/locale")
|
||||
|
||||
8341
data/locale/cs.ts
8341
data/locale/cs.ts
File diff suppressed because it is too large
Load Diff
@@ -3885,7 +3885,11 @@ Bitte besuchen Sie http://lmms.sf.net/wiki für Dokumentationen über LMMS.</tra
|
||||
</message>
|
||||
<message>
|
||||
<source>E&xport Tracks...</source>
|
||||
<translation>E&xport Tracks...</translation>
|
||||
<translation>Tracks e&xportieren...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Export &MIDI...</source>
|
||||
<translation>&MIDI exportieren...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Online Help</source>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
8732
data/locale/ko.ts
8732
data/locale/ko.ts
File diff suppressed because it is too large
Load Diff
@@ -3002,7 +3002,7 @@ You can remove and move FX channels in the context menu, which is accessed by ri
|
||||
</message>
|
||||
<message>
|
||||
<source>VELOCITY</source>
|
||||
<translation>PRĘDKOŚĆ UDERZENIA</translation>
|
||||
<translation>PRĘDKOŚĆ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ENABLE MIDI OUTPUT</source>
|
||||
|
||||
7348
data/locale/ru.ts
7348
data/locale/ru.ts
File diff suppressed because it is too large
Load Diff
7497
data/locale/sv.ts
7497
data/locale/sv.ts
File diff suppressed because it is too large
Load Diff
6765
data/locale/uk.ts
6765
data/locale/uk.ts
File diff suppressed because it is too large
Load Diff
6856
data/locale/zh_TW.ts
6856
data/locale/zh_TW.ts
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -618,6 +618,8 @@ TrackContentObjectView {
|
||||
qproperty-textColor: rgb( 255, 255, 255 );
|
||||
qproperty-textShadowColor: rgb( 0, 0, 0 );
|
||||
qproperty-gradient: true; /* boolean property, set true to have a gradient */
|
||||
/* finger tip offset of cursor */
|
||||
qproperty-mouseHotspotHand: 3px 3px;
|
||||
}
|
||||
|
||||
/* instrument pattern */
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 109 KiB |
@@ -81,6 +81,12 @@ TextFloat {
|
||||
}
|
||||
|
||||
|
||||
/* splash screen text */
|
||||
QSplashScreen QLabel {
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
QMenu {
|
||||
border-top: 2px solid #08993E;
|
||||
background-color: #15191c;
|
||||
@@ -647,6 +653,8 @@ TrackContentObjectView {
|
||||
qproperty-textColor: #fff;
|
||||
qproperty-textShadowColor: rgba(0,0,0,200);
|
||||
qproperty-gradient: false; /* boolean property, set true to have a gradient */
|
||||
/* finger tip offset of cursor */
|
||||
qproperty-mouseHotspotHand: 7px 2px;
|
||||
}
|
||||
|
||||
/* instrument pattern */
|
||||
|
||||
2
debian/changelog
vendored
2
debian/changelog
vendored
@@ -1,4 +1,4 @@
|
||||
lmms (1.2.0~rc7.1) unstable; urgency=low
|
||||
lmms (@VERSION@) unstable; urgency=low
|
||||
|
||||
* Upstream integration.
|
||||
* Drop Debian menu entry (policy 9.6).
|
||||
|
||||
1
debian/control
vendored
1
debian/control
vendored
@@ -27,6 +27,7 @@ Build-Depends:
|
||||
libsoundio-dev,
|
||||
libstk0-dev,
|
||||
libvorbis-dev,
|
||||
libx11-xcb-dev,
|
||||
libxcb-keysyms1-dev,
|
||||
libxcb-util0-dev,
|
||||
portaudio19-dev,
|
||||
|
||||
@@ -9,24 +9,26 @@ Colin Wallace <wallacoloo@gmail.com>
|
||||
Oskar Wallgren <oskar.wallgren13@gmail.com>
|
||||
Raine M. Ekman <raine@iki.fi>
|
||||
Umcaruje <uros.maravic@gmail.com>
|
||||
Michael Gregorius <michael.gregorius.git@arcor.de>
|
||||
Hyunjin Song <tteu.ingog@gmail.com>
|
||||
Javier Serrano Polo <javier--IfwAyVwL9S8xJKrdU2QtlAdbjyPl9T@jasp.net>
|
||||
Michael Gregorius <michael.gregorius.git@arcor.de>
|
||||
grejppi <grejppi@gmail.com>
|
||||
Javier Serrano Polo <javier@jasp.net>
|
||||
Hyunjin Song <tteu.ingog@gmail.com>
|
||||
Wong Cho Ching <chwong249664@yahoo.com>
|
||||
Alexandre Almeida <wilsalx@gmail.com>
|
||||
Daniel Winzen <d@winzen4.de>
|
||||
LMMS Service Account <lmms.service@gmail.com>
|
||||
Steffen Baranowsky <BaraMGB@freenet.de>
|
||||
Danny McRae <khjklujn@yahoo.com>
|
||||
Johannes Lorenz <j.git@lorenz-ho.me>
|
||||
Garrett <g@floft.net>
|
||||
Hyunin Song <tteu.ingog@gmail.com>
|
||||
liushuyu <liushuyu011@gmail.com>
|
||||
Dominic Clark <mrdomclark@gmail.com>
|
||||
Hyunin Song <tteu.ingog@gmail.com>
|
||||
Andrew Kelley <superjoe30@gmail.com>
|
||||
Spekular <Spekularr@gmail.com>
|
||||
Andreas Brandmaier <andy@brandmaier.de>
|
||||
Fastigium <fastigiummusic@gmail.com>
|
||||
Spekular <Spekularr@gmail.com>
|
||||
Amadeus Folego <amadeusfolego@gmail.com>
|
||||
Jonas Trappenberg <jonas@trappenberg.ch>
|
||||
M374LX <wilsalx@gmail.com>
|
||||
@@ -35,18 +37,17 @@ grindhold <grindhold@gmx.net>
|
||||
Mike Choi <rdavidian71@gmail.com>
|
||||
Karmo Rosental <karmo.rosental@gmail.com>
|
||||
Christopher L. Simons <christopherleesimons@gmail.com>
|
||||
Dominic Clark <mrdomclark@gmail.com>
|
||||
NoiseByNorthwest <noisebynorthwest@gmail.com>
|
||||
falkTX <falktx@gmail.com>
|
||||
Johannes Lorenz <johannes89@mailueberfall.de>
|
||||
Rebecca DeField <rebeccadefield@gmail.com>
|
||||
falkTX <falktx@gmail.com>
|
||||
Stian Jørgensrud <stianahj@gmail.com>
|
||||
David Carlier <devnexen@gmail.com>
|
||||
Ryan Roden-Corrent <ryan@rcorre.net>
|
||||
Shmuel H <shmuelhazan0@gmail.com>
|
||||
midi-pascal <midi-pascal@videotron.ca>
|
||||
Augustin Cavalier <waddlesplash@gmail.com>
|
||||
BaraMGB <BaraMGB@freenet.de>
|
||||
Csaba Hruska <csaba.hruska@gmail.com>
|
||||
David Carlier <devnexen@gmail.com>
|
||||
DeRobyJ <derobyj@gmail.com>
|
||||
Hussam Eddin Alhomsi <hussameddin.alhomsi@gmail.com>
|
||||
Rüdiger Ranft <rudi@qzzq.de>
|
||||
@@ -66,11 +67,15 @@ Jonathan Aquilina <eagles051387@gmail.com>
|
||||
Mohammad Amin Sameti <mamins1376@gmail.com>
|
||||
ra <symbiants@gmail.com>
|
||||
wongcc966422 <wongcc966422@users.noreply.github.com>
|
||||
Cyp <cyp@wz2100.net>
|
||||
David CARLIER <devnexen@gmail.com>
|
||||
Douglas <34612565+DouglasDGI@users.noreply.github.com>
|
||||
Gurjot Singh <bhattigurjot@gmail.com>
|
||||
Janne Sinisalo <janne.m.sinisalo@gmail.com>
|
||||
Krzysztof Foltman <wdev@foltman.com>
|
||||
Lou Herard <lherard@gmail.com>
|
||||
Noah Brecht <noahb2713@gmail.com>
|
||||
Olivier Humbert <trebmuh@tuxfamily.org>
|
||||
Paul Batchelor <thisispaulbatchelor@gmail.com>
|
||||
Paul Wayper <paulway@mabula.net>
|
||||
Petter Reinholdtsen <pere@hungry.com>
|
||||
@@ -86,9 +91,8 @@ Cyrille Bollu <cyrille.bollu2@gmail.com>
|
||||
Dan Williams <BumblingCoder@users.noreply.github.com>
|
||||
Ian Sannar <ian.sannar@gmail.com>
|
||||
Jaroslav Petrnoušek <baegus@gmail.com>
|
||||
Johannes Lorenz <1042576+JohannesLorenz@users.noreply.github.com>
|
||||
Johannes Lorenz <j.git@lorenz-ho.me>
|
||||
Kenneth Perry (thothonegan) <thothonegan@gmail.com>
|
||||
Kevin Zander <veratil@gmail.com>
|
||||
LYF610400210 <lyfjxymf@sina.com>
|
||||
Lukas W <lukas@Lukass-iMac.fritz.box>
|
||||
Mark-Agent003 <wgreeves01@gmail.com>
|
||||
@@ -101,29 +105,37 @@ Rebecca LaVie <rebeccadefield@gmail.com>
|
||||
Roberto Giaconia <DeRobyJ@users.noreply.github.com>
|
||||
SecondFlight <qbgeekjtw@gmail.com>
|
||||
Steffen Baranowsky <baramgb@freenet.de>
|
||||
T0NIT0 RMX <t0nit0rmx@gmail.com>
|
||||
TheTravelingSpaceman <smuts.walter@gmail.com>
|
||||
Thomas Clark <the.thomas.j.clark@gmail.com>
|
||||
gnudles <gnudles@users.noreply.github.com>
|
||||
liushuyu <liushuyu_011@163.com>
|
||||
makepost <makepost@firemail.cc>
|
||||
miketurn <miketurn1234@yahoo.com>
|
||||
psyomn <lethaljellybean@gmail.com>
|
||||
quadro <quadro2@email.cz>
|
||||
sarahkeefe <sarahjanekeefe@gmail.com>
|
||||
thmueller64 <64359888+thmueller64@users.noreply.github.com>
|
||||
Achim Settelmeier <lmms@m1.sirlab.de>
|
||||
Alexandra Dutton <alxdttn@umich.edu>
|
||||
Andreas Müller <schnitzeltony@gmail.com>
|
||||
André Hentschel <nerv@dawncrow.de>
|
||||
Armin Kazmi <armin.kazmi@tu-dortmund.de>
|
||||
Artur Twardowski <32247490+artur-twardowski@users.noreply.github.com>
|
||||
Attila Herman <attila589@gmail.com>
|
||||
Bastian Kummer <bastian.kummer@securepoint.de>
|
||||
Christopher A. Oliver <oliver@onion.private>
|
||||
Cyp <48363+Cyp@users.noreply.github.com>
|
||||
Devin Venable <venable.devin@gmail.com>
|
||||
Diego Ramos Ruggeri <diego@ruggeri.net.br>
|
||||
Douglas <34612565+DouglasDGI@users.noreply.github.com>
|
||||
DragonEagle <allensoard@yahoo.com>
|
||||
Filip Hron <filip.hron@gmail.com>
|
||||
Frank Mather <tinycat2001@gmail.com>
|
||||
Frederik <freggy@gmail.com>
|
||||
Gingka Akiyama <33764485+GingkathFox@users.noreply.github.com>
|
||||
Greg Simpson <geedubess@users.noreply.github.com>
|
||||
Hexasoft <yperret@in2p3.fr>
|
||||
Hubert Figuière <hub@figuiere.net>
|
||||
IvanMaldonado <ivan.gm94@gmail.com>
|
||||
Ivo Wetzel <ivo.wetzel@googlemail.com>
|
||||
Jens Lang <jenslang@users.sf.net>
|
||||
@@ -138,17 +150,17 @@ Lee Avital <leeavital@gmail.com>
|
||||
LocoMatt <samozelko123@gmail.com>
|
||||
Léo Andrès <leo@ndrs.fr>
|
||||
Markus Elfring <elfring@users.sourceforge.net>
|
||||
Martin Pavelek <he29.HS@gmail.com>
|
||||
Maurizio Lo Bosco <maurizio.lobosco@gmail.com>
|
||||
Mehdi <powergame_coder2@yahoo.com>
|
||||
Mikobuntu <chrissy.mc.1@hotmail.co.uk>
|
||||
Mingcong Bai <jeffbai@aosc.xyz>
|
||||
Nikos Chantziaras <realnc@arcor.de>
|
||||
Noah Brecht <noahb2713@gmail.com>
|
||||
Ododo <olivierdautricourt@gmail.com>
|
||||
Olivier Humbert <trebmuh@users.noreply.github.com>
|
||||
Paul Nasca <zynaddsubfx_AT_yahoo com>
|
||||
Peter Nelson <peter1138@users.sourceforge.net>
|
||||
Ra <symbiants@gmail.com>
|
||||
Ron U <sharpblade4@gmail.com>
|
||||
Ryan Schmidt <github@ryandesign.com>
|
||||
Shane Ambler <GitHub@ShaneWare.Biz>
|
||||
Simon Jackson (Netbook) <jackokring@gmail.com>
|
||||
@@ -170,13 +182,15 @@ follower <follower@rancidbacon.com>
|
||||
fundamental <mark.d.mccurry@gmail.com>
|
||||
gandalf3 <gandalf3@users.noreply.github.com>
|
||||
groboclown <matt@groboclown.net>
|
||||
https://gitlab.com/users/CYBERDEViLNL <1148379+CYBERDEViLNL@users.noreply.github.com>
|
||||
irrenhaus3 <irrenhaus3@users.noreply.github.com>
|
||||
jasp00 <javier--IfwAyVwL9S8xJKrdU2QtlAdbjyPl9T@jasp.net>
|
||||
justnope <dont@email.invalid>
|
||||
kamnxt <kamnxt@kamnxt.com>
|
||||
knittl <knittl89+github@gmail.com>
|
||||
lmmsservice <lmms.service@gmail.com>
|
||||
m-xbutterfly <m-xbutterfly@tutanota.com>
|
||||
noahb01 <noahb2713@gmail.com>
|
||||
necrashter <iiilker99@gmail.com>
|
||||
projectpitchin <githobbyacct@gmail.com>
|
||||
rgwan <kmlinuxm@gmail.com>
|
||||
xhe <xhebox@users.noreply.github.com>
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "AudioWeakJack.h"
|
||||
#endif
|
||||
|
||||
#include <atomic>
|
||||
#include <QtCore/QVector>
|
||||
#include <QtCore/QList>
|
||||
#include <QtCore/QMap>
|
||||
@@ -57,6 +58,7 @@ public:
|
||||
// the jack callback is handled here, we call the midi client so that it can read
|
||||
// it's midi data during the callback
|
||||
AudioJack * addMidiClient(MidiJack *midiClient);
|
||||
void removeMidiClient(void) { m_midiClient = nullptr; }
|
||||
jack_client_t * jackClient() {return m_client;};
|
||||
|
||||
inline static QString name()
|
||||
@@ -106,9 +108,9 @@ private:
|
||||
jack_client_t * m_client;
|
||||
|
||||
bool m_active;
|
||||
bool m_stopped;
|
||||
std::atomic<bool> m_stopped;
|
||||
|
||||
MidiJack *m_midiClient;
|
||||
std::atomic<MidiJack *> m_midiClient;
|
||||
QVector<jack_port_t *> m_outputPorts;
|
||||
jack_default_audio_sample_t * * m_tempOutBufs;
|
||||
surroundSampleFrame * m_outBuf;
|
||||
|
||||
@@ -220,6 +220,7 @@ public:
|
||||
m_centerValue = centerVal;
|
||||
}
|
||||
|
||||
//! link @p m1 and @p m2, let @p m1 take the values of @p m2
|
||||
static void linkModels( AutomatableModel* m1, AutomatableModel* m2 );
|
||||
static void unlinkModels( AutomatableModel* m1, AutomatableModel* m2 );
|
||||
|
||||
@@ -325,7 +326,7 @@ private:
|
||||
|
||||
|
||||
DataType m_dataType;
|
||||
ScaleType m_scaleType; //! scale type, linear by default
|
||||
ScaleType m_scaleType; //!< scale type, linear by default
|
||||
float m_value;
|
||||
float m_initValue;
|
||||
float m_minValue;
|
||||
|
||||
@@ -47,6 +47,7 @@ protected:
|
||||
DropToolBar * addDropToolBar(Qt::ToolBarArea whereToAdd, QString const & windowTitle);
|
||||
DropToolBar * addDropToolBar(QWidget * parent, Qt::ToolBarArea whereToAdd, QString const & windowTitle);
|
||||
|
||||
virtual void closeEvent( QCloseEvent * _ce );
|
||||
protected slots:
|
||||
virtual void play() {}
|
||||
virtual void record() {}
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
|
||||
#include "export.h"
|
||||
#include "lmms_basics.h"
|
||||
|
||||
class BBTrackContainer;
|
||||
class DummyTrackContainer;
|
||||
@@ -100,6 +101,9 @@ public:
|
||||
{
|
||||
return s_framesPerTick;
|
||||
}
|
||||
|
||||
static float framesPerTick(sample_rate_t sample_rate);
|
||||
|
||||
static void updateFramesPerTick();
|
||||
|
||||
static inline LmmsCore * inst()
|
||||
|
||||
@@ -48,6 +48,14 @@ class FileBrowser : public SideBarWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
/**
|
||||
Create a file browser side bar widget
|
||||
@param directories '*'-separated list of directories to search for.
|
||||
If a directory of factory files should be in the list it
|
||||
must be the last one (for the factory files delimiter to work)
|
||||
@param filter Filter as used in QDir::match
|
||||
@param recurse *to be documented*
|
||||
*/
|
||||
FileBrowser( const QString & directories, const QString & filter,
|
||||
const QString & title, const QPixmap & pm,
|
||||
QWidget * parent, bool dirs_as_items = false, bool recurse = false );
|
||||
@@ -69,8 +77,8 @@ private:
|
||||
|
||||
QLineEdit * m_filterEdit;
|
||||
|
||||
QString m_directories;
|
||||
QString m_filter;
|
||||
QString m_directories; //!< Directories to search, split with '*'
|
||||
QString m_filter; //!< Filter as used in QDir::match()
|
||||
|
||||
bool m_dirsAsItems;
|
||||
bool m_recurse;
|
||||
@@ -159,7 +167,14 @@ private:
|
||||
static QPixmap * s_folderOpenedPixmap;
|
||||
static QPixmap * s_folderLockedPixmap;
|
||||
|
||||
//! Directories that lead here
|
||||
//! Initially, this is just set to the current path of a directory
|
||||
//! If, however, you have e.g. 'TripleOscillator/xyz' in two of the
|
||||
//! file browser's search directories 'a' and 'b', this will have two
|
||||
//! entries 'a/TripleOscillator' and 'b/TripleOscillator'
|
||||
//! and 'xyz' in the tree widget
|
||||
QStringList m_directories;
|
||||
//! Filter as used in QDir::match()
|
||||
QString m_filter;
|
||||
|
||||
int m_dirCount;
|
||||
|
||||
@@ -174,8 +174,7 @@ private:
|
||||
BoolModel m_volumeKnob;
|
||||
FloatModel m_volumeRatio;
|
||||
|
||||
QPoint m_mouseOffset;
|
||||
QPoint m_origMousePos;
|
||||
QPoint m_lastMousePos; //!< mouse position in last mouseMoveEvent
|
||||
float m_leftOver;
|
||||
bool m_buttonPressed;
|
||||
|
||||
|
||||
@@ -73,8 +73,9 @@ protected:
|
||||
virtual void mouseDoubleClickEvent( QMouseEvent * _me );
|
||||
|
||||
private:
|
||||
float m_remainder; //!< floating offset of spinbox in [-0.5, 0.5]
|
||||
bool m_mouseMoving;
|
||||
QPoint m_origMousePos;
|
||||
QPoint m_lastMousePos; //!< mouse position in last mouseMoveEvent
|
||||
int m_displayOffset;
|
||||
void enterValue();
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ private:
|
||||
int m_numDigits;
|
||||
int m_marginWidth;
|
||||
|
||||
void initUi( const QString& name, const QString &style = QString("19green") ); //!< to be called by ctors
|
||||
void initUi( const QString& name, const QString &style ); //!< to be called by ctors
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -126,21 +126,13 @@ public:
|
||||
|
||||
void clearKeyModifiers();
|
||||
|
||||
bool isCtrlPressed()
|
||||
{
|
||||
return m_keyMods.m_ctrl;
|
||||
}
|
||||
|
||||
// TODO Remove this function, since m_shift can get stuck down.
|
||||
// [[deprecated]]
|
||||
bool isShiftPressed()
|
||||
{
|
||||
return m_keyMods.m_shift;
|
||||
}
|
||||
|
||||
bool isAltPressed()
|
||||
{
|
||||
return m_keyMods.m_alt;
|
||||
}
|
||||
|
||||
static void saveWidgetState( QWidget * _w, QDomElement & _de );
|
||||
static void restoreWidgetState( QWidget * _w, const QDomElement & _de );
|
||||
|
||||
@@ -176,11 +168,11 @@ public slots:
|
||||
void autoSave();
|
||||
|
||||
protected:
|
||||
virtual void closeEvent( QCloseEvent * _ce );
|
||||
virtual void focusOutEvent( QFocusEvent * _fe );
|
||||
virtual void keyPressEvent( QKeyEvent * _ke );
|
||||
virtual void keyReleaseEvent( QKeyEvent * _ke );
|
||||
virtual void timerEvent( QTimerEvent * _ev );
|
||||
void closeEvent( QCloseEvent * _ce ) override;
|
||||
void focusOutEvent( QFocusEvent * _fe ) override;
|
||||
void keyPressEvent( QKeyEvent * _ke ) override;
|
||||
void keyReleaseEvent( QKeyEvent * _ke ) override;
|
||||
void timerEvent( QTimerEvent * _ev ) override;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
@@ -171,7 +171,10 @@ public:
|
||||
return m_audioDevStartFailed;
|
||||
}
|
||||
|
||||
//! Set new audio device. Old device will be deleted,
|
||||
//! unless it's stored using storeAudioDevice
|
||||
void setAudioDevice( AudioDevice * _dev , bool startNow );
|
||||
//! See overloaded function
|
||||
void setAudioDevice( AudioDevice * _dev,
|
||||
const struct qualitySettings & _qs,
|
||||
bool _needs_fifo,
|
||||
@@ -396,6 +399,7 @@ private:
|
||||
bool m_isProcessing;
|
||||
|
||||
// audio device stuff
|
||||
void doSetAudioDevice( AudioDevice *_dev );
|
||||
AudioDevice * m_audioDev;
|
||||
AudioDevice * m_oldAudioDev;
|
||||
QString m_audioDevName;
|
||||
|
||||
@@ -302,6 +302,7 @@ private:
|
||||
NotePlayHandleList m_subNotes; // used for chords and arpeggios
|
||||
volatile bool m_released; // indicates whether note is released
|
||||
bool m_releaseStarted;
|
||||
bool m_hasMidiNote;
|
||||
bool m_hasParent; // indicates whether note has parent
|
||||
NotePlayHandle * m_parent; // parent note
|
||||
bool m_hadChildren;
|
||||
|
||||
@@ -250,6 +250,7 @@ private:
|
||||
|
||||
QList<int> m_markedSemiTones;
|
||||
QMenu * m_semiToneMarkerMenu; // when you right click on the key area
|
||||
int m_pianoKeySelected;
|
||||
|
||||
PianoRoll();
|
||||
PianoRoll( const PianoRoll & );
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
class JournallingObject;
|
||||
|
||||
|
||||
//! @warning many parts of this class may be rewritten soon
|
||||
class ProjectJournal
|
||||
{
|
||||
public:
|
||||
@@ -76,7 +77,9 @@ public:
|
||||
reallocID( _id, NULL );
|
||||
}
|
||||
|
||||
//! hack, not used when saving a file
|
||||
static jo_id_t idToSave( jo_id_t id );
|
||||
//! hack, not used when loading a savefile
|
||||
static jo_id_t idFromSave( jo_id_t id );
|
||||
|
||||
void clearJournal();
|
||||
|
||||
@@ -265,6 +265,8 @@ public slots:
|
||||
void sampleRateChanged();
|
||||
|
||||
private:
|
||||
static sample_rate_t mixerSampleRate();
|
||||
|
||||
void update( bool _keep_settings = false );
|
||||
|
||||
void convertIntToFloat ( int_sample_t * & _ibuf, f_cnt_t _frames, int _channels);
|
||||
|
||||
@@ -126,6 +126,9 @@ private slots:
|
||||
void toggleDisplayWaveform( bool en );
|
||||
void toggleDisableAutoquit( bool en );
|
||||
|
||||
void vstEmbedMethodChanged();
|
||||
void toggleVSTAlwaysOnTop( bool en );
|
||||
|
||||
void setLanguage( int lang );
|
||||
|
||||
|
||||
@@ -207,6 +210,8 @@ private:
|
||||
|
||||
QComboBox* m_vstEmbedComboBox;
|
||||
QString m_vstEmbedMethod;
|
||||
LedCheckBox * m_vstAlwaysOnTopCheckBox;
|
||||
bool m_vstAlwaysOnTop;
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
@@ -75,6 +75,9 @@ public:
|
||||
|
||||
public slots:
|
||||
void scrolled( int new_pos );
|
||||
void selectRegionFromPixels(int xStart, int xEnd);
|
||||
void stopSelectRegion();
|
||||
void updateRubberband();
|
||||
|
||||
void setEditMode( EditMode mode );
|
||||
void setEditModeDraw();
|
||||
@@ -85,6 +88,9 @@ public slots:
|
||||
|
||||
protected:
|
||||
virtual void closeEvent( QCloseEvent * ce );
|
||||
virtual void mousePressEvent(QMouseEvent * me);
|
||||
virtual void mouseMoveEvent(QMouseEvent * me);
|
||||
virtual void mouseReleaseEvent(QMouseEvent * me);
|
||||
|
||||
private slots:
|
||||
void setHighQuality( bool );
|
||||
@@ -109,6 +115,9 @@ private:
|
||||
|
||||
virtual bool allowRubberband() const;
|
||||
|
||||
int trackIndexFromSelectionPoint(int yPos);
|
||||
int indexOfTrackView(const TrackView* tv);
|
||||
|
||||
|
||||
Song * m_song;
|
||||
|
||||
@@ -135,6 +144,14 @@ private:
|
||||
bool m_smoothScroll;
|
||||
|
||||
EditMode m_mode;
|
||||
QPoint m_origin;
|
||||
QPoint m_scrollPos;
|
||||
QPoint m_mousePos;
|
||||
int m_rubberBandStartTrackview;
|
||||
MidiTime m_rubberbandStartMidipos;
|
||||
int m_currentZoomingValue;
|
||||
int m_trackHeadWidth;
|
||||
bool m_selectRegion;
|
||||
|
||||
friend class SongEditorWindow;
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <QtCore/QList>
|
||||
#include <QWidget>
|
||||
#include <QSignalMapper>
|
||||
#include <QSize>
|
||||
#include <QColor>
|
||||
#include <QMimeData>
|
||||
|
||||
@@ -72,6 +73,8 @@ const int DEFAULT_TRACK_HEIGHT = 32;
|
||||
|
||||
const int TCO_BORDER_WIDTH = 2;
|
||||
|
||||
char const *const FILENAME_FILTER = "[\\0000-\x1f\"*/:<>?\\\\|\x7f]";
|
||||
|
||||
|
||||
class TrackContentObject : public Model, public JournallingObject
|
||||
{
|
||||
@@ -199,6 +202,9 @@ class TrackContentObjectView : public selectableObject, public ModelView
|
||||
Q_PROPERTY( QColor textShadowColor READ textShadowColor WRITE setTextShadowColor )
|
||||
Q_PROPERTY( QColor BBPatternBackground READ BBPatternBackground WRITE setBBPatternBackground )
|
||||
Q_PROPERTY( bool gradient READ gradient WRITE setGradient )
|
||||
// We have to use a QSize here because using QPoint isn't supported.
|
||||
// width -> x, height -> y
|
||||
Q_PROPERTY( QSize mouseHotspotHand WRITE setMouseHotspotHand )
|
||||
|
||||
public:
|
||||
TrackContentObjectView( TrackContentObject * tco, TrackView * tv );
|
||||
@@ -210,6 +216,12 @@ public:
|
||||
{
|
||||
return m_tco;
|
||||
}
|
||||
|
||||
inline TrackView * getTrackView()
|
||||
{
|
||||
return m_trackView;
|
||||
}
|
||||
|
||||
// qproperty access func
|
||||
QColor mutedColor() const;
|
||||
QColor mutedBackgroundColor() const;
|
||||
@@ -225,11 +237,12 @@ public:
|
||||
void setTextShadowColor( const QColor & c );
|
||||
void setBBPatternBackground( const QColor & c );
|
||||
void setGradient( const bool & b );
|
||||
void setMouseHotspotHand(const QSize & s);
|
||||
|
||||
// access needsUpdate member variable
|
||||
bool needsUpdate();
|
||||
void setNeedsUpdate( bool b );
|
||||
|
||||
|
||||
public slots:
|
||||
virtual bool close();
|
||||
void cut();
|
||||
@@ -256,10 +269,6 @@ protected:
|
||||
|
||||
float pixelsPerTact();
|
||||
|
||||
inline TrackView * getTrackView()
|
||||
{
|
||||
return m_trackView;
|
||||
}
|
||||
|
||||
DataFile createTCODataFiles(const QVector<TrackContentObjectView *> & tcos) const;
|
||||
|
||||
@@ -298,8 +307,10 @@ private:
|
||||
QColor m_textShadowColor;
|
||||
QColor m_BBPatternBackground;
|
||||
bool m_gradient;
|
||||
QSize m_mouseHotspotHand; // QSize must be used because QPoint isn't supported by property system
|
||||
bool m_cursorSetYet;
|
||||
|
||||
bool m_needsUpdate;
|
||||
bool m_needsUpdate;
|
||||
inline void setInitialMousePos( QPoint pos )
|
||||
{
|
||||
m_initialMousePos = pos;
|
||||
@@ -341,7 +352,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
bool canPasteSelection( MidiTime tcoPos, const QMimeData * mimeData );
|
||||
bool canPasteSelection( MidiTime tcoPos, const QDropEvent *de );
|
||||
bool pasteSelection( MidiTime tcoPos, QDropEvent * de );
|
||||
|
||||
MidiTime endPosition( const MidiTime & posStart );
|
||||
|
||||
@@ -133,27 +133,21 @@ public slots:
|
||||
|
||||
virtual void dropEvent( QDropEvent * _de );
|
||||
virtual void dragEnterEvent( QDragEnterEvent * _dee );
|
||||
///
|
||||
/// \brief selectRegionFromPixels
|
||||
/// \param x
|
||||
/// \param y
|
||||
/// Use the rubber band to select TCO from all tracks using x, y pixels
|
||||
void selectRegionFromPixels(int xStart, int xEnd);
|
||||
|
||||
///
|
||||
/// \brief stopRubberBand
|
||||
/// Removes the rubber band from display when finished with.
|
||||
void stopRubberBand();
|
||||
|
||||
|
||||
protected:
|
||||
static const int DEFAULT_PIXELS_PER_TACT = 16;
|
||||
|
||||
virtual void mousePressEvent( QMouseEvent * _me );
|
||||
virtual void mouseMoveEvent( QMouseEvent * _me );
|
||||
virtual void mouseReleaseEvent( QMouseEvent * _me );
|
||||
|
||||
virtual void resizeEvent( QResizeEvent * );
|
||||
|
||||
MidiTime m_currentPosition;
|
||||
RubberBand *rubberBand() const;
|
||||
|
||||
|
||||
private:
|
||||
@@ -187,7 +181,7 @@ private:
|
||||
float m_ppt;
|
||||
|
||||
RubberBand * m_rubberBand;
|
||||
QPoint m_origin;
|
||||
|
||||
|
||||
|
||||
signals:
|
||||
|
||||
@@ -76,10 +76,10 @@ private slots:
|
||||
private:
|
||||
struct VstSyncData
|
||||
{
|
||||
bool isPlaying;
|
||||
double ppqPos;
|
||||
int timeSigNumer;
|
||||
int timeSigDenom;
|
||||
bool isPlaying;
|
||||
bool isCycle;
|
||||
bool hasSHM;
|
||||
float cycleStart;
|
||||
|
||||
@@ -41,10 +41,10 @@
|
||||
|
||||
struct VstSyncData
|
||||
{
|
||||
bool isPlaying;
|
||||
double ppqPos;
|
||||
int timeSigNumer;
|
||||
int timeSigDenom;
|
||||
bool isPlaying;
|
||||
bool isCycle;
|
||||
bool hasSHM;
|
||||
float cycleStart;
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include <cmath>
|
||||
using namespace std;
|
||||
|
||||
#if defined (LMMS_BUILD_WIN32) || defined (LMMS_BUILD_APPLE) || defined(LMMS_BUILD_HAIKU) || defined (__FreeBSD__) || defined(__OpenBSD__)
|
||||
#ifndef __GLIBC__
|
||||
#ifndef isnanf
|
||||
#define isnanf(x) isnan(x)
|
||||
#endif
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
#define PLATFORM "OpenBSD"
|
||||
#endif
|
||||
|
||||
#ifdef LMMS_BUILD_FREEBSD
|
||||
#define PLATFORM "FreeBSD"
|
||||
#endif
|
||||
|
||||
#ifdef LMMS_BUILD_WIN32
|
||||
#define PLATFORM "win32"
|
||||
#endif
|
||||
|
||||
@@ -83,7 +83,6 @@ bool AmplifierEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames )
|
||||
for( fpp_t f = 0; f < frames; ++f )
|
||||
{
|
||||
// qDebug( "offset %d, value %f", f, m_ampControls.m_volumeModel.value( f ) );
|
||||
outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1];
|
||||
|
||||
sample_t s[2] = { buf[f][0], buf[f][1] };
|
||||
|
||||
@@ -123,6 +122,7 @@ bool AmplifierEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames )
|
||||
|
||||
buf[f][0] = d * buf[f][0] + w * s[0];
|
||||
buf[f][1] = d * buf[f][1] + w * s[1];
|
||||
outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1];
|
||||
}
|
||||
|
||||
checkGate( outSum / frames );
|
||||
|
||||
@@ -100,13 +100,13 @@ bool BassBoosterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames
|
||||
//float gain = gainBuffer ? gainBuffer[f] : gain;
|
||||
m_bbFX.leftFX().setGain( gain );
|
||||
m_bbFX.rightFX().setGain( gain);
|
||||
outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1];
|
||||
|
||||
sample_t s[2] = { buf[f][0], buf[f][1] };
|
||||
m_bbFX.nextSample( s[0], s[1] );
|
||||
|
||||
buf[f][0] = d * buf[f][0] + w * s[0];
|
||||
buf[f][1] = d * buf[f][1] + w * s[1];
|
||||
outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1];
|
||||
}
|
||||
|
||||
checkGate( outSum / frames );
|
||||
|
||||
@@ -190,12 +190,12 @@ bool CrossoverEQEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames
|
||||
double outSum = 0.0;
|
||||
for( int f = 0; f < frames; ++f )
|
||||
{
|
||||
outSum = buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1];
|
||||
buf[f][0] = d * buf[f][0] + w * m_work[f][0];
|
||||
buf[f][1] = d * buf[f][1] + w * m_work[f][1];
|
||||
outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1];
|
||||
}
|
||||
|
||||
checkGate( outSum );
|
||||
checkGate( outSum / frames );
|
||||
|
||||
return isRunning();
|
||||
}
|
||||
|
||||
@@ -193,11 +193,11 @@ bool DualFilterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames
|
||||
s[0] += ( s2[0] * mix2 );
|
||||
s[1] += ( s2[1] * mix2 );
|
||||
}
|
||||
outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1];
|
||||
|
||||
// do another mix with dry signal
|
||||
buf[f][0] = d * buf[f][0] + w * s[0];
|
||||
buf[f][1] = d * buf[f][1] + w * s[1];
|
||||
outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1];
|
||||
|
||||
//increment pointers
|
||||
cut1Ptr += cut1Inc;
|
||||
|
||||
@@ -55,10 +55,10 @@ EqControlsDialog::EqControlsDialog( EqControls *controls ) :
|
||||
|
||||
EqSpectrumView * inSpec = new EqSpectrumView( &controls->m_inFftBands, this );
|
||||
inSpec->move( 26, 17 );
|
||||
inSpec->setColor( QColor( 54, 45, 142, 150 ) );
|
||||
inSpec->setColor( QColor( 77, 101, 242, 150 ) );
|
||||
|
||||
EqSpectrumView * outSpec = new EqSpectrumView( &controls->m_outFftBands, this );
|
||||
outSpec->setColor( QColor( 9, 166, 156, 150 ) );
|
||||
outSpec->setColor( QColor( 0, 255, 239, 150 ) );
|
||||
outSpec->move( 26, 17 );
|
||||
|
||||
m_parameterWidget = new EqParameterWidget( this , controls );
|
||||
|
||||
@@ -45,11 +45,11 @@ EqAnalyser::EqAnalyser() :
|
||||
const float a2 = 0.14128;
|
||||
const float a3 = 0.01168;
|
||||
|
||||
for(int i = 0; i < FFT_BUFFER_SIZE; i++)
|
||||
for (int i = 0; i < FFT_BUFFER_SIZE; i++)
|
||||
{
|
||||
m_fftWindow[i] = ( a0 - a1 * cosf( 2 * F_PI * i / (float)FFT_BUFFER_SIZE - 1 )
|
||||
+ a2 * cosf( 4 * F_PI * i / (float)FFT_BUFFER_SIZE-1)
|
||||
- a3 * cos( 6 * F_PI * i / (float)FFT_BUFFER_SIZE - 1.0 ));
|
||||
m_fftWindow[i] = (a0 - a1 * cos(2 * F_PI * i / ((float)FFT_BUFFER_SIZE - 1.0))
|
||||
+ a2 * cos(4 * F_PI * i / ((float)FFT_BUFFER_SIZE - 1.0))
|
||||
- a3 * cos(6 * F_PI * i / ((float)FFT_BUFFER_SIZE - 1.0)));
|
||||
}
|
||||
clear();
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user