summaryrefslogtreecommitdiff
path: root/doc/octave.html
diff options
context:
space:
mode:
authorLorry <lorry@roadtrain.codethink.co.uk>2012-07-18 20:35:05 +0100
committerLorry <lorry@roadtrain.codethink.co.uk>2012-07-18 20:35:05 +0100
commitaceb1f30497619786f1827e4c65992b890a07410 (patch)
treece33ac9d0d076a8ec4f993e614cf71a4d5daa7e7 /doc/octave.html
downloadlibsndfile-aceb1f30497619786f1827e4c65992b890a07410.tar.gz
Tarball conversion
Diffstat (limited to 'doc/octave.html')
-rw-r--r--doc/octave.html118
1 files changed, 118 insertions, 0 deletions
diff --git a/doc/octave.html b/doc/octave.html
new file mode 100644
index 0000000..525b7ae
--- /dev/null
+++ b/doc/octave.html
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+
+<HEAD>
+ <TITLE>
+ libsndfile and GNU Octave
+ </TITLE>
+ <META NAME="Author" CONTENT="Erik de Castro Lopo (erikd AT mega-nerd DOT com)">
+ <LINK REL="stylesheet" HREF="libsndfile.css" TYPE="text/css" MEDIA="all">
+ <LINK REL="stylesheet" HREF="print.css" TYPE="text/css" MEDIA="print">
+</HEAD>
+
+<BODY>
+
+<BR>
+<H1><B>libsndfile and GNU Octave</B></H1>
+<P>
+ <A HREF="http://www.octave.org/">GNU Octave</A> is a high-level interactive
+ language for numerical computations.
+ There are currently two development streams, a stable 2.0.X series and a
+ development 2.1.X series.
+ Octave reads and writes data in binary formats that were originally developed
+ for
+ <A HREF="http://www.mathworks.com/">MATLAB</A>.
+ Version 2.0.X of Octave uses binary data files compatible with MATLAB
+ version 4.2 while Octave 2.1.X uses binary data files compatible
+ with MATLAB version 5.0 as well as being able to read the older MATLAB 4.2
+ format.
+</P>
+<P>
+ From version 1.0.1 of libsndfile onwards, libsndfile has the ability of reading
+ and writing a small subset of the binary data files used by both versions
+ of GNU Octave.
+ This gives people using GNU Octave for audio based work an easy method of
+ moving audio data between GNU Octave and other programs which use libsndfile.
+</P>
+<P>
+ For instance it is now possible to do the following:
+</P>
+
+ <UL>
+ <LI> Load a WAV file into a sound file editor such as
+ <A HREF="http://www.metadecks.org/software/sweep/">Sweep</A>.
+ <LI> Save it as a MAT4 file.
+ <LI> Load the data into Octave for manipulation.
+ <LI> Save the modified data.
+ <LI> Reload it in Sweep.
+ </UL>
+<P>
+ Another example would be using the MAT4 or MAT5 file formats as a format which
+ can be easily loaded into Octave for viewing/analyzing as well as a format
+ which can be played with command line players such as the one included with
+ libsndfile.
+</P>
+
+<H2><B>Details</B></H2>
+<P>
+ Octave, like most programming languages, uses variables to store data, and
+ Octave variables can contain both arrays and matrices.
+ It is also able to store one or more of these variables in a file.
+ When reading Octave files, libsndfile expects a file to contain two
+ variables and their associated data.
+ The first variable should contain a variable holding the file sample rate
+ while the second variable contains the audio data.
+</P>
+<P>
+ For example, to generate a sine wave and store it as a binary file which
+ is compatible with libsndfile, do the following:
+</P>
+<PRE>
+ octave:1 > samplerate = 44100 ;
+ octave:2 > wavedata = sin ((0:1023)*2*pi/1024) ;
+ octave:3 > save sine.mat samplerate wavedata
+</PRE>
+
+<P>
+ The process of reading and writing files compatible with libsndfile can be
+ made easier by use of two Octave script files :
+</P>
+<PRE>
+ octave:4 > [data fs] = sndfile_load ("sine.mat") ;
+ octave:5 > sndfile_save ("sine2.mat", data, fs) ;
+</PRE>
+<P>
+ In addition, libsndfile contains a command line program which which is able
+ to play the correct types of Octave files.
+ Using this command line player <B>sndfile-play</B> and a third Octave script
+ file allows Octave data to be played from within Octave on any of the platforms
+ which <B>sndfile-play</B> supports (at the moment: Linux, MacOS X, Solaris and
+ Win32).
+</P>
+<PRE>
+ octave:6 > sndfile_play (data, fs) ;
+</PRE>
+<P>
+ These three Octave scripts are installed automatically in Octave's site
+ script directory when libsndfile is installed (except on Win32) ie when
+ libsndfile is being installed into /usr/local, the Octave scripts will
+ be installed in /usr/local/share/octave/site/m/.
+</P>
+
+<P>
+ There are some other Octave scripts for audio to be found
+ <A HREF="http://octave.sourceforge.net/index/audio.html">here</A>.
+</P>
+
+<BR>
+<!-- ========================================================================= -->
+
+<HR>
+<P>
+ The libsndfile home page is here :
+ <A HREF="http://www.mega-nerd.com/libsndfile/">
+ http://www.mega-nerd.com/libsndfile/</A>.
+</P>
+
+</BODY>
+</HTML>