SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

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


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.