• Stars
    star
    138
  • Rank 255,228 (Top 6 %)
  • Language
    Java
  • License
    GNU Lesser Genera...
  • Created over 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Audio library for Processing built with JSyn

Processing Sound library

Release License Documentation Javadoc

The new Sound library for Processing provides a simple way to work with audio. It can play, analyze, and synthesize sound. The library comes with a collection of oscillators for basic wave forms, a variety of noise generators, and effects and filters to alter sound files and other generated sounds. The syntax is minimal to make it easy for beginners who want a straightforward way to add some sound to their Processing sketches!

How to use

The easiest way to install the Sound library is through Processing's Contribution Manager. The library comes with many example sketches, the full online reference can be found here.

If you have questions or problems using the library, the best place for help is the Processing Discourse. Bugs can be reported on the Github issues page, advanced users can also have a look at the library's full JavaDoc documentation.

For detailed changelogs, have a look at the Github releases page.

Playing back sound files

Audio files loaded with the SoundFile class are fully loaded into raw memory. That means your sketch will require ~20MB of RAM per minute of stereo audio.

  • if you get OutOfMemoryError: Java heap space errors on resource-lean platforms (e.g. Raspberry Pi), make sure to increase the heap size in Processing's File > Preferences > Running menu. As a rough rule, your heap size should be at least twice as much as the largest audio sample used in your sketch.
  • depending on the format and length of the audio files, loading them for the first time with sf = new SoundFile("yourfilename.ext") might block the sketch for several seconds, while subsequent calls to sf.play() execute instantly. It is generally advisable to create all SoundFile objects in your setup().
  • decoding of compressed formats (mp3, ogg, etc) can be quite slow on Raspberry Pi (20 seconds for a 3 minute mp3, 14 seconds for ogg on a Raspberry Pi 3B 32bit). Since all audio samples loaded by the library end up being stored as raw uncompressed data in RAM anyway, we generally recommend using WAV format for loading audio files

Multi-channel audio interface support

The newest release of the Sound library adds support for multi-channel audio output. Most audio interfaces should work out of the box, for sake of completeness we have assembled a list of devices that have been tested to be working (for the devices marked with *, see below). If you have troubles getting any audio interface to be recognized correctly, please report them in this Github issue.

  • Focusrite Scarlett 2i4
  • Motu Mk5 *
  • Presonus Studio 26c
  • Roland Rubix24
  • RME Fireface 802 *
    • output is through the 30 channel device, not the 8 channel device
    • on Windows, select a Buffer Size of 512 samples or less in the Fireface USB Settings

Devices marked with a * work out of the box on MacOS, on Windows they are recognized but show up as several stereo devices, rather than one multi-channel device. To be able to use them as one multi-channel devices, you will need to install ASIO drivers and add an explicit call to MultiChannel.usePortAudio() at the beginning of your sketch.

Contributing

Pull requests for bug fixes as well as new features and example sketches are always welcome! Check CONTRIBUTING.md for help on how to get started.

Thanks to the following community members for their contributions:

License

LGPL v2.1

More Repositories

1

p5.js

p5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. http://twitter.com/p5xjs โ€”
JavaScript
20,599
star
2

processing

Source code for the Processing Core and Development Environment (PDE)
Java
6,437
star
3

p5.js-web-editor

The p5.js Editor is a website for creating p5.js sketches, with a focus on making coding accessible and inclusive for artists, designers, educators, beginners, and anyone else! You can create, share, or remix p5.js sketches without needing to download or configure anything.
JavaScript
1,246
star
4

p5.js-sound

p5.sound brings the Processing approach to Web Audio and p5.js. Demos:
JavaScript
857
star
5

processing-android

Processing mode and core library to create Android apps with Processing
Java
765
star
6

processing-docs

[Deprecated] Processing reference, examples, tutorials, and website
HTML
370
star
7

p5.js-editor

Deprecated desktop editor for p5.js
JavaScript
337
star
8

processing-video

GStreamer-based video library for Processing
Java
272
star
9

p5.js-website

p5.js website built using Node.js, Grunt, YAML and Assemble
JavaScript
238
star
10

p5.js-video

JavaScript
175
star
11

processing-library-template

Processing Library Template for Eclipse
CSS
136
star
12

processing-web-archive

Repository for the Processing.org web site, examples, reference, and dreams
HTML
128
star
13

processing-sound-archive

Archived Sound Library for Processing
HTML
125
star
14

processing-android-archive

Java
96
star
15

p5.accessibility

p5.accessibility.js makes the p5 canvas more accessible to people who are blind and visually impaired. It can be used with any p5.js sketch and it is used in the p5.js web editor.
JavaScript
74
star
16

processing-experimental

Experimental Mode for the PDE
Java
72
star
17

processing-templates

Library, Mode, and Tool templates
Java
60
star
18

p5.js-website-OLD

The website for p5.js.
JavaScript
60
star
19

Processing-Hour-Of-Code

Repository for an interactive one-hour Processing tutorial.
JavaScript
56
star
20

processing-website

Repository for processing.org
MDX
54
star
21

processing-eclipse

Eclipse plugin project for Processing
Java
50
star
22

processing-android-library-template

Processing Android Library Template for Gradle
CSS
32
star
23

processing-tool-template

Processing Tool Template for Eclipse
Java
27
star
24

p5.sound.js

new build of p5.sound.js library
JavaScript
26
star
25

processing-examples

Example files for "processing4" and "processing-website"
Processing
17
star
26

processing-pi-website

Files for the pi.processing.org subdomain that documents Processing on the Raspberry Pi
CSS
16
star
27

p5.js-getting-started-es

Spanish translation of Getting Started with p5.js
HTML
14
star
28

processing-design-system

Processing
10
star
29

processing4-javafx

JavaFX library for Processing 4
Java
10
star
30

processing-javadocs

I am testing the idea of using github pages for javadocs
HTML
7
star
31

p5.js-website-translator

Experimental web app to facilitate the p5.js website translation.
Vue
7
star
32

processing-forum-archive

Bugs and details about the Processing Forum: http://forum.processing.org
7
star
33

OSACC-p5.js-Access-Report

6
star
34

processing-library-template-gradle

Processing Library Template for Gradle and IntelliJ
Java
6
star
35

p5.js-showcase

JavaScript
6
star
36

p5.js-release

Holds the built, versioned releases of p5.js.
JavaScript
5
star
37

processing-community-day-website

The website for Processing Community Day
CSS
2
star
38

cardboard-wrapper-sdk

Wrapper Library for Google's Cardboard sdk for VR
C++
2
star
39

processing-gsoc

1
star
40

processing-doclet

Java
1
star
41

p5.js-example

GLSL
1
star
42

Processing-Foundation-GSoC

This repository is a central hub for all resources, project ideas, and guidelines related to the Google Summer of Code (GSoC) program at the Processing Foundation
1
star