npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sdl-speaker

v0.4.1

Published

Output PCM stream data to speaker with SDL2.

Downloads

28

Readme

node-sdl-speaker

Output PCM stream data to speaker with SDL2. Especially for realtime audio stream.

Build Status NPM

Features

  • Stream Support. You can pipe a pcm stream to audio channel.
  • Multi Channels Support. You can open multi channels, it will mix all channels via SDL_MixAudioFormat.
  • Low Latency.

Installing / Getting started

$ npm install sdl-speaker

Example

const Speaker = require('sdl-speaker');
// Init SDL Speaker.
Speaker.init();

// Register a channel for write buf.
const testChannel = Speaker.register('test');

// pipe a pcm data to stream;
fs.createReadStream('test.pcm').pipe(testChannel);

// When you are ready..
// Start play audio
Speaker.start();

Api Reference

Speaker.init([ option ])

Init SDL. option is optional.

  • channels: Channel count. default: 2.
  • samplesRate: Sample rate for every channel. default: 44100.
  • samplesPerFrame: Samples per frame. default: 1024.

Speaker.start()

Start play audio. Read audio data from a ring buffer. If data in ring buffer less than samplesPerFrame, fill 0.

Speaker.stop()

Close and Destroy SDL player.

Speaker.pause()

Pause SDL player.

Speaker.resume()

Resume SDL player.

Speaker.detach(name)

Detach audio source from SDL.

Speaker.cleanAll()

Clean all audio sources's buffer.

Speaker.register(name) -> audioChannel

Register a audio source for write buffer. The name must unique.

audioChannel.write(buffer)

Write audio buffer to ring buffer. You can write before speaker start.

audioChannel.clean()

Clean this audio source's buffer.

TODO

  • [ ] More Test.
  • [x] Fix Travis-CI build failed.
  • [x] Pipe stream to audioSource.
  • [ ] Customise rbuf capability.
  • [x] Self contained SDL2.