Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/madskjeldgaard/stereodecoders
Easy to use stereo decoders for High Order Ambisonics in SuperCollider
https://github.com/madskjeldgaard/stereodecoders
Last synced: about 1 month ago
JSON representation
Easy to use stereo decoders for High Order Ambisonics in SuperCollider
- Host: GitHub
- URL: https://github.com/madskjeldgaard/stereodecoders
- Owner: madskjeldgaard
- License: gpl-3.0
- Created: 2021-10-13T08:27:49.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-09-26T10:01:45.000Z (almost 2 years ago)
- Last Synced: 2024-02-15T02:32:08.623Z (5 months ago)
- Language: SuperCollider
- Homepage:
- Size: 18.6 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Lists
- awesome-supercollider - StereoDecoders - Persistent and easy to use stereo decoders for the ATK. (Quarks and extensions / Immersive audio)
README
# Stereo decoders for high order ambisonics
This repository contains easy to use stereo decoders for high order ambisonics using [the ambisonic toolkit for SuperCollider](https://www.ambisonictoolkit.net/) that are automatically set up as persistent main effects on the main outputs of SuperCollider. They are respawned when the user hard stops the sound.
This quark depends on the ambisonic toolkit and requires a full installation of it. See [these instructions](https://github.com/ambisonictoolkit/atk-sc3#installing) for more information.
It also depends on [persistentmainfx](https://github.com/madskjeldgaard/persistentmainfx) which is installed automatically by the quark system.
## Installation
Open up SuperCollider and evaluate the following line of code:
`Quarks.install("https://github.com/madskjeldgaard/stereodecoders")`## Example usage
```supercollider
// Setup decoder
(
~order = ~order ? 3;
StereoDecoderUHJ.new(hoaOrder: ~order);// Alternative method:
/*
StereoDecoderVirtualMics.new(
hoaOrder: ~order,
angle: 130,
pattern: 0.5 // 0 = omni, 0.5 = cardio, (3-sqrt(3))/2 = super-cardio, 0.75 = Hyper cardio, 1.0 = bi directional
);
*/)
// Inspect the node tree to see that it is in fact in action:
s.plotTree// Play some high order ambisonics sound
(
// White Noise going round
Ndef(\hoa_testorientation, {|amp=0.125, freq=100, rotFreq=1, ele=0|
// var sig = LFTri.ar(freq)*amp;
var sig = WhiteNoise.ar(amp);
var azi = LFSaw.kr(rotFreq, mul: pi);sig = HoaEncodeDirection.ar(
sig,
azi,
ele,
AtkHoa.refRadius,
~order
);}).play
)// Bypass the decoder to output raw ambisonics
StereoDecoderUHJ.set(\bypass, 1);
```