baudio

generate audio streams with functions

  • Owner: substack/baudio
  • Platform:
  • License:: Other
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

baudio

generate audio streams with functions

oscilloscope

videos

the science and mathematics of music

making algorithmic music with baudio

example

var baudio = require('baudio');

var n = 0;
var b = baudio(function (t) {
    var x = Math.sin(t * 262 + Math.sin(n));
    n += Math.sin(t);
    return x;
});
b.play();

methods

var baudio = require('baudio')

var b = baudio(opts={}, fn)

Return a readable stream of raw audio data based on the function fn(t,i).

fn(t,i) is given the time in seconds t and the step counter i.
fn(t,i) should return an amplitude value between -1 and 1, inclusive. Values
outside that range will be clipped.

The opts.rate is the rate of the output stream in Hz, default 44000.

b.play(opts)

Play the audio demo with the play command.

You can also call b.pipe() to handle the output stream yourself.

opts are passed directly through to sox.

b.record(file, opts)

Save the audio stream to file using the
sox command.

You can also call b.pipe() to handle the output stream yourself.

opts are passed directly through to sox.

usage

usage: baudio FILE {-o OUTFILE} OPTIONS

  Play a javascript music FILE. FILE should export a method signature of:

    return function (t) {
        return Math.sin(2 * Math.PI * t * 441);
    };
  
  where the return value is between -1 and 1, inclusive. Values outside of the
  domain -1 through 1 will be clipped.
  
  If -o is given, output will be written to OUTFILE instead. OUTFILE can be any
  media file that sox supports for output: .mp3, .wav, .ogg, whatever.
  
  You can also use "-" for -o to write to stdout.

  Extra OPTIONS include:

    -d, --duration   How long the song should play as a human-parseable string.

    -t, --offset     Jump to this time offset as a human-parseable string.

    -f, --fade       Length of a trailing fade as a human-parseable string.
 
    -r, --rate       Bitrate to use. Default: 44k.
 
  Example usage:

    Play a song:

      baudio beepboop.js

    Play a song for 30 seconds:

      baudio beepboop.js -d 30s

    Record 3 minutes of audio to beepboop.mp3 starting at 20 seconds:

      baudio beepboop.js -d 3m -t 20s -o beepboop.mp3

install

With npm, to get the library do:

npm install baudio

and to get the command, do:

npm install -g baudio

license

MIT

Main metrics

Overview
Name With Ownersubstack/baudio
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 1)
Platform
License:Other
所有者活动
Created At2012-08-16 10:07:45
Pushed At2020-03-28 05:20:51
Last Commit At2020-03-27 19:20:30
Release Count20
Last Release Name2.1.4 (Posted on 2020-03-27 19:20:30)
First Release Name0.0.0 (Posted on 2012-08-16 04:22:29)
用户参与
Stargazers Count551
Watchers Count23
Fork Count52
Commits Count68
Has Issues Enabled
Issues Count19
Issue Open Count8
Pull Requests Count0
Pull Requests Open Count6
Pull Requests Close Count3
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private