Кіріспе
Csound – аудио бағдарламалауға арналған арнайы компьютерлік бағдарламалау тілі. Ол Csound деп аталады, себебі ол C тілінде жазылған, ал оның кейбір алдыңғы нұсқаларынан өзгеше. Бұл ашық кодты бағдарламалық қамтамасы, LGPL 2.1 немесе одан кейінгі лицензия бойынша қолжетімді. Csound 1985 жылы MIT-де Барри Верко жасаған, ол Music 11 деп аталатын алдыңғы жүйесіне негізделген, ал ол өз кезегінде Max Mathews Bell Labs-те бастаған MUSIC N үлгісін ұстанған. Оның дамуы 1990 және 2000 жылдары жалғасты, оны Бат университетінің профессоры Джон Фитч басқарды. 5 нұсқасының алғашқы құжатталған шығарылымы 2006 жылдың 18 наурызында 5.01 нұсқасы болды. Көптеген бағдарламашылар оған үлес қосты, олардың ішінде Иштван Варга, Габриэль Малдонадо, Робин Уиттл, Ричард Карпен, Иан МакКерди, Майкл Гогинс, Мэтт Ингаллс, Стивен И, Ричард Булангер, Виктор Лазаррини және Жоахим Хайнц есімдерін атауға болады. Көп жылдар бойы дамып келген Csound қазіргі таңда 1700 бірлік генераторға ие. Оның ең маңызды артықшылықтары – толық модульділік және пайдаланушылармен кеңейтілу мүмкіндігі. Csound MPEG 4, SAOL-ға арналған Құрылымдық аудио кеңейтулерінің негізгі тілімен тығыз байланысты.
Csound is a domain specific computer programming language for audio programming. It is called Csound because it is written in C, as opposed to some of its predecessors. It is free software, available under the LGPL 2.1 or later. Csound was originally written at MIT by Barry Vercoe in 1985, based on his earlier system called Music 11, which in its turn followed the MUSIC N model initiated by Max Mathews at the Bell Labs. Its development continued throughout
the 1990s and 2000s, led by John Fitch at the University of Bath. The first documented version 5 release is version 5.01 on March 18, 2006. Many developers have contributed to it, most notably Istvan Varga, Gabriel Maldonado, Robin Whittle, Richard Karpen, Iain McCurdy, Michael Gogins, Matt Ingalls, Steven Yi, Richard Boulanger, Victor Lazzarini and Joachim Heintz. Developed over many years, it currently has nearly 1700 unit generators. One of its greatest strengths is that it is completely modular and extensible by the user. Csound is closely related to the underlying language for the Structured Audio extensions to MPEG 4, SAOL.
Cсоунд 5
5.01 нұсқасы 2006 жылдың 18 наурызында, csound-тың алғашқы нұсқасы жарық көргеннен кейін 20 жыл өткен соң шығарылды. Csound 5 бинарлық және бастапқы код түрінде Linux, Microsoft Windows және Mac OS X жүйелері үшін SourceForge Csound жобасы арқылы қолжетімді. Бұл нұсқа түпнұсқа бағдарламалық қамтамасымен салыстырғанда күрт жақсартылып, кеңейтілді, API бар бағдарламалық кітапханаға айналды. Оның үшін түрлі интерфейстер әзірленді. Негізгі C API-дан өзге, Python, Java, Lisp, Tcl және C++ сияқты бірнеше байланыстар бар, сондай-ақ Haskell тілінен Csound-ты функционалдық ортадан басқаруға мүмкіндік беретін байланыс та бар. Плагиндерді пайдалану Csound кодына өзгерістер енгізбей, қосымша мүмкіндіктерді қосуға мүмкіндік береді, себебі пайдаланушылар өздері анықтаған опкодтарды бастапқы тілдің кеңейтімдері ретінде жазуға болады. LADSPA және DSSI қолдау көрсетіледі, бірақ VST қолдауы жойылды. 1990 жылдары MIDI арқылы нақты уақыт режимінде жұмыс істеу мүмкіндігі қосылды. Сонымен қатар, FLTK виджеттеріне (слайдерлер, тұтқалар және т.б. графикалық интерфейс элементтері) қолдау көрсетілді, бұл нақты уақыт аудиосын басқаруға және Python тілінде жазылған графикалық интерфейстерді интеграциялауға мүмкіндік берді.
C дыбысы 6
Csound 6 2011 жылы Ганноверде өткен Csound конференциясында мүмкіндіктері жоспарланғаннан бері әзірленуде. Csound 6 2013 жылдың шілдесінде жарияланды және қазір GitHub-та қолжетімді. Csound 6 Android үшін де қолжетімді. Csound 6-ның маңызды жаңа мүмкіндіктері:
Csound тілі үшін bison/flex негізіндегі анализатор енді стандартты. Ол Csound API арқылы қолжетімді абстрактілі синтаксис ағашын (abstract syntax tree) құрайды. Бұл ағашты API-ді пайдаланып Csound орындалу ортасына компиляциялауға болады. Сондықтан, ағаш компиляцияланғаннан кейін, оны Csound орындалу ортасына компиляциялау алдында пайдаланушы кодымен өңдеуге болады. Сондай-ақ, пайдаланушы басқа тілден толық абстрактілі синтаксис ағашын құрастырып, содан кейін оны Csound орындалу ортасына компиляциялай алады. Жаңа көп өлшемді массив типі енгізілді. Массивтерді аспаптар мен опкодтарға жіберуге болады. Массивтерде тікелей арифметикалық амалдар орындалуы мүмкін. Csound тілінде пайдаланушы анықтаған типтерді қолдануға мүмкіндік беретін жаңа типтік жүйе бар. Оркестр кез келген уақытта, ал жеке аспаптар орындалу барысында кез келген уақытта қайта компиляциялануы мүмкін. Бұл Csound орындауларында нағыз "тікелей кодтауды" (live coding) мүмкін етеді. Csound API ұйымдастырылып, қарапайымдастырылды. Csound орындалу кезінде бір мезгілде өңдеу үшін кез келген сандағы процессорды пайдалана алады. Бұл Csound кодына ешқандай өзгеріс енгізбей орындалады. Бұл Csound өңдеудің көп бөлігін айтарлықтай жылдамдатады. Мысалы, 1 ядрода 100 секундта рендерленетін шығарма 4 ядрода шамамен 50 секундта рендерленуі керек. Csound оркестрлер мен ноталарды тікелей мәтін жолдарынан компиляциялай алады, бұл Csound-ты файлдық жүйеге жазуға рұқсат етілмейтін ортада пайдалануға мүмкіндік береді. Ноттар сияқты ноталық оқиғаларды үлгінің нақты уақытында жоспарлауға болады, тіпті синтез үлгілер блогымен өңделген жағдайда да. Бір мәнді қайтаратын барлық опкодтар оркестр тілінде функция ретінде қолданылуы мүмкін. Аудио талдау файл форматтары байт ретіне тәуелсіз болуы мүмкін. Бір ноталық оператор бірнеше жол параметрін қамтуы мүмкін. Көптеген осциллятор опкодтары кесте нөмірі көрсетілмесе, ішкі синус функциясы кестесін пайдаланады. Командалық жол опцияларын Csound API арқылы бағдарламалық түрде орнатуға болады. Csound ішіндегі көптеген қайталама кодтар ұйымдастырылды. Csound 6 қолданбасын әзірлеуге Джон Фич, Стивен И және Виктор Лазаррини жетекшілік етті.
Тірі орындау үшін Csound
Қазіргі уақытта тек Csound ұпайы немесе нота оқиғаларын ғана нақты уақытта жасауға болады (инструменттерден айырмасы, олар тек компиляция кезінде анықталады, Csound алғаш іске қосылғанда; Csound 6-да бұл шектеу жойылды). Дыбыс процессорлары жиынтығы жүктеу кезінде анықталып, құрастырылады, бірақ жеке өңдеу объектілерін нақты уақытта жасауға немесе жоюға болады, кіріс аудиосы нақты уақытта өңделеді, ал шығыс та нақты уақытта жасалады. Нота оқиғаларын аспап мысалында OSC байланысы арқылы, MIDI арқылы немесе stdin-ге енгізуге болады (терминалға теріп немесе басқа бағдарламадан мәтіндік командаларды жіберіп). Csound 5-ті тікелей орындау құралы ретінде пайдалану үшінші тараптың әртүрлі бағдарламалық қамтамасымен толықтырылуы мүмкін. CsoundQt-дегі Live Event Sheet нақты уақытта ұпайды өзгерту үшін қолданылуы мүмкін. Сонымен қатар, Csound-ті скрипттеу үшін басқа бағдарламалау тілдеріне интерфейстерді пайдалануға болады. 2012 жылғы Linux Audio Conference-те Csound-ті Qt немесе Pure Data-мен нақты уақыт музыкалық синтез үшін пайдалану туралы мақала ұсынылды. Ounk жобасы Python-ды Csound-пен интеграциялауға тырысады, ал CsoundAC Python-нан Csound-ті бэкенд ретінде пайдалану арқылы алгоритмдік композиция жасауға мүмкіндік береді. Audivation-ның Csound for Live пакеті әртүрлі опкодтарды Ableton Live-те пайдалануға ыңғайлы Max/MSP орамасына біріктіреді. Csound мобильді жүйелер үшін де қолжетімді (iOS, Android).
Бір балаға бір ноутбук (OLPC)
Csound5 OLPC жобасының XO 1 ноутбук платформасындағы аудио/музыканы дамыту жүйесі ретінде таңдалды.