From 277f8057e6b44fcae55aba7efc9a63d7d8087c24 Mon Sep 17 00:00:00 2001 From: Werner Schweer Date: Wed, 28 Jun 2006 10:41:13 +0000 Subject: build system & some doku updates --- Makefile | 32 ++++++++++++++++++++++-- muse/CMakeLists.txt | 15 ++++++++--- muse/ChangeLog | 3 +++ muse/README | 71 ++++++++++++++++++++++++++++++++++++++++++----------- muse/SECURITY | 13 ++++++++++ muse/TODO | 13 ++++++++-- 6 files changed, 124 insertions(+), 23 deletions(-) diff --git a/Makefile b/Makefile index 5366d696..091327d7 100755 --- a/Makefile +++ b/Makefile @@ -1,7 +1,22 @@ +#============================================================================= +# MusE +# Linux Music Editor +# $Id:$ # +# Copyright (C) 2002-2006 by Werner Schweer and others # +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2. # +# 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; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +#============================================================================= default: if test ! -d build; \ @@ -10,8 +25,6 @@ default: mkdir build; \ echo "+entering build directory"; \ cd build; \ - # HACK: \ - cp ../muse/all.h . ; \ echo "+calling cmake" ; \ cmake ../muse ; \ else \ @@ -22,13 +35,28 @@ default: make -f Makefile +# +# clean out of source build +# + clean: -rm -rf build +# +# create source distribution +# + dist: cd build; make package_source + mv build/muse-*.tar.gz . + +# +# this creates a shell archive / installer for +# MusE binary +# package: cd build; make package + mv build/muse-*.sh . diff --git a/muse/CMakeLists.txt b/muse/CMakeLists.txt index 2843094e..2a254007 100644 --- a/muse/CMakeLists.txt +++ b/muse/CMakeLists.txt @@ -180,6 +180,13 @@ configure_file ( ${PROJECT_BINARY_DIR}/config.h ) +add_custom_target(all.h + ALL + cp ${PROJECT_SOURCE_DIR}/all.h ${PROJECT_BINARY_DIR}/all.h + DEPENDS ${PROJECT_SOURCE_DIR}/all.h + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + ) + add_custom_target(all-pic.h ALL cp ${PROJECT_SOURCE_DIR}/all.h ${PROJECT_BINARY_DIR}/all-pic.h @@ -218,8 +225,8 @@ add_custom_target(all-pic.h.pch -I${QT_QTCORE_INCLUDE_DIR} -I${QT_QTGUI_INCLUDE_DIR} -o ${PROJECT_BINARY_DIR}/all-pic.h.pch - ${PROJECT_BINARY_DIR}/all-pic.h - DEPENDS ${PROJECT_BINARY_DIR}/all-pic.h + ${PROJECT_SOURCE_DIR}/all.h + DEPENDS ${PROJECT_SOURCE_DIR}/all.h WORKING_DIRECTORY ${PROJECT_BINARY_DIR} ) @@ -234,8 +241,8 @@ add_custom_target(all-pic-debug.h.pch -I${QT_QTCORE_INCLUDE_DIR} -I${QT_QTGUI_INCLUDE_DIR} -o ${PROJECT_BINARY_DIR}/all-pic-debug.h.pch - ${PROJECT_BINARY_DIR}/all-pic-debug.h - DEPENDS ${PROJECT_BINARY_DIR}/all-pic-debug.h + ${PROJECT_SOURCE_DIR}/all.h + DEPENDS ${PROJECT_SOURCE_DIR}/all.h WORKING_DIRECTORY ${PROJECT_BINARY_DIR} ) diff --git a/muse/ChangeLog b/muse/ChangeLog index d1f6b7c4..db5c4bf8 100644 --- a/muse/ChangeLog +++ b/muse/ChangeLog @@ -1,3 +1,6 @@ +28.6. (ws) + * updated README + * small fixes to build system 23.6. (ws) * new project property dialog to edit the project comment 22.6. (ws) diff --git a/muse/README b/muse/README index 3117b592..8eff931b 100644 --- a/muse/README +++ b/muse/README @@ -1,4 +1,3 @@ - ==================================================================== MusE --- Linux Music Editor ==================================================================== @@ -27,7 +26,6 @@ details. - QT: Qt 4.1.0 or above ftp://ftp.trolltech.com/qt/source MusE does _not_ compile with older versions - MAKE SURE YOU SET YOUR 'QTDIR' ENVIRONMENT VARIABLE - ALSA 1.0 or newer http://www.alsa-project.org/ @@ -37,31 +35,74 @@ details. - libsndfile >= 1.0.1 http://www.zip.com.au/~erikd/libsndfile/ + - libsamplerate + - JACK http://jackit.sourceforge.net/download/ + Optional: + - fluidsynth-1.0.3 (formerly known as iiwusynth) from http://savannah.nongnu.org/download/fluid + - DSSI ============================= Compiling: ============================= - download source from http://lmuse.sourceforge.net/ - - uncompress source: - bunzip2 muse-x.x.x.tar.bz2 - - untar source: - tar xvof muse-x.x.x.tar - or if you have a recent tar, you can combine both steps: - tar xvofj muse-x.x.x.tar.bz2 - - - enter dirctory muse-x.x.x: - run "gen" script - - - enter the just build "build" directory and as root run: - make install - to install MusE + + - unpack source: + tar xvofz muse-xyz.tar.gz + + - to compile MusE, run the following commands: + mkdir muse # create build directory + cd muse # enter build directory + cmake ../muse-xyz # create make system + make # compile muse + + - install MusE: + run "make install" + + ============================= + running MusE + ============================= + + MusE is a realtime program which requires special rights to + work poperly. + Recommended setup: + + - check if you are running a sufficiently new linux kernel > 2.6.x + + - create an "audio" group if it does not already exists + and put yourself into this group + + - make sure you can acces the realtime clock (RTC) + chmod 660 /dev/rtc + chgrp audio /dev/rtc + + - make sure MusE cat set the rtc clock: + echo 8192 > /proc/sys/dev/rtc/max-user-freq + inspect with: + cat /proc/sys/dev/rtc/max-user-freq + + - for MusE to gain RT priviledges load the "realtime-lsm" + modul; the modul should be configured to give all "audio" + group members realtime priviledges + + - make sure the alsa sequencer modul is loaded: + /sbin/modprobe snd-seq + (same distros (ubuntu) do not load it by default :-( ) + + - start qjackctl + - start JACK with qjackctl + + - start MusE + + (JACK and all its clients (qjackctl & MusE) must run with the + same user id) + ============================= known bugs diff --git a/muse/SECURITY b/muse/SECURITY index d09e03d9..9daf0171 100644 --- a/muse/SECURITY +++ b/muse/SECURITY @@ -1,3 +1,16 @@ +NOTE: +The following information is outdated. There are now other mechanisms +available to give audio programs the necessary priviledges: + + realtime-lsm kernel modul + or the upcoming + set_rtlimits + +The advice is to use one of this methods and _never_ run any audio program +with root priviledges. + + + MusE Security Information ========================= diff --git a/muse/TODO b/muse/TODO index d4979151..bb37cf1b 100644 --- a/muse/TODO +++ b/muse/TODO @@ -1,9 +1,12 @@ -----------------------------TODO------------------------------------------- -(10.5.2006) + * - done +(28.6.2006) +---------------------------------------------------------------------------- + - check for samplerate when loading project * compute song len in seconds when saving project * save project creation date/time in project - - create dialog to edit project comment + * create dialog to edit project comment BUGS - updating the gui during midi recording is too slow; @@ -14,6 +17,12 @@ BUGS - Do not allow switch track recording on/off during recording + - audio prefetching is not stable + + - looping does not work sample accurate due to jack transport + limitations; looping should be implemented internally to work + around this + FEATURES - wave editor is completely broken -- cgit v1.2.3