題:
SuperCollider時代之後是否有音樂編程語言?
Nathaniel
2016-08-07 09:05:56 UTC
view on stackexchange narkive permalink

音樂和聲音合成語言的歷史可以追溯到1950年代的 N種音樂。您可以從那裡追溯線程到90年代開發的多種語言,包括 CSound ChucK SuperCollider。 CSound可以看作是“傳統”音樂N語言的最後一種,它主要專注於聲音合成,而ChucK和SuperCollider也添加了靈活的合成工具。 (還有各種各樣的圖形點擊語言,例如 Max MSP PureData,它們也源自Music N範例,但我只對出於這個問題,基於文本的語言。)

SuperCollider一直是我的首選工具。它提供了各種各樣的操作碼(低級信號處理模塊),並提供了多種方式將它們實時修補在一起,通過算法觸發事件以及對外部信號進行交互響應。技術的發展。第一個版本於1996年發布,第3版於2002年開源。儘管自那時以來有了新功能,語言和綜合系統的核心保持不變,並針對00年代早期的機器進行了優化。特別是,它已明確設置在單處理器範例中,並且儘管已添加了對多個CPU內核的支持,卻無法利用現代GPU提供的並行性。如果現在重新設計,則其體系結構的某些功能可能會重新考慮。 (一個例子是需要將綜合服務器作為獨立於該語言本身的獨立應用程序來運行,這使得採樣精確的計時非常難以實現。)

所以我想知道SuperCollider及其後代的繼任者是否已經存在或即將出現,是否超出了上面列出的工具所能實現的範圍。 GPU並行性的可能性似乎是巨大的,並且自2002年以來編程語言設計也有所進步,這可能會導致更強大,更靈活的工具。特別是,虛擬機現在幾乎可以與裸C代碼一樣高效,這意味著DSP代碼可以及時編譯,從而消除了堅持使用一組預先編程的操作碼的限制。

有人知道這方面的任何發展或研究嗎?在長時間忙於其他事情之後,我開始重新開始音樂創作和DSP編程,擁有一個令人興奮的新工具來學習,其功能超出了我的使用能力,這真是太棒了之前。如上所述,我是在談論用於DSP編程和算法組合的基於文本的語言,而不是基於視覺補丁的系統。使用2000年代初期尚不可用的新技術,專注於最先進的合成技術。 (但是列出其他類型的程序包的答案也很有用。)

