• Stars
    star
    146
  • Rank 252,719 (Top 5 %)
  • Language
    Java
  • License
    GNU Lesser Genera...
  • Created about 6 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,905
star
2

processing

Source code for the Processing Core and Development Environment (PDE)
Java
6,448
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,385
star
4

p5.js-sound

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

processing-android

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

processing-docs

[Deprecated] Processing reference, examples, tutorials, and website
HTML
371
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-legacy

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

p5.js-video

JavaScript
175
star
11

processing-web-archive

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

processing-sound-archive

Archived Sound Library for Processing
HTML
125
star
13

processing-android-archive

Java
96
star
14

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
15

processing-experimental

Experimental Mode for the PDE
Java
72
star
16

processing-website

Repository for the processing.org website
MDX
68
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-eclipse

Eclipse plugin project for Processing
Java
50
star
21

processing-android-library-template

Processing Android Library Template for Gradle
CSS
33
star
22

p5.sound.js-ARCHIVE

new build of p5.sound.js library
JavaScript
33
star
23

processing-video-android

Processing Video implementation for Android
Java
32
star
24

processing-tool-template

Processing Tool Template for Eclipse
Java
28
star
25

processing-examples

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

p5.js-libraries

TypeScript
21
star
27

processing-pi-website

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

p5.js-website

New p5.js website!
MDX
16
star
29

p5.js-getting-started-es

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

pr05-grant

Documentation related to the Processing Foundation Software Development Grant also known as `pr05`
13
star
31

processing4-javafx

JavaFX library for Processing 4
Java
11
star
32

processing-design-system

Processing
10
star
33

processing-library-template-gradle

Processing Library Template for Gradle and IntelliJ
Java
9
star
34

p5.sound.js

JavaScript
9
star
35

processing-javadocs

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

processing-android-website

Repository of the official Processing for Android website
HTML
7
star
37

processing-forum-archive

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

p5.js-website-translator

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

OSACC-p5.js-Access-Report

6
star
40

p5.js-showcase

JavaScript
6
star
41

p5.js-release

Holds the built, versioned releases of p5.js.
JavaScript
5
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
4
star
43

processing-community-day-website

The website for Processing Community Day
CSS
2
star
44

cardboard-wrapper-sdk

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

processing-library-template

Java
2
star
46

processing-gsoc

1
star
47

processing-doclet

Java
1
star
48

p5.js-example

GLSL
1
star
49

p5.js-offline-reference

JavaScript
1
star