Csound
| Csound | |
|---|---|
| Date de bază
| |
| Anul publicării | 1986 |
| Versiunea actuală | 6.14.0 (27 ianuarie 2020) |
| sistem de operare | GNU / Linux , Mac OS X , Windows , Android |
| limbaj de programare | C. |
| Licență | LGPL |
| Vorbitoare de limbă germană | Nu |
| csound.github.io | |
Csound este un audio - programare . A fost dezvoltat în anii 1980 de Barry Vercoe la Electronic Music Studio al MIT , bazat pe sistemele Music-N ale lui Max Mathews . Prima publicație este din 1986.
Ca limbaj de programare audio, Csound este utilizat atât pentru sinteză (așadar numit și sintetizator software ), cât și pentru procesarea sunetelor, de exemplu folosind filtre , modulație , granulare sau transformare Fourier . În anii ’80 și ’90, Csound a fost utilizat în principal offline pentru a genera fișiere audio; folosit și pentru muzica live în electronică încă din anii 2000 . Semnalele de control necesare pentru aplicații în timp real sunt transmise prin MIDI , Open Sound Control (OSC) sau tastatura computerului.
Compilare și execuție
Scris în limbajul de programare C , Csound gestionează secvența de compilare și execuție. Mai întâi este compilat programul scris în Csound. Dacă compilarea are succes, programul poate fi executat.
Unitățile de bază ale unui program Csound se numesc „instrumente” (notate cu numere sau nume). Odată compilate, acestea pot fi pornite sau oprite în orice moment. În mod tradițional, acest lucru se face folosind o listă de instrucțiuni ("scor" = scor), dar poate fi la fel de ușor de realizat în timp real (prin MIDI , OSC , tastatură), sau generându-l în cadrul programului în sine.
Exemple
Următorul instrument Csound generează un ton sinusoidal de 415 Hz cu -12 dB și îl scrie la ieșire:
instr Sinus ; Beginn einer Instrumenten-Definition (Schlüsselwort 'instr')
aSinus poscil ampdbfs(-12), 415 ; Oszillator 'poscil' mit Argumenten rechts und Ergebnis links
out aSinus ; die Variable 'aSinus' wird als Audio-Signal herausgegeben
endin ; Ende der Instrumenten-Definition (Schlüsselwort 'endin')
În loc de această notație tradițională, deoarece Csound 6 este de asemenea posibil să scrieți funcțional (similar cu Python și alte limbi):
instr Sinus
out(poscil(ampdbfs(-12), 415))
endin
Pentru a apela acest instrument, se folosește de obicei un fișier asemănător XML , care constă din trei secțiuni:
- de opțiunile <CsOptions>, care specifică, de exemplu, dacă un sunet este de dorit în timp real sau un fișier audio trebuie să fie scris
- a instrumentelor <CsInstruments>, adică textul real de program
- scor <CsScore>, adică apelarea instanțe ale instrumentelor definite.
Următorul fișier scrie ieșirea în timp real (opțiunea '-o dac') pe placa audio și apelează instrumentul „Sinus” de două ori:
<CsoundSynthesizer>
<CsOptions>
; Getestet mit: Csound version 6.07 (double samples) Mar 5 2016 unter Debian Linux
-o dac ; Output auf den Digital-to-Analog-Converter schreiben
</CsOptions>
<CsInstruments>
sr = 44100 ; Samplerate 44100 Hz (Signalrate für die Ausgabe)
ksmps = 32 ; Anzahl von Samples in einem Audio-Array (Blockgröße)
nchnls = 1 ; Anzahl der Ausgabekanäle (1 bedeutet Mono, 2 Stereo)
instr Sinus
out(poscil(ampdbfs(-12), 415))
endin
</CsInstruments>
<CsScore>
i "Sinus" 0 2 ; Instrument "Sinus" wird mit Startzeit 0 und Dauer 2 (Sekunden) gerufen
i "Sinus" 3 1 ; Instrument "Sinus" wird mit Startzeit 3 und Dauer 1 gerufen
</CsScore>
</CsoundSynthesizer>
Dacă doriți să activați acest instrument printr-o tastatură MIDI, scorul este eliberat, astfel încât Csound să ruleze după compilare și să aștepte evenimente în timp real. Următorul cod determină amplitudinea și frecvența instrumentului Csound din viteza și numărul tastelor tastaturii MIDI. În plus, se introduce o curbă de plic, astfel încât sunetul să nu producă artefacte (clicuri) la început și la sfârșit:
<CsoundSynthesizer>
<CsOptions>
-o dac ; Live Audio
-M a ; alle MIDI-Geräte benutzen / lesen
--midi-velocity-amp=4 ; Umformung der Velocity in Amplitude und Übergabe als Parameter 4 (p4) an das Instrument
--midi-key-cps=5 ; Umformung der Tasten-Nummer (MIDI Key) in Frequenz und Übergabe als Parameter 5 (p5)
</CsOptions>
<CsInstruments>
instr Sinus
aSinus = poscil(p4, p5) ; Anwendung der MIDI-Werte
out(linenr(aSinus,.1,.5,.01)) ; Hüllkurve mit 0.1 Sekunden Einblende und 0.5 Sekunden Ausblende
endin
</CsInstruments>
<CsScore>
</CsScore>
</CsoundSynthesizer>
Evenimentele în timp real pot fi generate și de la un instrument Csound în sine. În exemplul următor, fiecare instanță numită apelează o nouă instanță a instrumentului „Sinus”, rezultând un lanț interminabil. Generarea independentă a începutului și a duratei are ca rezultat câteva suprapuneri mici și câteva pauze.
<CsoundSynthesizer>
<CsOptions>
-o dac
</CsOptions>
<CsInstruments>
seed 0 ; Zufallszahlen werden bei jedem Durchlauf neu generiert
instr Sinus
aSinus = poscil(ampdbfs(random:i(-30,-6)), cpsoct(random:i(8,10))) ; Lautstärken -30..-6 dB, Tonhöhen Oktave 8..10
out(linen(aSinus,p3/10,p3,p3/2)) ; Ton wird mit Hüllkurve herausgegeben
schedule("Sinus",random:i(1,3),random:i(1,5)) ; neue Instanz wird gerufen (Start 1..3, Dauer 1..5 Sekunden)
endin
schedule("Sinus",0,3) ; erster Aufruf des Instruments, danach Selbstgenerierung
</CsInstruments>
</CsoundSynthesizer>
Capete frontale
Diverse frontend-uri sunt disponibile astăzi pentru a scrie cod Csound, pentru a-l compila, pentru a apela o instanță a Csound și pentru a gestiona evenimente în timp real. Apelarea Csound pe linia de comandă este clasică . Dacă, de exemplu, ultimul exemplu este salvat ca fișier text simplu sub numele „endlos.csd”, acesta poate fi executat într-un terminal pe Linux, Mac sau Windows după cum urmează:
csound endlos.csd
Există, de asemenea, medii de dezvoltare integrate care oferă evidențierea sintaxei și interfețe grafice de utilizator. Cea mai comună este în prezent CsoundQt, dar Varza și Albastrul prezintă, de asemenea, propriile medii pentru alinieri specifice. Pentru Android , Csound este oferit cu o interfață grafică subțire și opțiuni pentru integrarea widgeturilor HTML5 . Există diverse aplicații pentru iOS care utilizează Csound sau care permit redarea programelor Csound.
API oferă cea mai flexibilă integrare a Csound . Csound Engine (în esență, o bibliotecă audio ) este apelat și controlat printr-un limbaj de programare diferit. Există legături pentru C , C ++ , Python , Java (inclusiv Scala și Clojure ), JavaScript , C # , Common Lisp și altele.
Link-uri web
- csound.github.io - site-ul oficial al comunității cu link-uri către descărcări, documentație, fontend-uri etc.
- CsoundQt - front-end grafic dezvoltat în Qt
- Albastru - Mediul de dezvoltare și compoziție bazat pe Java
- Varză - mediu de dezvoltare grafică orientat spre generarea de pluginuri VST
- en.flossmanuals.net - Csound din colecția de manuale FLOSS
- Csound: un limbaj de programare audio bazat pe C - site comunitar vechi cu întrebări frecvente , manuale, exemple de programare și programe suplimentare; momentan nu se mai întreține
- Proiect Csound pe SourceForge .net cu fișiere de descărcare
- Richard Boulanger: The csound TOOTorials (engleză)
- Richard Boulanger: Introducere în proiectarea sunetului în Csound . The Csound Book, Capitolul 1 (engleză)
- Michael Gogins »Descărcări Csound - tutoriale PDF despre CSound și compoziția algoritmică cu CSound și extensia CsoundAC Python
- Tutoriale Csound . Seminar pentru începători, începe cu A Beginning Tutorial de Barry Vercoe , inventatorul Csound
- Jens Groh: Ce este Csound? Introducere în forum pentru muzică experimentală și computere
- Peter Kiethe: Ce este Csound . În: ZeM , ediția nr . 23 , primăvara anului 2000, p. 4 și urm. (Centrul pentru muzică electronică e.V. )
- csconf2011 - Videoclipuri de la prima conferință internațională Csound de la Hanovra, 2011
- csconf2015 - Videoclipuri de la a III-a Conferință internațională Csound de la Sankt Petersburg, 2015
Dovezi individuale
- ↑ Csound 6.14.0 Csound Community
- ^ Richard Boulanger: Cartea Csound. MIT Press, 2000, pp. Xxix.
- ↑ Recompilarea unui instrument în timp ce funcționează Csound este posibilă și din moment ce Csound 6 („Codare live”)
- ↑ CsoundQt. Adus la 1 octombrie 2020 .
- ↑ Acasă | Audio de varză. Adus la 1 octombrie 2020 .
- ↑ albastru - un mediu de compoziție muzicală pentru Csound. Adus la 1 octombrie 2020 .
- ↑ Aplicații ale Csound | Comunitatea Csound. Adus la 1 octombrie 2020 .
- ^ Csound: Pagina principală. Adus la 1 octombrie 2020 .