Supernova是多CPU綜合服務器,並且已合併到主要代碼庫中。
@PeterT的嗎?從網站上根本看不出來,即使查看更改日誌也是如此。它在哪裡記錄,如何使用?
在主頁上,scsynth功能下的要點:`使用超新星服務器實現的多處理器支持。我仍然沒有真正使用過它,不確定它是默認服務器還是可能需要調整配置。然後是將節點排列為p組的問題。
值得一提的是sc 3.7是相當新的,應該針對現代CPU體系結構進行優化。我同意gpu可能很有趣,延遲可能存在一些問題。我不知道任何可以廣泛使用gpu的類似SuperCollider的環境。也許我應該將其添加到我的答案中。
-1
如果您正在尋找性能,將很難擊敗Haskell的多核優化工具(即嘗試[Tidal](https://tidalcycles.org/))。
您可能已經知道@Nathaniel https://soul.dev/,我認為它與您想要的東西非常接近。也許不是“準備黃金時間”,而是值得一看的。
您應該將@PeterT發佈為答案!我沒有意識到,這正是我一直在尋找的東西。
@PeterT的快速評估:有點冗長,但是使用它的API在Python中構建更易於訪問的,類似於SuperCollider的前端將非常容易,所以很棒。但是,它不是完全開源的,並且FAQ表示:“最終,我們計劃通過許可後端驅動程序和其他IP來商業化SOUL,供正在構建SOUL兼容硬件產品的供應商使用。”這使我不確定作為開源項目是否可以做到這一點,這讓我感到難過。
@Nathaniel IIRC的想法是,就我認為開源程度而言,它與OpenGL類似(GPU驅動程序通常不是開源的,GLSL仍然有用)。我懷疑“訴訟”(不禮貌地說)可能捲入其中,而且慾望可能已被破壞。
五 答案:
PeterT
2016-08-07 13:34:31 UTC
view on stackexchange narkive permalink

確實有新的語言以及其他語言中的庫。我打算在春天列出一些想法,然後再回來擴展我的答案。

編輯03/17:我對答案做了些微修改。值得注意的是,在很大程度上,SuperCollider經常用作基於多種語言&範式的系統的後端。在某些情況下,幾個月前我最初寫此文件時使用自己的音頻引擎的系統現在使用 scsynth

  • Sonic Pi -使用自己的服務器,但與高級綜合功能相比,它似乎更著重於易用性(尤其是在教育中使用)。 ( edit:在後端使用SuperCollider;在此列表中是一個重複出現的主題。)
  • ChucK-開發不是很積極,但是易懂的語言,具有一些超出句法能力的有趣的時間推理功能。
  • 潮汐週期-基於Haskell的系統,主要用於生成合成,而不是設計合成器。使用OSC控制其他應用程序(最初主要是自定義合成器 Dirt ,現在是SuperCollider中的 SuperDirt ,但也可以與其他應用程序一起使用。)
  • Overtone(Clojure庫)-Clojure中的SuperCollider前端。
  • Gibber-基於Javascript的Web-Audio前端,它是在所有現代瀏覽器中運行的HTML5中基於ugen的綜合API的一部分。
  • Faust-DSP的一種較低級語言,可以編譯成其他程序的插件,其歷史與超級對撞機。
我建議進行修改,以將鏈接和簡短描述添加到您的列表中。其中一些項目對我來說是新項目,因此如果我的描述有誤或不完整,請更正我的編輯。列出的項目都沒有真正解決我確定的主要問題,但是擁有列表非常有用。
您是說子彈4泛音嗎? http://overtone.github.io/
David Vogel
2016-08-07 18:58:33 UTC
view on stackexchange narkive permalink

我仍然建議使用 Csound作為基於文本的音頻編程的最佳工具。它正在積極開發中,並與最新進展保持同步。另一個值得一提的是名為 pyo的庫,該庫可與Python 2.7和Python 3.5+一起使用。那些開發人員有很多其他不錯的工具,您可能想看看。如果您想深入了解音頻編程,即使《 音頻編程書》在2010年發布,還是相當出色的。

polymechanos
2016-08-15 20:27:02 UTC
view on stackexchange narkive permalink

基於LISP編程語言,有一些有趣的算法組合框架:

奈奎斯特 https://www.cs.cmu.edu/~music/nyquist/
打開音樂 http://repmus.ircam.fr/openmusic/home

有一本關於奈奎斯特的書,由計算機科學家/作曲家撰寫,開發了語言-algocompbook.com。
Open Music是由IRCAM的人們創建的-en.wikipedia.org/wiki/IRCAM-法國的聲音研究和電聲音樂研究機構-他們的工作值得一試。

對於現代的LISP(可能不是LISP純粹主義者)算法組合和綜合環境,Overtone是一個不錯的選擇。
是的,泛音是另一個有趣的選擇,與我提到的較舊的學術項目相比,泛音可能還會更積極地開發。
Phil Freihofner
2017-03-15 07:41:10 UTC
view on stackexchange narkive permalink

我認識一個人,他已經用Java編寫了可以實時編輯的合成系統。它被稱為 Praxis LIVE,並且利用Java的多線程功能而起源於最近。作者非常有成就,還編寫了JAudioLibs,其中包括將Java音頻綁定到JACK Audio Connection Kit的功能。就性能而言,它比Python或JavaScript更接近C ++。我一直在用3D音頻和從頭開始用Java構建的FM合成器進行破解,這也是Java可以做的一個實時代碼。我喜歡自己動手,隨心所欲,而不受合成系統的限制。掌握Java Sound原語(例如SourceDataLine)存在一些障礙,但是一旦您克服了這個障礙,如果您願意,可以從頭開始構建各種東西。

Athina
2017-03-13 22:05:11 UTC
view on stackexchange narkive permalink

威爾·皮克爾(Will Pirkle)有一本書,名為“ 使用數字音頻信號處理理論設計C ++中的音頻效果插件”。它將向您介紹與Microsoft Visual C ++ 2008-2010一起使用的RackAFX系統。您可以將RackAFX與MSVBC ++以外的其他C ++編譯器一起使用。使用C ++編寫DSP代碼部分時,可以使用RackAFX幫助設計GUI。當您添加滑塊,旋鈕和按鈕時,RackAFX將自動更新代碼。有很多來自“延遲”,“過濾器”等的示例。

他有兩本書,它們都很棒。埃里克·里昂(Eric Lyon)撰寫的有關用C編寫Max外部函數的書也是如此。我認為這確實是現在的事情,人們正在C / C ++中的庫中進行音頻處理並將其嵌入到諸如SuperCollider,Max,PD等主機環境中。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...