ambisonictoolkit / atk-sc3

An extension library for the SuperCollider programming language
GNU General Public License v3.0
74 stars 12 forks source link
ambisonics supercollider supercollider-quark

ATK for SuperCollider : Read Me

This is the SuperCollider version of the Ambisonic Toolkit (ATK). It can be used with SuperCollider on OSX, Linux and Windows, and is distributed as a Quark package with sc3-plugins components, and other dependencies.

The Ambisonic Toolkit (ATK) is intended to bring together a number of tools and methods for working with Ambisonic surround sound. The intention is for the toolset to be both ergonomic and comprehensive, providing both classic and novel algorithms to creatively manipulate and synthesise complex Ambisonic soundfields.

Tools are offered in two sets:

The tools are framed for the user to think in terms of the soundfield kernel. By this, it is meant the ATK addresses the holistic problem of creatively controlling a complete soundfield, allowing and encouraging the composer to think beyond the placement of sounds in a sound-space and instead attend to the impression and image of a soundfield. This approach takes advantage of the model the Ambisonic technology presents, and is viewed to be the idiomatic mode for working with the Ambisonic technique.

We hope you enjoy the ATK!

For more information please visit the Ambisonic Toolkit website or send us an e-mail. See also ABCs of the ATK for an overview on working with the ATK for SuperCollider.

 

 

Installing

 

Requirements

ATK for SuperCollider requires version 3.10 or later. Download the latest version here, or fork the source code at GitHub.

 

atk-sc3 Quark

The ATK for SuperCollider's classes, extension methods and documentation are distributed via the atk-sc3 quark. Start by reviewing the Quark installation instructions found here. See also Using Quarks.

With git installed, you can easily install the atk-sc3 Quark directly by running the following line of code in SuperCollider:

Quarks.install("https://github.com/ambisonictoolkit/atk-sc3.git");

If you've previously installed the ATK, you'll want to update all the dependencies to their current versions. The easiest way to do so is via the Quarks GUI:

QuarksGui.new;

sc3-plugins

The ATK's compiled UGen component releases are available from the sc3-plugins releases page.

Place the downloaded SC3plugins folder in your Extensions folder. On Mac OS X, this resolves to:

~/Library/Application Support/SuperCollider/Extensions

You may need to create the Extensions folder if it does not already exist.

On other platforms, you can find where this is by running the following line of code in SuperCollider:

(  
// post the directory in which to move the SC3Plugins folder  
Platform.userExtensionDir.postln;  
)  
(  
// alternatively, SC can open it for you  
// (assuming it already exists! - you may need to create /Extensions)  
Platform.userExtensionDir.openOS;  
)

If you've previously installed the ATK, you'll want to be sure to install the version of sc3-plugins that is compatible with your installed version of SuperCollider.

Kernels, Matrices & Soundfiles

Additionally, the SuperCollider version of the ATK has further dependencies:

Install Kernels, Matrices, and Soundfiles by running the following code:

Atk.downloadKernels;
Atk.downloadMatrices;
Atk.downloadSounds;

If successful, these three dependencies are installed here:

(
// post the kernel, matrix and sounds directories
Atk.userKernelDir.postln;
Atk.userMatrixDir.postln;
Atk.userSoundsDir.postln;
)

 

Source code

You can build the ATK for SuperCollider UGen components from the sc3-plugins source-code.

 

Need Some Sound Files to Play Around With?

You can find a collection of sound files here. (Download as part of installation):

 

Additional sound files can be grabbed from these fine sources:

 

And most of the catalogue of Nimbus Records are UHJ recordings:

 

 

Feedback and Bug Reports

Known issues are logged at GitHub.

If you experience problems or have questions pertaining to the ATK for SuperCollider, please create an issue in the atk-sc3 issue tracker.

Experienced users and the developers are active participants on the SuperCollider Forum. Questions posted here are usually answered fairly quickly.

The archives of the now closed SuperCollider mailing lists (2002 - 20021) may be searched via this page.

If need be, the developers can be contacted directly via this address.

 

List of Changes

Version 5.0.7

Version 5.0.6

Version 5.0.5

Version 5.0.4

Version 5.0.3

Version 5.0.2

Version 5.0.1

Version 5.0.0

Version 4.0.3

Version 4.0.2

Version 4.0.1

Version 4.0.0

Version 3.8.0

Version 3.7.2

Version 3.7.0-beta

Version 3.7.0-alpha0

Version 3.5

A note on the ATK's version numbers: Versioning for the atk-sc3 quark adheres to the familiar system known as Semantic Versioning. In contrast, as part of the sc3-plugins project, the versioning for UGen components is synced to the release numbers assigned to sc3-plugins releases.

As SuperCollider's plugin system continues to develop, we expect to adopt Semantic Versioning for all components when it is possible to do so.

 

 

Credits

 

