Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/roccomuso/node-aplay
:musical_note: ALSA aplay wrapper for Node.js
https://github.com/roccomuso/node-aplay
alsa aplay audio node raspberry-pi wrapper
Last synced: 7 days ago
JSON representation
:musical_note: ALSA aplay wrapper for Node.js
- Host: GitHub
- URL: https://github.com/roccomuso/node-aplay
- Owner: roccomuso
- Created: 2016-05-13T16:03:29.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2021-06-07T19:02:23.000Z (over 3 years ago)
- Last Synced: 2024-11-01T07:41:04.236Z (14 days ago)
- Topics: alsa, aplay, audio, node, raspberry-pi, wrapper
- Language: JavaScript
- Homepage:
- Size: 7.81 KB
- Stars: 30
- Watchers: 4
- Forks: 9
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# aplay
[![NPM Version](https://img.shields.io/npm/v/aplay.svg)](https://www.npmjs.com/package/aplay) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
> ALSA aplay wrapper for Node.js. It provides basic audio capabilities.
`aplay` works on:
1. any Debian/Ubuntu system providing ALSA support has been installed.
2. MAC OSX (comes with `afplay` by default)ALSA stands for Advanced Linux Sound Architecture. It is a suite of hardware drivers, libraries and utilities which provide audio and MIDI functionality for the Linux operating system.
**aplay is a simple native ALSA wav player** (to reproduce .mp3 see *mpg321*).
## Installation
### Debian/Ubuntu/Raspbian
Get ready.
Before we start the real work, please update the system.sudo apt-get update
sudo apt-get upgradeIf you are running on Raspberry Pi, please update Raspbian
sudo rpi-update
Install ALSA for audio playback
sudo apt-get install alsa-base alsa-utils
### USB Audio on Raspberry Pi
If you are planning on using a USB audio on Raspberry Pi you will need to set your USB audio device as the default device.
Edit /etc/modprobe.d/alsa-base.conf and replaced the line:
options snd-usb-audio index=-2
With the following lines:
options snd-usb-audio index=0 nrpacks=1
options snd-bcm2835 index=-2After a reboot of your Raspberry Pi
aplay -l
Should output the following:
**** List of PLAYBACK Hardware Devices ****
card 0: XXXX [XXXX], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0Your device volume will be set to 0 by default. Use the ALSA mixer to adjust the volume using your arrow keys:
alsamixer
### Example Usage
Get it through npm:
$ npm install aplay --save
and then:
```javascript
var Sound = require('aplay');
// fire and forget:
new Sound().play('/path/to/the/file/filename.wav');// with ability to pause/resume:
var music = new Sound();
music.play('/path/to/the/file/filename.wav');setTimeout(function () {
music.pause(); // pause the music after five seconds
}, 5000);setTimeout(function () {
music.resume(); // and resume it two seconds after pausing
}, 7000);// you can also listen for various callbacks:
music.on('complete', function () {
console.log('Done with playback!');
});```
## Options
The constructor accepts a config object where you can provide:
- `channel`: specify a channel.
### CLI Usage
$ node node_modules/aplay my-song.wav
It's simple as that.