Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Node bindings for PortAudio

branch: master

v0.0.3

latest commit 858bc676fc
Joe Ferner authored
Octocat-spinner-32 src compatibility for node 0.10.x August 12, 2013
Octocat-spinner-32 test added getDeviceList January 18, 2013
Octocat-spinner-32 .gitignore Initial July 16, 2012
Octocat-spinner-32 README.md Update README.md January 18, 2013
Octocat-spinner-32 binding.gyp Initial July 16, 2012
Octocat-spinner-32 package.json v0.0.3 August 12, 2013
Octocat-spinner-32 portAudio.js added getDeviceList January 18, 2013
README.md

portaudio

Node wrapper around PortAudio

Note: This module has not been tested on windows. If you would like to submit a pull request that would be great.

Note: You must install PortAudio libs first.

Example

var portAudio = require('portaudio');

// create a sine wave lookup table
var sampleRate = 44100;
var tableSize = 200;
var buffer = new Buffer(tableSize);
for (var i = 0; i < tableSize; i++) {
  buffer[i] = (Math.sin((i / tableSize) * 3.1415 * 2.0) * 127) + 127;
}

portAudio.getDevices(function(err, devices) {
  console.log(devices);
});

portAudio.open({
  channelCount: 1,
  sampleFormat: portAudio.SampleFormat8Bit,
  sampleRate: sampleRate
}, function (err, pa) {
  // send samples to be played
  for (var i = 0; i < 5 * sampleRate / tableSize; i++) {
    pa.write(buffer);
  }

  // start playing
  pa.start();

  // stop playing 1 second later
  setTimeout(function () {
    pa.stop();
  }, 1 * 1000);
});

Troubleshooting

error: 'PaStreamCallbackFlags' has not been declared

Try installing "libasound-dev" package. See (http://portaudio.com/docs/v19-doxydocs/compile_linux.html). Then try rebuilding.

If that doesn't fix it try building and installing portaudio from source (http://www.portaudio.com/download.html). I've compiled node-portaudio with pa_stable_v19_20111121.tgz and was successful on Ubunutu.

No Default Device Found

Ensure that when you compile portaudio that the configure scripts says "ALSA" yes.

Something went wrong with that request. Please try again.