audacia/lib-src/sbsms
2012-04-16 18:26:48 +00:00
..
build These editor temporary files should never have been under version control 2010-02-11 16:43:15 +00:00
include TimeScale effect improvements, updating to sbsms 2, not including GUI changes (except removing obsolete transient sharpening option). See Bug 485. 2012-04-16 18:26:48 +00:00
m4 Revert r11214 (sbsms timescale effect update) & r11215 (mixed-radix-fft narrow/broaden spectrum menu items) to honor the feature freeze. 2011-07-06 09:49:59 +00:00
src TimeScale effect improvements, updating to sbsms 2, not including GUI changes (except removing obsolete transient sharpening option). See Bug 485. 2012-04-16 18:26:48 +00:00
win SBSMS library/effect changes. Apparently resolves bug #170. Incorporated optimizations with minor quality changes. Returned optimization flags to build (introduced in a patch). The audacity SBSMS branch is now a trimmed down version without associated programs. Includes (untested) changes to the windows .vcproj. 2010-06-07 06:41:32 +00:00
AUTHORS Move library tree where it belongs 2010-01-24 09:19:39 +00:00
bootstrap Move library tree where it belongs 2010-01-24 09:19:39 +00:00
ChangeLog TimeScale effect improvements, updating to sbsms 2, not including GUI changes (except removing obsolete transient sharpening option). See Bug 485. 2012-04-16 18:26:48 +00:00
config.guess Move library tree where it belongs 2010-01-24 09:19:39 +00:00
config.sub Move library tree where it belongs 2010-01-24 09:19:39 +00:00
configure TimeScale effect improvements, updating to sbsms 2, not including GUI changes (except removing obsolete transient sharpening option). See Bug 485. 2012-04-16 18:26:48 +00:00
configure.in TimeScale effect improvements, updating to sbsms 2, not including GUI changes (except removing obsolete transient sharpening option). See Bug 485. 2012-04-16 18:26:48 +00:00
COPYING Move library tree where it belongs 2010-01-24 09:19:39 +00:00
depcomp Move library tree where it belongs 2010-01-24 09:19:39 +00:00
dont-mangle-cflags.patch Move library tree where it belongs 2010-01-24 09:19:39 +00:00
INSTALL Move library tree where it belongs 2010-01-24 09:19:39 +00:00
install-sh Move library tree where it belongs 2010-01-24 09:19:39 +00:00
libsbsms.spec.in Move library tree where it belongs 2010-01-24 09:19:39 +00:00
ltmain.sh Move library tree where it belongs 2010-01-24 09:19:39 +00:00
Makefile.am Move library tree where it belongs 2010-01-24 09:19:39 +00:00
Makefile.in TimeScale effect improvements, updating to sbsms 2, not including GUI changes (except removing obsolete transient sharpening option). See Bug 485. 2012-04-16 18:26:48 +00:00
missing Move library tree where it belongs 2010-01-24 09:19:39 +00:00
mkinstalldirs Move library tree where it belongs 2010-01-24 09:19:39 +00:00
NEWS Move library tree where it belongs 2010-01-24 09:19:39 +00:00
README Move library tree where it belongs 2010-01-24 09:19:39 +00:00
sbsms.pc.in Move library tree where it belongs 2010-01-24 09:19:39 +00:00
stamp-h1 Move library tree where it belongs 2010-01-24 09:19:39 +00:00
TODO Move library tree where it belongs 2010-01-24 09:19:39 +00:00

Content
=======

libsbsms is a library for high quality time and pitch scale modification.  It uses octave subband sinusoidal modeling.

sbsms has optional support for libsndfile(--enable-sndfile) and libmad(--enable-mp3) for reading(.wav and .mp3) and writing(.wav) files, and optional support for portaudio for playing .sbsms format files(--enable-portaudio) with sbsmsplay.

The API is found in sbsms.h.  sbsms_create is called and supplied a callback which feeds sbsms_process samples.  The pitch_create and pitch_process functions are called only if pitch shifting is required.  It simply sticks a resampler on the end of the FIFO.  

A program called sbsms is included.  It reads PCM files such as .wav and .aif (and .mp3 files if --enable-mp3), and writes .wav files using libsndfile.  The usage is:
sbsms infile outfile rate-start rate-end halfsteps-start halfsteps-end <quality>

For example:
sbsms blob.wav blobOut.wav .5 .5 0 2 
will slow down blob.wav by a factor of 2, while simultaneously sliding the pitch up two half-steps, and put the output in blobOut.wav

Without sndfile support, the sbsms program will read text files in the format:
%g %g\n
...
and write output in the same format.

sbsms can also write .sbsms format files:
sbsms blob.wav blob.sbsms 1 1 0 0

which can be quickly rendered into .wav files at a new rate/pitch:
sbsms blob.sbsms blobOut.wav .5 .5 0 2

or played in realtime with sbsmsplay (if --enable-portaudio):
sbsmsplay blob.sbsms .5 .5 0 2

NOTE:
When reading the output from sbsms, you must determine a stopping condition for yourself, as the library zero pads the output ad infinitum and never returns 0 samples.  The simplest method for doing so is found in test.cpp.
  
Clayton Otey (otey@users.sourceforge.net)

Requirements
============

  POSIX systems (e.g. Linux, OS X):
  ---------------------------------

  You need at least to have libtool installed to be able to build the
  library with "./configure && make".

Compiling
=========

  Call './configure && make' on the console to compile the library, all
  tools and demo applications, documentation and install them with
  'make install'. The latter has to be called as root.

  If you are compiling from CVS you have to call 'make -f Makefile.cvs'
  to generate all autotools build files before calling
  './configure && make'.

  You can use 'make distclean' and probably 'make -f Makefile.cvs clean'
  to clean up everything again. The latter will also delete all automatic
  generated autools build files.