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

simsam - a simple sampleplayer

Free Software under the GNU GPL (see COPYING)

(c) 2002-2004 Christian Henz (chrhenz@gmx.de)

        Just a small app that lets you load audio samples into slots and play 
        them via MIDI. Audio output is implemented using ALSA or JACK, MIDI 
        is implemented using the ALSA sequencer interface. The alsa/jack code 
        was largely taken from M. Nagorni's alsa howto, jack's simple_client.c 
        and the source for alsaplayer.

        Please let me know of any bugs, comments and feature requests you might
        have. Help on code, GUI, docs and packaging is also most welcome.
Warning

This is beta quality software. Use it at your own risk.

See 'Issues' below for known bugs.

Requirements
Runtime
        qt3-mt          http://www.trolltech.no
        alsa-0.9.x      http://www.alsa-project.org
        libjack         http://jackit.sourceforge.net
        libsndfile      http://www.zipworld.com.au/~erikd/libsndfile/
        libsamplerate   http://www.mega-nerd.com/SRC/
Compiling

*-dev packages for all libs above

        make            http://www.gnu.org
        pkg-config      http://freedesktop.org/Software/pkgconfig

Compiling from CVS:

        automake        http://www.gnu.org
        autoconf
Running

usage: simsam [-v][-h][-a output] [file]

-v show version

-h display help (this text)

          -a <output>             select audio output system. Options are
                                  'alsa' (default) and 'jack'

          [file]                  patch file to load

        After starting the program use an ALSA sequencer utility like aconnect
        to connect simsam to your other MIDI applications.

        The JACK outputs connect to alsa_pcm:playback_1 and 2 by default. 
Keymapping
        Select a sample in the listbox and then go to the keymapping Window.
        You can assign a note to the selected sample by pressing the CTRL key
        and clicking on the keyboard in the display. Other methods include 
        using the midi note spinbox, or the learn midi function.

        You can change the range of keys the sample is mapped over by pressing
        the SHIFT key and clicking on the keyboard image. Left button will set 
        the beginning, right button the end of the range. Use the mousewheel to
        scroll the keyboard image to the left(wheel up) and right(wheel down).
        
        When setting a new midi note for a sample, the range is reset to that
        one note.
        
        Also, setting a midi note or range will unmap any samples that are 
        mapped on that note or a note within the range.

Mutltiple Outputs:

        Multiple outputs are currently only available with the JACK output
        module. Trying to create additional outputs while using the ALSA 
        output module will give you an error message.

        To add or remove outputs, select Config/Output in the menu. When
        adding an output, you have to name it. The name has to be unique.

        For the JACK module, simsam will then create a pair of output ports
        called name-L and name-R, where name is the given name.

Config files:

        On start up, simsam tries to load the file 'settings.xml' in the 
        directory '~/.simsam'.

        Settings in this file will overwrite the hardcoded defaults. Afterwards
        the command line gets parsed.

        See the end of this document for an example with all the default 
        values.

        When the audio output gets initialized, simsam look for the file 
        'outputs.xml' in the '~/.simsam' directory. If it is found, simsam
        will create additional outputs as listed in that file. The default
        output 'main' gets created independently from the file.
Issues
  • Still some inconsistencies in the GUI, some bugs with the new instrument/output code, some thread/blocking issues
  • Outputs created in the GUI won't get saved. You have to edit outputs.xml for now.
  • The alsa PCM code doesn't seem to work with the dmix plugin
  • The binary .simsam files from version 0.1.3 and before are no longer supported at all. Please use simsam versions 0.1.4 to 0.1.6 in order to convert them to the new format.
  • The patches rely on absolute paths for the sample files. This means that you cannot easily move them to different machines. Eventually it will be possible to import all files into one directory and use relative paths.
  • autotools support still basic

Example settings.xml:

--8<--------

<settings>
<outputMethod>alsa</outputMethod>
<jackClientName>simsam</jackClientName> <jackLeftConnection>alsa_pcm:playback_1</jackLeftConnection> <jackRightConnection>alsa_pcm:playback_2</jackRightConnection> <alsaPcmDevice>default</alsaPcmDevice> <alsaSeqClientName>simsam</alsaSeqClientName> <alsaSeqPortName>simsam-midi-in</alsaSeqPortName> <alsaBufferLength>1024</alsaBufferLength> <alsaSampleRate>44100</alsaSampleRate> <samplePath>/home/foo</samplePath>
<patchPath>/home/foo</patchPath>
</settings>

--8<--------

Example outputs.xml:

--8<--------

<outputs>
<output>sub</output>
<output>drums</output>
</outputs>

--8<--------


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.