This is AMUC - the Amsterdam Music Composer, version 1.4 Last updated: jan 1, 2007
Compiling
Should pose no problems on any Linux system, as only X-Windows functions
are used, and no GUI toolkits. However, development libraries should have
been installed. This is the default case for e.g. Fedora Core. For
Ubuntu this could be accomplished by:
sudo aptitude install build-essential
sudo aptitude install libasound2-dev
sudo aptitude install libx11-dev
sudo aptitude install libusb-dev
If the libraries are okay then go to directory src and type: ./configure
This very basic configure script only tests if the library and include files for ALSA and libusb are present on your system. If libusb does not work that's no problem, only in this case a USB MIDI keyboard cannot be connected.
Now type:
make libs
make
Located in the src directory is a tune called 'dance'. After successful
compilation you can try it:
./amuc dance.scr
To hear the tune, click the 'play' button at the right.
If you start the app with option -h, you'll get a short usage message.
Notice that if something was modified in directories src-abcm2ps or src-soundtouch, then you can run 'make' in those directories, or you can run 'make libs' in the src directory.
Install
To install Amuc, type (as root):
make install
This will copy:
to /usr/local/bin:
amuc,
to /usr/share/amuc:
wave files (for the sampled instruments),
monosynth-patches (patches for the mono synthesizers)
chords-and-scales (for the 'chords' window)
Demo's
In the tunes directory there are some more demo's:
rising.sco, rising.scr - a small piece, full of dissonants lazy.sco, lazy.scr - another piece, featuring sampled percussion
floating.sco, floating.scr - featuring portando how-synth.sco, how-synth.scr - featuring mono synthesizers org-concerto.sco, org-concerto.scr - first part of Haendel's organ concerto opus 4, nr 4
The following C++ files form the program.
src/amuc.cpp - the main program src/str.cpp - general string handling src/x-widgets.cpp - the gui components src/sound.cpp - everything to create sound src/dump-wav.cpp - WAVE file creation src/midi-out.cpp - MIDI file creation src/read-wav.cpp - read wave files for sampled instruments src/alsa-interface.cpp - interface to the ALSA sound drivers src/midi-keyb.cpp - interface for USB MIDI keyboard src/midi-in.cpp - to read MIDI files src/chords.cpp - the chords window The following files are GPL'ed: physical-mod.cpp - physical models for sampled instruments src-abcm2ps/*.cpp - files for lib abc2ps.a and program abcm2ps src-soundtouch/*.cpp - files for lib libSoundTouch.a mono-synth.cpp - mono synthesizer
Documentation
The doc directory cantains a manual, file amuc-man.html.
Postscript output
Beautiful traditional scores can be printed from generated postscript files. Also output in ABC format is provided, which can be edited if needed, and translated to postscript by abcm2ps (in directory src-abcm2ps). Abcm2ps is a C++ port from a clever program (version abcm2ps-3.7.21) made by Michael Methfessel. Information about ABC notation can be found at:
http://staffweb.cms.gre.ac.uk/~c.walshaw/abc/
Default settings for abcm2ps are set in file: src-abcm2ps/format.cpp.
Connecting a USB MIDI keyboard
The only supported keyboard by now is an M-AUDIO KEYSTATION 49e, which is an affordable 49-key MIDI controller with a USB interface. The VendorID and ProductID are 2637 and 144 respectively. Amuc's USB driver scans the USB bus until a device is found from which bulk transfer is possible.
The driver uses libusb, which is a user-space program that usually is included in modern Linux distro's. You also can get it from http://libusb.sourceforge.net
If a USB device is connected, then several kernel modules might get inserted. These must be detached by the program, which alas only is possible when Amuc is run as root. (Preventing modules loading automatically using /etc/hotplug/blacklist does not work)
The midi keyboard must be switched on before Amuc is started. Disconnecting and reconnecting the keyboard is best done by the checkbox 'connect MIDI keyboard', not by switching the keyboard on and off.
If you have a different keyboard, then you could start Amuc from a terminal with option -mm. In this case the contents of MIDI messages will be reported. Then, if you're lucky, it should be possible to modify the code and numbers in file midi-keyb.cpp, and recompile.
Good luck.
Wouter Boeke
w.boeke@chello.nl
Modification history.
NB! This app is updated now and then (to add a feature or to remove a bug),
but doesn't get a new version number each time.
Version 1.4 - jan 2007
- Chords and scales display
- Score files from Amuc versions older the aug 2005 no longer supported.
- Default values for abcm2ps built-in, default.fmt will not be installed in /usr/share/amuc
- Multiple notes better supported.
Version 1.3 - dec 2006
- Better looks.
- Better support for sampled sounds.
- OSS support cancelled.
- Configuration files moved from /usr/local/share/amuc to /usr/share/amuc.
- Exact timing.
- FM instruments: subband modulation cancelled, modulation-modulation added.
- Improved sampled instruments: choice of wave files, pitch- and/or time shift.
- Midi: programmable mapping to midi instruments.
- Improved usb midi keyboard input.
- MIDI input
- The note amplitude now can be controlled between 0 and 9 (was: 0 and 6). You can adept all your score files by running the following bash script: for FILE in `ls *.sco` do sed 's/a6/a9/g;s/a5/a8/g;s/a4/a7/g;s/a3/a6/g;s/a2/a5/g;s/a1/a4/g' $FILE > tmp mv tmp $FILE done This script increases the amplitude value of each note with 3.
- Scripts: keyword ps-out is replaced by out-par, which now specifies all parameters used for postscript- and MIDI output.
- Midi output: GM format type 1 (was: 0)
- Piano-roll score display.
Version 1.2 - jan 2006
- Mono synthesizers: F2_... format, 4th field, not 2 but 3 numbers.
- Reverb for green instrument.
- Internal sample frequency from 22050 to 44100 Hz: better high-pitched tones.
- A score can have a meter different from the default value.
- Purple instrument: reverb removed, choice between different sounds added.
- Configure script now contains a runtime check.
- Scripts: 'set' parametyer 'eq:' works also for synthesizers.
Version 1.1 - sept 2005
- Postscript output (by integrated abcm2ps program)
- Soundcard released when not playing
- Multi-colored notes entry
- Physical models for sampled instruments (with option -sf, WAVE files are read instead)
- No separate window for zoomed score panel
Version 1.01 - may 2005
- Automatic 'set' commands in scripts
- MIDI keyboard interface
- Better stereo sound
- Stereo WAVE output
- Copy from one score to another
Version 1.0 - april 2005
- First release
