LINUX AUDIO STUDIO PROJECTS

written by oc2k1, support: webmaster@djreason.de

 Using the mididrum

The mididrum executable is a command line tool to feed your WAVETABLE! You can assign sounds to your keyboard/e-drum keys/pads.

Targets of the docs:
  • description
  • compatibility of the source
  • Load Sound Banks with mididrum
  • create your own Sound Banks
  • tested programs / known issues

  • http://qjackctl.sourceforge.net/
    You need to setup your midi ports! First start the jack server (you can execute jackd.sh which is in our source ...)
    jackd -R -d alsa -d hw:1 -p 512 -r 48000 -z s
    there should be an output like this:
    jackd 0.121.3
    Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
    jackd comes with ABSOLUTELY NO WARRANTY
    This is free software, and you are welcome to redistribute it
    under certain conditions; see the file COPYING for details
    
    JACK compiled with System V SHM support.
    loading driver ..
    apparent rate = 48000
    creating alsa driver ... hw:1|hw:1|512|2|48000|0|0|nomon|swmeter|-|32bit
    control device hw:1
    configuring for 48000Hz, period = 512 frames (10.7 ms), buffer = 2 periods
    ALSA: final selected sample format for capture: 16bit little-endian
    ALSA: use 2 periods for capture
    ALSA: final selected sample format for playback: 16bit little-endian
    ALSA: use 2 periods for playback
    Noise-shaped dithering at 16 bits
    
    & make sure that you're in the audio group
    You can qjackqtl configure to start jack @ startup -> Misc Section...

    >Use qjackctl to patch your midi resources. Don't forget to push the activate button! Or you can use aconnect from command line ...

    .. is very simple to handle sound bank files/ wave tables (not sf2, but we could make it compatible with that). You can call it Wave Table Connection Plug Tool. It has been written to control studio equiptment.

    Compatibility

    At last You must have a soundcard with wavetable to load and hold samples to your RAM. Even SB (with OPL-3, this is 20 voices) will be supported, but not this AC emulation onBoard stuff without Wavetable support (this stuff only emulates a synth). Remember there are soundcards on market that really have just PCM output. We were happy with SBLIVE! Secondary You must have a joystick port to control extern midi devices like E-drums and Keyboard. So, if you have a CREATIVE with GM support soundcard in your PCI(x) slot you'll never have any trouble with MIDIDRUM. I geuss we don't like programms that have been written in "all in one" style like steinberg and reason do. We start this Projekt to grab your Soundcards I/O and control it with midi events. Mididrum uses the 48000Khz 32-bit float Wave format wich give you high audio quality like DAT tapes, better than CD!.
    Mididrum is using the Jack Deamon Interface to create a midi device on your system so that You can talk to mididrum with your GM/2 compatible programs.

    IMAGINE that JACK doesn't work with Microsoft Windows OS, perhaps in future...

    Command: Load Sound Banks

    The commandline based C Program must be gived an argument in this case it's the path of the soundfont You want to load. You can load sound banks with the following command.
     executable [argument:path] 
    ./mididrum /kitfonts/slingerland_drumkit.mdk
    Basicly the samples are stored in the mididrum_kits folder sorted in different subfolders. Once it was started you may see with aconnect -o the Jack Drum client. It should be possible to connect to midi output "Jack Drum" (write).

    Create your own Drumkit / WAVE TABLE

    You can load all 128 midiports with waves. Think about the concept of your sound banks: Percussions will be handled different to Melodic sound banks. When You have beat instrument you can't play other notes but in brassections this option is really important.

    Example Sound Bank File (../kitfonts/slingerland_drumkit.mdk) You must write gm2 compatible bank file then you can't loose the overview in your sequencer!
     midichannel volume [argument:path] 
    36 1.5 /home/shorty/Desktop/midi/mididrum_kits/slingerland_1/slinger_kick_hard.wav

    Known Issues

    Any programs that are compatible to ALSA with JACKD support will work correctly with Mididrum. Some has been tested positiv with Rosegarden Sequencer.

    The latecy of the MIDIDRUMS is about 0.49 ms. At last your system leads idle ...
    mididrum is written in C, it is about 1 MB without samples. The program (and its dependend programs) was tested in gentoo with kernel 2.6 - 1,5 GB RAM and SBLIVE5.1 (emu10k1).
    If you get an error like this:
    cannot lock down memory for RT thread (Cannot allocate memory)
     
    you have to edit /etc/security/limits.conf with:
    @audio          -       rtprio          99
    @audio          -       nice            -19
    @audio          -       memlock         unlimited
     
    The rights aren't available until you restart your system!

    if you have an error like this
    cannot connect output ports
    

    sfxload is part of the awesfx package.
    useful links
    http://users.suse.com/~mana/alsa090_howto.html