2008/05/13

The Labs.Com Sound Lab Raw Sound Studio
Last update 2001/05/24
The Labs - Design & Functionality For The Net

$MyVersion: 1.007 - Thu May 13 16:49:51 EDT 1999 - kiwi$

THE MOST RECENT VERSION OF THIS DOCUMENT YOU FIND HERE.

  1. Introduction
  2. File Format
  3. Programs
  4. Download
  5. Applications
  6. Sample Usage
  7. Resources
Raw Sound Studio
1. Introduction
RawSoundStudio a small Linux sound-package handling sound-play/recording and few simple mechanism to analyze the content. For the sake of simplicity a new (yes, sorry) format was created called .rss (raw-sound-studio), it's very straight forward and very simple to parse with C or Perl.

Raw Sound Studio
2. File Format

The format is following:
  • Lines with '#' at the beginning are comments
  • The first non-comment line describes the format, all argument on one line:
    1. 'signed' or 'unsigned'
    2. speed (int) [samples per second]
    3. bits (int) [8, 16]
    4. stereo (int) [0 or 1]

 # A line starting with '#' is an comment and is ignored 
 signed 22025 16 0 
 <binary data follows ...> 

Raw Sound Studio
3. Programs

Following programs are available:
  • rsrecord - record sound-file in a certain quality
  • rsplay - play sound-file

  • rscut - cut pieces out of sound-file
  • rscat - cat multiple sound-file(s) into one
  • rsstrip - write raw audio data
  • rsdump - dump audio in data
  • rsecho - apply echo
  • rspitch - apply pitch shift
  • rstora - convert to real-audio
  • rsfft - dump fft of sound-file

  • rsview - display sound-file (average & fft)
    PerlTK script
Call each program with option -help, ie. rsrecord -help:

rsrecord: [-speed speed] [-stereo 0|1] [-bits bits] [-signed] [-unsigned] [-interactive] [-time mins]

Raw Sound Studio
4. Download

raw-sound-studio.tar.gz (read README)

Supported platforms: FreeBSD, Linux

To install run

 make; make install 

it compiles and copies all binaries into /usr/local/bin/

Raw Sound Studio
5. Applications

Unless otherwise noted all applications accept '-' as input-file which means stdin, and give the output over stdout. This allows you to cascade a stream of sound through several applications.

RsRecord
 rsrecord: [-speed speed] [-stereo 0|1] -bits bits
[-signed] [-unsigned] [-time mins] [filename]
speed in Hz (ie. 22050), stereo (0 or 1), bits (8, 16), default is 'signed' if filename is obmitted then the recording goes to file dump.rss, default is 22050Hz, 16 bits, stereo on

RsPlay
 rsplay: [-start start] [-end end] sound-file ...
start and end are in milliseconds, so 10,000 are 10 secs

RsCut
 rscut: [-start start] [-end end] sound-file ...
start and end are in milliseconds, so 10,000 are 10 secs

RsCat
 rscat: sound-file1 sound-file2 ...

RsDump
 rsdump: [-start start] [-end end] [-avg avg] sound-file ...
start and end are in milliseconds, so 10,000 are 10 secs,
avg are in milliseconds too, it builds the average (magnitude) over that period of time, normalized to 1.

RsEcho
 rsecho: sound-file delay amplification
delay in ms, amplification 0-1. (usuable value is .6)

RsPitch
 rspitch: sound-file pitchshift
pitch-shift 0.1-2. (usuable values are .8 ... 1.25)

RsView
 rsview: [-start start] [-end end] [-avg avg] [-fft] sound-file ...
start and end are in milliseconds, so 10,000 are 10 secs
avg are in milliseconds too, it builds the average (magnitude) over that period of time, normalized to 1.

rsview is a PerlTK-script, it uses rsdump and rsfft internally.

 % rsview -start 25000 -end 40000 english-0.rss 

 % rsview -fft -start 25000 -end 40000 english-0.rss 

 % rsview -fft -start 29100 -end 29100 english-0.rss 

RsToRA
 rstora: [-quality 0-7] [-title title] [-author author] [-copy copyright] file.rss

Converting rss-files to name.rm (not via stdout) realaudio files (highly compressed).

Requires raencoder which you can download from Progressive Networks: Real.Com, look in area of content-creation tools.

Note: rstora requires the same disk-space on the /tmp/ as the file you like to convert, for long audio this can be hundreds' of mega-bytes. We tried to pipe raw data to raencoder, but the resulting realaudio-file was broken all the times, writing the data into a file first and calling then raencoder works fine. At a later time when raencoder is fixed rstora won't use any additional disk-space just for converting but only as much as the resulting realaudio-file itself.

RsFFT
 rsfft: [-start start] [-end end] sound-file ... > fft.list
start and end are in milliseconds, so 10,000 are 10 secs

RstoMP3
 rstomp3: file.rss
converts file.rss to file.mp3

Download MP3 Encoder and compile it, install it and don't forget to setenv MPEGTABLES to the right directory. Then rename encoder to mp3encoder and copy it into /usr/local/bin (or alike dir), then rstomp3 is usable (it's a simple csh-script), it uses /tmp/ to create raw-file for mp3encoder.

MP3toRs
 mp3tors: sound-file
Converts .mp3 to .rss (stdout)

Download MPG123 (MPEG Layer 1,2,3 decoder) and install it, then run mp3tors

Raw Sound Studio
6. Sample Usage

Record audio from live-input for an hour in CD-quality:

 rsrecord -time 60 -stereo 1 -speed 44100 live.rss 

Cut out a sample of 10 secs at position 0:45:

 rscut -start 45000 -end 55000 live.rss > cut.rss 

Apply double echo:

 rsecho sample.rss 10 .5 | rseffect - 200 .6 | rsplay - 

Convert raw sound-file to .rss:

 echo "signed 16 44100 1" | cat - sound.raw > sound.rss 

Convert MP3:

 mp3tors art-of-noise.mp3 > art-of-noise.rss 

Raw Sound Studio
7. Resources

Sound Lab
Resource listing
Audio Programing
Collection of links
Audio Effects Explained
Description of common audio effects
Audio Format Overview
Usefule file-format FAQ
4Front: Audio API
Audio-lib for LINUX

                                                                                                                                   

MP3 Lab Sound LabSoundArt

Last update 2001/05/24

All Rights Reserved - (C) 1997 - 2008 by The Labs.Com

Top of Page

The Labs.Com