jazz - a midi sequencer for Linux and M$-Windows

News in this version: look at file CHANGELOG

For latest infos look at http://rokke.grm.hia.no/per/jazz.html
There is a mailing list, send a mail with subject-field containing
	subscribe
to jazz-users-request@hia.no to get on the list. We'd be happy to
receive your bugreports (well, somehow) or success stories.

enjoy,
	Andreas and Per



** Note: The rest of this file is relevant for Unix (Linux) users only.

Introduction
------------

For users equipped with a fully MPU-401 compatible midi interface card
(intelligent mode) we recommend the native jazz MPU-401 driver. Apart from
being well tested, the advantages of this driver are special MPU-401 
features (like external sync) not yet implemented using voxware, and 
TCP communication between the sequencer and the driver.

Users who have other midi-interfaces/sound-cards should use the 
Linux-built-in voxware drivers (MPU-401 may also prefer this solution
for different reasons). Thanks a lot to Hannu for writing all these
excellent drivers, so jazz can talk to nearly every midi card now.

If you don't have any soundcard, jazz can be used as midi editor without
record/play ability.

jazz was developed using wxwin. wxwin is a platform independend GUI
package, available via ftp at skye.aiai.ed.ac.uk (192.41.104.6). The
binary release of jazz (see below) was compiled for XView but it should
be easy to compile a Motif version too. So you need either XView or 
Motif to run jazz. There is also support for the libXt port of wxwin.

A precompiled version (an aout-type statically linked executable) can
be obtained as a separate distribution.

Installation for /dev/sequencer2 (VoxWare)
------------------------------------------

  - The VoxWare version shipped with Kernel 1.2.13 is too old (jazz will
    not work at all) - get voxware 3.0.1 (or higher). Included
    is a patch file (voxware.patch) for voxware 3.0.1 which fixes
      - speed adjustment with UART midi cards using the system timer
      - recording controller/pitch wheel with mpu401
      - sending controller 0 (bank select)

  - copy jazz.cfg as .jazz into your home directory. Edit ~/.jazz and set
      .driver 1
      .device n
    where n is the number of your midi device. Use showdev to find out,
    what devices /dev/sequencer2 found on your soundcard.

    Set the entry
      .softthru 0
    to 1 if you want midi thru emulated by jazz. If you have a
    true mpu401, midi thru is done in hardware (set it to 0), if you
    have a more simple midi card, set it to 1.

  - If you don't use an extern MIDI port, you may have to download
    samples/patches into your soundcard before starting jazz.  Programs
    for this may be found in the packages glib, adagio, playmidi and
    snd-data-0.1.tar.gz and maybe others.


Installation for jazz's mpu401 driver
--------------------------------------

  - you need a kernel with tcp/ip support and NO soundcard support
    installed

  - cd to jazz/drivers/linux. Edit the file mpu.h and set IO-Port and
    IRQ of your midi card. The factory defaults are IOBASE 0x330 and IRQ
    9. Run make and copy the resulting mpu.o to /usr/src/linux/modules
    (or where your modules reside).

  - cd to jazz/midinetd and run make. Copy the resulting midinetd to 
    /usr/local/sbin/.

  - add a line
        midinet 40001/tcp    midinetd
    to your /etc/services and
        midinet stream tcp nowait root /usr/local/sbin/midinetd in.midinetd
    to /etc/inetd.conf.  Send a HUP signal to your
    inetd or reboot, to make changes take effect.

  - load the mpu driver into the kernel with the command
        insmod mpu
    as root. You may want to put this command into your /etc/rc.d/rc.local
    to have everything ready after reboot.

  - copy jazz.cfg as .jazz into your home directory. Edit ~/.jazz and set
      .driver 0
    The .device entry is ignored when using jazz's mpu driver.


Compiling jazz
--------------

  - get wxwin 1.63 (1.65 has problems with linux/xview)
  - edit the Makefiles in . and ./src
  - for native mpu driver edit Makefiles in drivers/linux and midinetd
  - if you dont want support for both drivers edit ./src/config.h
  - edit linux/drivers/mpu.h to set IRQ and IOBASE as described above
  - run 'make depend; make' in the topleveldir, if everything goes right
    run 'make install' as root

