]> git.sesse.net Git - audiosync/blob - README
Add a README.
[audiosync] / README
1 Random assorted programs to sync multiple audio streams. Very useful when you
2 have two sound cards each capable of recording eight channels each, but they're
3 not in sync, since real-life oscillators are non-ideal.  (I'm sure this is a
4 really common use case.) Using a sync channel (yes, that means you're "wasting"
5 one channel on each card) it can "stretch" the channels using a phase-locked
6 loop (PLL) so they are reasonably in sync all the time. (It won't neccessarily
7 help you getting the _start_ right, but once you've lined the recordings up
8 they will _stay_ lined up and not drift apart.)
9
10 VERY UNPOLISHED. Needed them once, probably will never again.
11
12 Basically, the tools are, in semi-logical order:
13
14   - gen-random-skew: Generate semi-random skew; used for testing only.
15
16   - gen-sine SAMPLES FREQUENCY: Generate a FREQUENCY Hz sine running
17     for SAMPLES samples. Not generally used anymore.
18
19   - gen-square SAMPLES FREQUENCY: The same, only with a square wave.
20     This will be your sync channel; output it from one of the sound
21     cards (if you can) or from an external machine. You'll need the
22     sync signal on one channel of each card. Don't worry about clipping,
23     it's all just max/min anyhow.
24
25   - estimate-skew REFSYNC INPSYNC SKEW: Compare the sync channel from
26     REFSYNC with that from INPSYNC and output the estimated skew (or
27     rather, recommended normalized resampling frequency) to SKEW.
28
29   - do-skew INPUT SKEW OUTPUT: Take sound data from INPUT, resample it
30     using the information from SKEW (usually from estimate-skew) and
31     write it to OUTPUT.
32
33 Copyright 2006 Steinar H. Gunderson <sgunderson@bigfoot.com>. Licensed under
34 the GNU General Public License, version 2.
35