Code Monkey home page Code Monkey logo

node-libpd's Introduction

node-libpd

nodejs wrapper around libpd and portaudio

Tested on MAC OSX 10 and Raspbian Stretch Lite version 9 (raspberry pi 3) - for other platforms, dynamic libraries for libpd and portaudio should probably be built.

Install

npm install [--save] node-libpd

Tests:

# cf. test/index.js
$ npm run test

Notes / Todos

  • pd.clear() to stop background processes
  • find a proper way to organize tests
  • allow to discover available devices and configuration for input and output => (maybe this should be done in a separate module)
  • more generally expose more audio configuration options
  • handle audio in
  • implement array API
  • refactor messaging struct (cf pd_msg_t)
    • use more specialized structs and dynamic_pointer_cast
    • use const and references as in PdReceiver callbacks
  • re-enable addToSearchPath and clearSearchPath
  • stop the whole pd and portaudio instances
  • make init asynchronous to fix the race condition between js and worker threads (initialization can be quite long (> 100ms on mac OSX)). init should return a Promise => current workaround is to block the init method until currentTime != 0
  • move LockedQueue implementation in .cpp file
  • install babel thing to rewrite the index.js in es6
    • would be fancy to have an index.mjs and an index.js
  • add a verbose options to init
  • properly handle errors using : Nan::ThrowError("...");

Resources

libpd usage example (patch + test):

Node/Nan tutorial

libuv book:

Debug with lldb:

License

TBD

node-libpd's People

Contributors

b-ma avatar jaylmiller avatar jipodine avatar

Stargazers

Francis Gillet avatar Kyle Jamison avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.