From 277f8057e6b44fcae55aba7efc9a63d7d8087c24 Mon Sep 17 00:00:00 2001
From: Werner Schweer <ws.seh.de>
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 </code>
-        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 </code>
+
+      - 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