diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2013-05-03 21:08:42 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2013-05-03 21:08:42 +0400 |
commit | 1058def8e7827e56ce4a70afb4aeacb5dc44148f (patch) | |
tree | 4495d23e7b54ab5700e3839081e797c1eafe0db9 /lib/libOSSlib/Readme | |
download | oss4-upstream.tar.gz |
Imported Upstream version 4.2-build2006upstream/4.2-build2006upstream
Diffstat (limited to 'lib/libOSSlib/Readme')
-rw-r--r-- | lib/libOSSlib/Readme | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/lib/libOSSlib/Readme b/lib/libOSSlib/Readme new file mode 100644 index 0000000..b975b78 --- /dev/null +++ b/lib/libOSSlib/Readme @@ -0,0 +1,120 @@ +About OSSlib +============ + +This version of OSSlib which supports patch caching for cards like GUS, OPL3 +and SoftOSS. This part of the library is only used by some older synthesizer +chips that are no longer available. Also the SoftOSS virtual synth is +compatible with it. + +Another part is the midiparser library. It's a simple callback based +system that translates a stream of MIDI bytes (for example from MIDI +keyboard) to events. + +This library is compatible with all OSS implementations including the freeware +implementations. + +Copying conditions +------------------ + +This library can be freely used in ANY applications that is compatible +with the OSS API. No parts of the code can be borroved to other purposes +without written permission by 4Front Technologies. + +Installing OSSlib +----------------- + +Execute make. If your operating system is recognized you will get +libOSSlib.so or libOSSlib.a depending on operating system. +If make complains about unknown operating system you should use +make libOSSlib.so or make libOSSlib.a to build it. + +Finally copy libOSSlib.* to /usr/lib + +Using OSSlib in programs +------------------------ + +OSSlib is intended to be used in programs using /dev/music but +it also works with /dev/sequencer too. This version of the library +contains only some basic patch caching functions to be used with +OPL3 and GUS (and SoftOSS as well). Support for other cards is still +missing. + +There are steps to be done when using OSSlib in a program: + +1) Change Makefile to use -DOSSLIB and -lOSSlib + +Version 3.8 of <sys/soundcard.h> has been designed to be compatible +with OSSlib when this OSSLIB is defined. You can also use +#ifdef OSSLIB in programs to cover the minor differences between +the OSSlib and non OSSlib versions. + +2) If the program defines segbuf_dump() routine, put it inside +#ifndef OSSLIB/#endif pair. This routine is included in OSSlib +and having the same routine inside the program conflicts with it. + +3) Add the following call to the program after /dev/music is opened. + +#ifdef OSSLIB + OSS_init(seqfd, 1024); +#endif + +In the above seqfd is the file descriptor of /dev/music and 1024 +is the size of the local buffer used for output events (1024 is +a good value). + +4) Add patch caching calls to the program. Patch caching should +be called as early as possible. It's recommended to load all +_required_ patches before starting the actual playback since +loading large patches from disk may introduce significant delays +to playback. + +There are two macros (in soundcard.h) to be used when loading +instruments: + +SEQ_LOAD_GMINSTR(dev#, instr#) loads an instrument (melodic) patch. +The first parameter is the synthesizer/device number (0 to N) and +the second parameter is the General MIDI instrument number (0 to 127). +Note that the numbering starts from #0 while many GM instrument +tables start from #1. + +SEQ_LOAD_GMDRUM(dev#, drum#) is similar than the above but it loads +an General MIDI percussive instrument. + +5) After the above steps your program is ready to start playing. + +Examples for using OSSlib and for playing MIDI data can be found +in ../mplay/* and ../gustest/midithru.c + +GUS support in OSSlib +--------------------- + +You will need the full GM patch set distributed with the Ultrasound +drivers for DOS. The default location where the library tries to +find the patches is /dos/ultrasnd/midi but you can change it by +editing guslib.c (the second line). Alternative patch sets +(such as midia) are available from the net. Another source is the MIDIA +library. + +Since non PnP GUS has only 1M of +RAM (at most) it's not possible to load the full patch set. When playing +lot of MIDI files in sequence it's possible that the menory becomes +full if the program doesn't reset the samples between files. + +OPL3 support in OSSlib +---------------------- + +OSSlib supports patch loading to OPL3 FM synth cards (older OPL2 cards +are not supported). The patch set is included in the std.o3 and drums.o3 +files distributed with this package. These files should be copied to /etc +(will be done by "make install"). These patch files are the same ones +included in Adagio/glib package by Greg Lee. They are also distributed +with playmidi. + +Using OSSlib with SoftOSS +------------------------- + +For instructions about using OSSLib with SoftOSS see the instructions +for GUS (above). + + +For more info about using OSSlib contact hannu@opensound.com |