Early builds of the new Processing Sound library available for testing

Hello,

as part of Google Summer of Code I’m currently doing a from-scratch rewrite of the Processing Sound library based on a Java sound synthesis engine, which should improve support for platforms such as Android and Raspberry Pi. The project has now progressed enough that I’m putting the first complete builds out to the public to test. If you’ve had troubles with the current Sound library, you might want to give this one a shot!

I’ll put weekly-ish test releases up at this URL for the rest of the summer, but eventually the new library will simply replace the one currently available for download from Processing’s Library menu: https://github.com/kevinstadler/processing-sound/releases/

You can find a summary and known issues below, if you run into any other issues, please feel free to report them here or over on the Github issues page.

Best!
Kevin

Features

  • this rewrite reimplements the API of the original Sound library, which means that any sketches written to use the old library should be able to run near-identically with the new one. The Sound library function reference is still available on the Processing website.

  • the new library also adds some new functions for convenience, such as an isPlaying() method that can be called on all sound sources (including SoundFiles). To see the full set of available methods, check the current javadoc: https://kevinstadler.github.io/processing-sound/docs/

  • updated examples with improved documentation

Known issues

  • MP3 decoding is very slow on ARM processors (Android/Raspberry Pi). We generally recommend using lossless WAV or AIF samples. All samples are loaded once and kept in-memory, so don’t go too wild with very long sample files.

  • the Reverb effect is still being tinkered with (the “room size” and damping parameters in particular are not very responsive at the moment)

3 Likes

The latest beta release of the library is from 2018-08-07, available here: https://github.com/kevinstadler/processing-sound/releases/tag/20180807 installation instructions can also be found over there.

What’s new?

  • the FFT artefact bug is finally fixed

  • improved documentation and added examples for allocating, reading, setting and manipulating of audio sample buffers using the new AudioSample class (see the corresponding JavaDoc). The pre-existing SoundFile class for loading+playing sound files from disk is a subclass of AudioSample.

  • controls for setting of hardware parameters such as the input or output device to use for capture and playback have been moved to a dedicated new class called Sound (see the corresponding JavaDoc).

1 Like

This is good news! Is there going to be some new step-by step tutorials? There seems to be more demand for sketch examples with sound on this forum, since most tutorials i have seen on youtube for instance are just a demonstration of the sketch output.

Hello,

We weren’t planning on adding any new step-by-step tutorials, but I’ve been reworking and cleaning up the short examples found in the Processing Library reference as well as the more elaborate example sketches that are included with the library, which we hope to be straightforward even for newcomers. Do you feel like there should be some more explicit guided instructions on how to get started with the library somewhere else on the website?

Best!

Hi Kevin, thank you for your time doing the rewrite and congrats on having your work adopted into the Processing Sound library.

And just to help those who follow so they don’t have to play click-the-link, as Kevin states on his GitHub page:
" **This library has been adopted as version 2. of Processing’s default Sound library as of August 2018, and the codebase has been transferred over to The Processing Foundation’s official stable repository location at https://github.com/processing/processing-sound, where the code is actively maintained and where all bugs should be reported. The present repository with full commit logs remains as a read-only record of the work done by me as part of Google Summer of Code 2018.***" :+1:

1 Like