hybridgroup/cylon-audio

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Cylon.js For Audio

Cylon.js (http://cylonjs.com) is a JavaScript framework for robotics, physical computing, and the Internet of Things.

This repository contains the Cylon adaptor for Audio playback. The implementation uses the [node-mpg123](https://github.com/maciek134/node-mpg123) node module from [@maciek134](https://github.com/maciek134/). Thank you!

Want to use Ruby on robots? Check out our sister project Artoo (http://artoo.io)

Want to use the Go programming language to power your robots? Check out our sister project Gobot (http://gobot.io).

[![Build Status](https://secure.travis-ci.org/hybridgroup/cylon-audio.png?branch=master)](http://travis-ci.org/hybridgroup/cylon-audio) [![Code Climate](https://codeclimate.com/github/hybridgroup/cylon-audio/badges/gpa.svg)](https://codeclimate.com/github/hybridgroup/cylon-audio) [![Test Coverage](https://codeclimate.com/github/hybridgroup/cylon-audio/badges/coverage.svg)](https://codeclimate.com/github/hybridgroup/cylon-audio)

## How to Install

Install the module with:

    $ npm install cylon cylon-audio

### Prerequisites for OSX

    $ brew install mpg123    

### Prerequisites for Ubuntu

    $ sudo apt-get install mpg123

### Prerequisites for Windows

Download and install the latest release for Windows from http://www.mpg123.de/download/win32/?V=1&O=D

### Special instructions for Intel Edison

You need to install the various dependencies before you can install cylon-audio on your Intel Edison. First, make sure you have updated to the very latest Edison firmware.

Then, add these lines to your `/etc/opkg/base-feeds.conf` file:

```
src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison
src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
```

And then run:

```
opkg update
opkg install mpg123
```

## How to Use

Using the cylon-audio module is pretty easy, pretty much just install the npm module and you are good to go, use it as you would any other device passing along the audio you wish to reproduce. To play audio, pass a full or relative path to the `play` function.  See the example below for further details.

```javascript
"use strict";

var Cylon = require("cylon");

Cylon.robot({
  connections: {
    audio: { adaptor: "audio" }
  },

  devices: {
    sound: { driver: "audio", file: "./audio_samples/audio-sample.mp3" }
  },

  work: function(my) {
    my.sound.play();
  }
}).start();
```

## Documentation

We're busy adding documentation to our web site at http://cylonjs.com/ please check there as we continue to work on Cylon.js

Thank you!

## Contributing

For our contribution guidelines, please go to [https://github.com/hybridgroup/cylon/blob/master/CONTRIBUTING.md](https://github.com/hybridgroup/cylon/blob/master/CONTRIBUTING.md).

## Release History

For the release history, please go to [https://github.com/hybridgroup/cylon-audio/blob/master/RELEASES.md](https://github.com/hybridgroup/cylon-audio/blob/master/RELEASES.md).

## License

Copyright (c) 2014-2016 The Hybrid Group. Licensed under the Apache 2.0 license.