Skip to content

Commit

Permalink
Merge branch 'master' into jackmidi
Browse files Browse the repository at this point in the history
* master: (213 commits)
  Update Pattern and AutomationPattern length (LMMS#3037)
  Refresh i18n strings
  Hint text update
  Drop notes with length zero (LMMS#3031)
  Background tweak
  Background
  Update Flanger
  Exclude .ts files from the Github linguist
  Redesign Multitap echo (LMMS#3008)
  Update i18n source strings
  Extended arpeggiator functions (LMMS#2130)
  Fix sample track playback in BB tracks (LMMS#3023)
  Sort plug-in embedded resources (LMMS#3014)
  Implement version major.minor.release-stage.build (LMMS#3011)
  Fix regressions on loading broken projects (LMMS#3013)
  Improved file input validation. (LMMS#2523)
  Fix sample track view in BB editor (LMMS#3002)
  Request change in model when dropping a track (LMMS#3000)
  Add LocklessAllocator and use it in LocklessList (LMMS#2998)
  Drop forceStep in AutomatableModel (LMMS#3010)
  ...
  • Loading branch information
sambler committed Sep 19, 2016
2 parents e58c08f + 41b930e commit 68e72ba
Show file tree
Hide file tree
Showing 1,143 changed files with 66,044 additions and 27,784 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
.gitattributes export-ignore
.gitignore export-ignore
data/locale/* linguist-documentation
9 changes: 9 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
language: cpp
compiler: gcc
dist: trusty
sudo: required
matrix:
include:
- env: TARGET_OS=win32
Expand Down Expand Up @@ -31,3 +33,10 @@ deploy:
all_branches: true
condition: "$TARGET_OS != linux"
repo: LMMS/lmms
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/1ac7fc698195981a9227
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always
12 changes: 6 additions & 6 deletions .travis/linux..before_install.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#!/usr/bin/env bash

sudo add-apt-repository ppa:kalakris/cmake -y;
sudo add-apt-repository ppa:andrewrk/libgroove -y;
if [ $QT5 ]; then
sudo add-apt-repository ppa:ubuntu-sdk-team/ppa -y
fi
sudo apt-get update -qq
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
3 changes: 3 additions & 0 deletions .travis/linux..install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ PACKAGES="cmake libsndfile-dev fftw3-dev libvorbis-dev libogg-dev
libfluidsynth-dev portaudio19-dev wine-dev g++-multilib libfltk1.3-dev
libgig-dev libsoundio-dev"

# Help with unmet dependencies
PACKAGES="$PACKAGES libjack0"

if [ $QT5 ]; then
PACKAGES="$PACKAGES qtbase5-dev qttools5-dev-tools qttools5-dev"
else
Expand Down
2 changes: 1 addition & 1 deletion .travis/linux.win32.before_install.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env bash

sudo add-apt-repository ppa:tobydox/mingw-x-precise -y
sudo add-apt-repository ppa:tobydox/mingw-x-trusty -y
sudo apt-get update -qq
2 changes: 1 addition & 1 deletion .travis/linux.win32.install.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash

PACKAGES="nsis cloog-isl libmpc2 qt4-linguist-tools mingw32
PACKAGES="nsis cloog-isl libmpc3 qt4-linguist-tools mingw32
mingw32-x-sdl mingw32-x-libvorbis mingw32-x-fluidsynth mingw32-x-stk
mingw32-x-glib2 mingw32-x-portaudio mingw32-x-libsndfile mingw32-x-fftw
mingw32-x-flac mingw32-x-fltk mingw32-x-libsamplerate
Expand Down
2 changes: 1 addition & 1 deletion .travis/linux.win32.script.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env bash

export CMAKE_OPTS="-DUSE_WERROR=ON"
../cmake/build_mingw32.sh || ../cmake/build_mingw32.sh
../cmake/build_mingw32.sh
2 changes: 1 addition & 1 deletion .travis/linux.win64.script.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env bash

export CMAKE_OPTS="-DUSE_WERROR=ON"
../cmake/build_mingw64.sh || ../cmake/build_mingw64.sh
../cmake/build_mingw64.sh
2 changes: 1 addition & 1 deletion .travis/osx..install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
PACKAGES="cmake pkgconfig fftw libogg libvorbis libsndfile libsamplerate jack sdl stk fluid-synth portaudio node"

if [ $QT5 ]; then
PACKAGES="$PACKAGES qt5"
PACKAGES="$PACKAGES qt55"
else
PACKAGES="$PACKAGES qt"
fi
Expand Down
2 changes: 1 addition & 1 deletion .travis/osx..script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

if [ $QT5 ]; then
# Workaround; No FindQt5.cmake module exists
export CMAKE_PREFIX_PATH="$(brew --prefix qt5)"
export CMAKE_PREFIX_PATH="$(brew --prefix qt55)"
fi

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWANT_QT5=$QT5 -DUSE_WERROR=OFF ..
11 changes: 11 additions & 0 deletions .tx/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[main]
host = https://www.transifex.com
minimum_perc = 51
#Need to finish at least 51% before merging back

[lmms.lmms]
file_filter = data/locale/<lang>.ts
source_file = data/locale/en.ts
source_lang = en
type = QT

53 changes: 41 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,17 @@ SET(PROJECT_EMAIL "lmms-devel@lists.sourceforge.net")
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 "1")
SET(VERSION_PATCH "90")
#SET(VERSION_SUFFIX "")
SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
IF(VERSION_SUFFIX)
SET(VERSION "${VERSION}-${VERSION_SUFFIX}")
ENDIF(VERSION_SUFFIX)
SET(VERSION_MINOR "2")
SET(VERSION_RELEASE "0")
SET(VERSION_STAGE "rc2")
SET(VERSION_BUILD "0")
SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_RELEASE}")
IF(VERSION_STAGE)
SET(VERSION "${VERSION}-${VERSION_STAGE}")
ENDIF()
IF(VERSION_BUILD)
SET(VERSION "${VERSION}.${VERSION_BUILD}")
ENDIF()

# Override version information for non-base builds
INCLUDE(VersionInfo)
Expand Down Expand Up @@ -362,6 +366,10 @@ ENDIF(WANT_JACK)
PKG_CHECK_MODULES(FFTW3F REQUIRED fftw3f>=3.0.0)


# check for FLTK
FIND_PACKAGE(FLTK)


# check for Fluidsynth
IF(WANT_SF2)
PKG_CHECK_MODULES(FLUIDSYNTH fluidsynth>=1.0.7)
Expand All @@ -386,16 +394,29 @@ If(WANT_GIG)
ENDIF(WANT_GIG)

# check for pthreads
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE)
IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD)
FIND_PACKAGE(Threads)
ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE)
ENDIF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD)

IF(LMMS_BUILD_OPENBSD)
FIND_PACKAGE(Sndio)
IF(SNDIO_FOUND)
SET(LMMS_HAVE_SNDIO TRUE)
SET(STATUS_SNDIO "OK")
ELSE()
SET(STATUS_SNDIO "<not found or not supported on this platform>")
ENDIF(SNDIO_FOUND)
ENDIF(LMMS_BUILD_OPENBSD)

# check for WINE
IF(WANT_VST)
FIND_PACKAGE(Wine)
IF(WINE_FOUND)
SET(LMMS_SUPPORT_VST TRUE)
SET(STATUS_VST "OK")
ELSEIF(WANT_VST_NOWINE)
SET(LMMS_SUPPORT_VST TRUE)
SET(STATUS_VST "OK")
ELSE(WINE_FOUND)
SET(STATUS_VST "not found, please install (lib)wine-dev (or similar) - 64 bit systems additionally need gcc-multilib and g++-multilib")
ENDIF(WINE_FOUND)
Expand Down Expand Up @@ -439,18 +460,23 @@ SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DLMMS_DEBUG")
FILE(REMOVE include/lmmsconfig.h)

FILE(GLOB LMMS_INCLUDES "${CMAKE_SOURCE_DIR}/include/*.h")
LIST(SORT LMMS_INCLUDES)

# Get list of all committers from git history, ordered by number of commits
# Get list of all committers from git history, ordered by number of commits.
# The CONTRIBUTORS file is used by AboutDialog. This information can be provided
# with -DCONTRIBUTORS=/path/to/CONTRIBUTORS instead. For instance, to generate
# this file for version 1.1.3, the command is:
# git shortlog -sne v1.1.3 | cut -c8-
FIND_PACKAGE(Git)
IF(GIT_FOUND)
IF(GIT_FOUND AND NOT CONTRIBUTORS)
SET(CONTRIBUTORS "${CMAKE_BINARY_DIR}/CONTRIBUTORS")
EXECUTE_PROCESS(
COMMAND "${GIT_EXECUTABLE}" shortlog -sne
COMMAND cut -c8-
OUTPUT_FILE "${CONTRIBUTORS}"
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
TIMEOUT 1)
ENDIF(GIT_FOUND)
ENDIF()

# embedded resources stuff
IF(WIN32 OR WIN64)
Expand Down Expand Up @@ -509,6 +535,7 @@ IF(LMMS_BUILD_WIN32)
FILE(GLOB ZASF_BINARIES
"${CMAKE_SOURCE_DIR}/extras/plugins/zynaddsubfx/zynaddsubfx.dll"
"${CMAKE_SOURCE_DIR}/extras/plugins/zynaddsubfx/remote_zynaddsubfx.exe")
LIST(SORT ZASF_BINARIES)
INSTALL(FILES "${ZASF_BINARIES}" DESTINATION "${PLUGIN_DIR}")
ENDIF(EXISTS "${CMAKE_SOURCE_DIR}/extras")
ENDIF(LMMS_BUILD_WIN32)
Expand Down Expand Up @@ -550,6 +577,7 @@ MESSAGE(
"* ALSA : ${STATUS_ALSA}\n"
"* JACK : ${STATUS_JACK}\n"
"* OSS : ${STATUS_OSS}\n"
"* Sndio : ${STATUS_SNDIO}\n"
"* PortAudio : ${STATUS_PORTAUDIO}\n"
"* libsoundio : ${STATUS_SOUNDIO}\n"
"* PulseAudio : ${STATUS_PULSEAUDIO}\n"
Expand All @@ -561,6 +589,7 @@ MESSAGE(
"-------------------------\n"
"* ALSA : ${STATUS_ALSA}\n"
"* OSS : ${STATUS_OSS}\n"
"* Sndio : ${STATUS_SNDIO}\n"
"* JACK : ${STATUS_JACK}\n"
"* WinMM : ${STATUS_WINMM}\n"
"* AppleMidi : ${STATUS_APPLEMIDI}\n"
Expand Down
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
#![LMMS Logo](http://lmms.sourceforge.net/Lmms_logo.png) LMMS
[![Build Status](https://travis-ci.org/LMMS/lmms.png)](https://travis-ci.org/LMMS/lmms)

[![Build status](https://img.shields.io/travis/LMMS/lmms.svg?maxAge=3600)](https://travis-ci.org/LMMS/lmms)
[![Latest stable release](https://img.shields.io/github/release/LMMS/lmms.svg?maxAge=3600)](https://lmms.io/download)
[![Overall downloads on Github](https://img.shields.io/github/downloads/LMMS/lmms/total.svg?maxAge=3600)](https://github.com/LMMS/lmms/releases)
[![Join the chat at Discord](https://img.shields.io/badge/chat%20on-discord-7289DA.svg)](https://discord.gg/5kSc32Z)
[![Localise on transifex](https://img.shields.io/badge/localise-on_transifex-green.svg)](https://www.transifex.com/lmms/lmms/)

What is LMMS?
--------------
Expand Down Expand Up @@ -27,7 +32,7 @@ Features
* Many powerful instrument and effect-plugins out of the box
* Full user-defined track-based automation and computer-controlled automation sources
* Compatible with many standards such as SoundFont2, VST(i), LADSPA, GUS Patches, and full MIDI support
* Import of MIDI and FLP (FL Studio®/Fruityloops® Project) files
* MIDI file importing

Building
---------
Expand Down
11 changes: 7 additions & 4 deletions cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,16 @@ SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt")
SET(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
SET(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}")
SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_RELEASE}")
IF(VERSION_STAGE)
SET(CPACK_PACKAGE_VERSION_PATCH "${CPACK_PACKAGE_VERSION_PATCH}-${VERSION_STAGE}")
ENDIF()
IF(VERSION_BUILD)
SET(CPACK_PACKAGE_VERSION_PATCH "${CPACK_PACKAGE_VERSION_PATCH}.${VERSION_BUILD}")
ENDIF()
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME_UCASE}")
SET(CPACK_SOURCE_GENERATOR "TBZ2")
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}")
IF(VERSION_SUFFIX)
SET(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}-${VERSION_SUFFIX}")
ENDIF()
IF(NOT DEFINED WIN32)
SET(CPACK_STRIP_FILES "bin/${CMAKE_PROJECT_NAME};${PLUGIN_DIR}/*.so")
SET(CPACK_PACKAGE_EXECUTABLES "${CMAKE_PROJECT_NAME}" "${PROJECT_NAME_UCASE} binary")
Expand Down
38 changes: 23 additions & 15 deletions cmake/apple/install_apple.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,19 @@ LIBREADLINE="libreadline.6.2.dylib"
MSG_COLOR='\x1B[1;36m'
COLOR_RESET='\x1B[0m'
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
fi

# MacPorts only - check for u+w permissions on libreadline
if [ -f "@APPLE_PREFIX@/lib/$LIBREADLINE" ]; then
Expand All @@ -49,7 +62,7 @@ cp -R * "$APP/Contents"

# Manually copy STK rawwaves
mkdir -p "$APP/Contents/share/stk/rawwaves"
cp $STK_RAWWAVE/*.raw "$APP/Contents/share/stk/rawwaves"
cp $STK_RAWWAVE/*.raw "$APP/Contents/share/stk/rawwaves" > /dev/null 2>&1

# Make all libraries writable for macdeployqt
cd "$APP"
Expand All @@ -62,20 +75,15 @@ rm -rf "$APP/Contents/bin"

# Move libraries to proper locations
mkdir -p "$APP/Contents/Frameworks"
mv "$APP/Contents/lib/lmms/libZynAddSubFxCore.dylib" \
"$APP/Contents/Frameworks/libZynAddSubFxCore.dylib"

mv "$APP/Contents/lib/lmms/RemoteZynAddSubFx" \
"$APP/Contents/MacOS/RemoteZynAddSubFx"

# Fix more Zyn Linking issues

rm "$APP/Contents/Frameworks/libZynAddSubFxCore.dylib" > /dev/null 2>&1

# Fix zyn linking
install_name_tool -change @rpath/libZynAddSubFxCore.dylib \
@loader_path/../../Frameworks/libZynAddSubFxCore.dylib \
"$APP/Contents/lib/lmms/libzynaddsubfx.so"

install_name_tool -change @CMAKE_BINARY_DIR@/plugins/zynaddsubfx/libZynAddSubFxCore.dylib \
@loader_path/../../Frameworks/libZynAddSubFxCore.dylib \
"$APP/Contents/MacOS/RemoteZynAddSubFx"
@loader_path/../lib/lmms/libZynAddSubFxCore.dylib \
"$APP/Contents/MacOS/RemoteZynAddSubFx"

# Build a list of shared objects in target/lib/lmms
for file in "$APP/Contents/lib/lmms/"*.so; do
Expand All @@ -91,13 +99,13 @@ done

# Additional binaries that require linking
_executables="${_executables} -executable=$APP/Contents/MacOS/RemoteZynAddSubFx"
_executables="${_executables} -executable=$APP/Contents/Frameworks/libZynAddSubFxCore.dylib"
_executables="${_executables} -executable=$APP/Contents/lib/lmms/libZynAddSubFxCore.dylib"

# Build our App Package using "macdeployqt"
macdeployqt "$APP" $_executables

# OS X Specific Artwork
mkdir -p "$APP/Contents/Resources"
cp "@CMAKE_SOURCE_DIR@/cmake/apple/"*.icns "$APP/Contents/Resources/"

echo -e "\nFinished.\n\n"
2 changes: 2 additions & 0 deletions cmake/linux/lmms.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +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
Comment=easy music production for everyone!
Comment[ca]=Producció fàcil de música per a tothom!
Comment[fr]=Production facile de musique pour tout le monde !
Icon=lmms
Exec=env QT_X11_NO_NATIVE_MENUBAR=1 lmms %f
Terminal=false
Expand Down
12 changes: 12 additions & 0 deletions cmake/modules/BuildPlugin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,18 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME)

LIST(LENGTH PLUGIN_EMBEDDED_RESOURCES ER_LEN)
IF(ER_LEN)
# Expand and sort arguments to avoid locale dependent sorting in
# shell
SET(NEW_ARGS)
FOREACH(ARG ${PLUGIN_EMBEDDED_RESOURCES})
FILE(GLOB EXPANDED "${ARG}")
LIST(SORT EXPANDED)
FOREACH(ITEM ${EXPANDED})
LIST(APPEND NEW_ARGS ${ITEM})
ENDFOREACH()
ENDFOREACH()
SET(PLUGIN_EMBEDDED_RESOURCES ${NEW_ARGS})

SET(ER_H ${CMAKE_CURRENT_BINARY_DIR}/embedded_resources.h)
ADD_CUSTOM_COMMAND(OUTPUT ${ER_H}
COMMAND ${BIN2RES}
Expand Down
4 changes: 3 additions & 1 deletion cmake/modules/DetectMachine.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ IF(WIN32)
SET(LMMS_BUILD_WIN32 1)
ELSEIF(APPLE)
SET(LMMS_BUILD_APPLE 1)
ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
SET(LMMS_BUILD_OPENBSD 1)
ELSEIF(HAIKU)
SET(LMMS_BUILD_HAIKU 1)
ELSE()
Expand All @@ -25,7 +27,7 @@ ELSE(WIN32)
EXEC_PROGRAM( ${CMAKE_C_COMPILER} ARGS "-dumpmachine ${CMAKE_C_FLAGS}" OUTPUT_VARIABLE Machine )
MESSAGE("Machine: ${Machine}")
STRING(REGEX MATCH "i.86" IS_X86 "${Machine}")
STRING(REGEX MATCH "86_64" IS_X86_64 "${Machine}")
STRING(REGEX MATCH "86_64|amd64" IS_X86_64 "${Machine}")
ENDIF(WIN32)

IF(IS_X86)
Expand Down
Loading

0 comments on commit 68e72ba

Please sign in to comment.