Перейти до вмісту

SuperCollider

Матеріал з Вікіпедії — вільної енциклопедії.
SuperCollider
SuperCollider, запущений у редакторі Gnu Emacs на Gnu/Linux
Типоб'єктно-орієнтована мова програмування
авдіопрограмаd
динамічна мова програмування і audio programming languaged
АвторJames McCartney та інші
Версії3.13.0 (20 лютого 2023)[1]
Платформакросплатформенний
Операційна системаMac OS X, Gnu/Linux, Microsoft Windows
ЛіцензіяGNU GPL версії 3
Репозиторійgithub.com/SuperCollider/SuperCollider
Вебсайтsupercollider.sourceforge.net

SuperCollider — програмне середовище і мова програмування для синтезу і обробки звуку в реальному часі і створення алгоритмічних, інтерактивних музичних та аудіовізуальних композицій[2][3]. SuperCollider є вільним програмним засобом (надається на умовах ліцензії Gnu GPL версії 3) і працює на системах Mac OS X, Gnu/Linux, Microsoft Windows і FreeBSD[4].

Поряд із Max/MSP і PureData, SuperCollider є одним з провідних програмних засобів для синтезу звуку в реальному часі з допомогою алгоритмів[5][6].

SuperCollider складається із двох основних компонентів:

  • scsynth — сервер синтезу і обробки звуку; саме scsynth встановлює з'єднання зі звуковою картою і здійснює обробку сигналу в реальному часі;
  • sclang — інтерпретатор мови програмування SuperCollider; sclang надсилає на сервер команди, які описують процеси синтезу й обробки звуку.

Ці два компоненти спілкуються між собою з допомогою протоколу Open Sound Control. Про тому, сервер може бути запущений як на тому ж комп'ютері, що інтерпретатор, так і на іншому, зокрема віддаленому, комп'ютері. Окрім того, можна керувати одночасно кількома серверами, запущеними на різних комп'ютерах.

Існують також альтернативні інтерпретатори, які використовують іншу мову програмування, але так само працюють зі сервером SuperCollider'а scsynth.

Приклади

[ред. | ред. код]

Генератори звуку

[ред. | ред. код]

Створення синусоїдної хвилі частотою 440 Гц на двох каналах:

 { SinOsc.ar(440).dup }.play; // .dup дублює моно-сигнал на 2 канали

Модулювання частоти сигналу (вібрато на -10...10 Гц від основного тону з частотою 3 Гц):

{
    var vibrato = SinOsc.kr(3, mul: 10);
    SinOsc.ar(440 + vibrato).dup;
}.play;

Амплітудна модуляція у формі пульсації з частотою 4 Гц.

{ SinOsc.ar(80).dup * LFPulse.kr(4) }.play;

Примітки

[ред. | ред. код]
  1. Release 3.13.0 — 2023.
  2. Вебсайт проекту. Архів оригіналу за 14 березня 2011. Процитовано 1 листопада 2013.
  3. Вступне слово до The SuperCollider Book. Архів оригіналу за 16 лютого 2014. Процитовано 1 листопада 2013.
  4. Сторінка завантаження SuperCollider [Архівовано 3 листопада 2013 у Wayback Machine.]. Нижче вказано, що з джерельних кодів можна скомпілювати також на FreeBSD.
  5. David S. Sullivan Jr., Stephan Moore, Ichiro Fujinaga. Realtime Software Synthesis for Psychoacoustic Experiments. — The Peabody Institute of the Johns Hopkins University.
  6. Eric Battenberg, Adrian Freed, & David Wessel. Advances in parallelization of music and audio applications. — The Center for New Music and Audio Technologies and The Parallel Computing Laboratory University of California Berkeley, 2010. — 7 грудня.