Copyright the ATK Community, Joseph Anderson, Joshua Parmenter, and Michael McCrea 2011, 2016-22.

 

The development of the ATK for SuperCollider is supported by DXARTS, Center for Digital Arts and Experimental Media.

The filter kernels distributed with the Ambisonic Toolkit are licensed under a Creative Commons Attribution-Share Alike 3.0 Unported (CC BY-SA 3.0) License and are copyright the Ambisonic Toolkit Community and Joseph Anderson, 2011.

Contributors

Version 5.0.7

Version 5.0.6

Version 5.0.3 - 5.0.5

Version 5.0.2

Version 5.0.1

Version 5.0.0

Version 4.0.3

Version 4.0.2

Version 4.0.1

Version 4.0.0

Version 3.8.0

Version 3.7.2

Version 3.7.0-beta

Version 3.7.0-alpha0

Version 3.5

 

 

Third Party Notices

 

Higher Order Matrix Rotation

The algorithm found in HoaMatrixRotation is largely a port of spherical harmonic rotations from Archontis Politis's Spherical-Harmonic-Transform Library for Matlab/Octave.

https://github.com/polarch/Spherical-Harmonic-Transform

Specifically: euler2rotationMatrix.m; getSHrotMtx.m; complex2realSHMtx.m

Politis's code for real SH rotations is a port of Bing Jian's implementations, found here: http://www.mathworks.com/matlabcentral/fileexchange/15377-real-valued-spherical-harmonics

Copyright (c) 2016, Bing Jian Copyright (c) 2015, Archontis Politis All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The technique was originally authored here: Ivanic, J., Ruedenberg, K. (1996). Rotation Matrices for Real Spherical Harmonics. Direct Determination by Recursion. The Journal of Physical Chemistry, 100(15), 6342?6347.

...with corrections:

Ivanic, J., Ruedenberg, K. (1998). Rotation Matrices for Real Spherical Harmonics. Direct Determination by Recursion Page: Additions and Corrections. Journal of Physical Chemistry A, 102(45), 9099-9100.

Diametric Decoder Theorem (DDT) decoding

Support for Gerzon's Diametric Decoder Theorem (DDT) decoding algorithm is derived from Aaron Heller's Octave code available at: http://www.ai.sri.com/ajh/ambisonics/

Benjamin, et al., "Localization in Horizontal-Only Ambisonic Systems" Preprint from AES-121, 10/2006, San Francisco

Implementation in the SuperCollider version of the ATK is by Joseph Anderson.

 

Irregular array decoding

Irregular array decoding coefficients (5.0) are kindly provided by Bruce Wiggins: http://www.brucewiggins.co.uk/

B. Wiggins, "An Investigation into the Real-time Manipulation and Control of Three-dimensional Sound Fields," PhD Thesis, University of Derby, Derby, 2004.

 

CIPIC HRTF Database (University of California)

V. R. Algazi, R. O. Duda, D. M. Thompson, and C. Avendano, "The CIPIC HRTF Database," in Proceedings of the 2001 IEEE ASSP Workshop on Applications of Signal Processing to Audio and Acoustics, New Paltz, NY, 2001.

"The CIPIC HRTF Database - CIPIC International Laboratory." [Online]. Available: http://interface.cipic.ucdavis.edu/sound/hrtf.html. [Accessed: 07-Jul-2011].

CIPIC Notices:

Copyright (c) 2001 The Regents of the University of California. All Rights Reserved

Disclaimer

THE REGENTS OF THE UNIVERSITY OF CALIFORNIA MAKE NO REPRESENTATION OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES OR MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE.

Further, the Regents of the University of California reserve the right to revise this software and/or documentation and to make changes from time to time in the content hereof without obligation of the Regents of the University of California to notify any person of such revision or change.

Use of Materials

The Regents of the University of California hereby grant users permission to reproduce and/or use materials available therein for any purpose- educational, research or commercial. However, each reproduction of any part of the materials must include the copyright notice, if it is present. In addition, as a courtesy, if these materials are used in published research, this use should be acknowledged in the publication. If these materials are used in the development of commercial products, the Regents of the University of California request that written acknowledgment of such use be sent to:

CIPIC- Center for Image Processing and Integrated Computing University of California 1 Shields Avenue Davis, CA 95616-8553

 

Listen HRTF Database (IRCAM)

"LISTEN HRTF DATABASE." [Online]. Available: http://recherche.ircam.fr/equipes/salles/listen/. [Accessed: 07-Jul-2011].

IRCAM Notices:

Copyright (c) 2002 IRCAM (Institut de Recherche et Coordination Acoustique/Musique). All Rights Reserved

Use of Materials

The Listen database is public and available for any use. We would however appreciate an acknowledgment of the database somewhere in the description of your work (e.g. paper) or in your development.

Contacts:

Olivier Warusfel, Room Acoustics Team, IRCAM 1, place Igor Stravinsky 75004 PARIS, France