<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=SuperCollider</id>
	<title>SuperCollider - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=SuperCollider"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=SuperCollider&amp;action=history"/>
	<updated>2026-07-05T08:11:25Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=SuperCollider&amp;diff=2231549&amp;oldid=prev</id>
		<title>imported&gt;Mhss：​/* top */</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=SuperCollider&amp;diff=2231549&amp;oldid=prev"/>
		<updated>2026-03-18T21:12:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;top&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox software&lt;br /&gt;
| developer = James McCartney 和其他&lt;br /&gt;
| logo = SuperCollider logo.svg&lt;br /&gt;
| released = {{Start date and age|1996}}&lt;br /&gt;
| latest release version = 3.11.2&lt;br /&gt;
| latest release date = {{Start date and age|2020|11|15|df=yes}}&amp;lt;ref&amp;gt;{{cite web |title=Releases |url=https://github.com/supercollider/supercollider/releases |website=Github |access-date=15 November 2020 |archive-date=2020-12-30 |archive-url=https://web.archive.org/web/20201230011401/https://github.com/supercollider/supercollider/releases }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| operating system = [[Linux]], [[OS X]], [[Microsoft Windows|Windows]] &lt;br /&gt;
| type = [[声音编程语言]]&lt;br /&gt;
| license = [[GNU通用公共许可协议]]&lt;br /&gt;
| website = http://supercollider.github.io/&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SuperCollider&amp;#039;&amp;#039;&amp;#039; 是一个最初由 James McCartney 在1996年发布的[[编程语言]]和声音编程环境，主要用于[[实时]][[合成器|声音合成]]和[[算法作曲]]。&amp;lt;ref name=&amp;quot;sc1996&amp;quot;&amp;gt;J. McCartney, [http://www.audiosynth.com/icmc96paper.html SuperCollider: A new real time synthesis language] {{Wayback|url=http://www.audiosynth.com/icmc96paper.html |date=20130810034531 }}, in Proc. International Computer Music Conference (ICMC’96), 1996, pp. 257–258.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;sc2002&amp;quot;&amp;gt;J. McCartney, [http://dx.doi.org/10.1162/014892602320991383 Rethinking the computer music language: SuperCollider], Computer Music Journal, 26 (2002), pp. 61–68.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
自此之后，它逐步变成一个被科学家与艺术家们共同开发和操作声音的系统。这个高效且有表现力的[[动态语言]]，为[[声学]]、 [[算法作曲|算法音乐]]和{{link-en|交互式编程|Interactive programming}}提供了一个框架。&amp;lt;ref name=&amp;quot;book&amp;quot;&amp;gt;{{cite book|author1=Scott Wilson|author2=David Cottle|author3=Nick Collins|title=The SuperCollider Book|url=http://supercolliderbook.net/|year=2011|publisher=The MIT Press|isbn=978-0-262-23269-2|access-date=2013-10-13|archive-url=https://web.archive.org/web/20110501130100/http://supercolliderbook.net/|archive-date=2011-05-01|dead-url=yes}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在2002年以[[GNU通用公共许可协议]]发布，SuperCollider 是[[自由软件]]。&lt;br /&gt;
&lt;br /&gt;
==架构==&lt;br /&gt;
从版本3开始，SuperCollider被分为两部分：一个[[服务器]]，scsynth；一个[[客户端]]，sclang。两者通过OSC({{link-en|Open Sound Control|Open Sound Control}})通信。&lt;br /&gt;
&lt;br /&gt;
SC 的语言结合了 [[Smalltalk]] 的面向对象特性、来自函数式编程语言的特性和类C语言的语法。&lt;br /&gt;
&lt;br /&gt;
SC 的服务器支持简单的C扩展API，使它很简单的编写高效的声音算法。因为外界对服务器的操作都经过OSC，所以很方便地使用其他语言或应用操作它。&lt;br /&gt;
&lt;br /&gt;
=== SuperCollider 合成器服务器 (&amp;#039;&amp;#039;scsynth&amp;#039;&amp;#039;) ===&lt;br /&gt;
&lt;br /&gt;
SuperCollider的声音产生捆绑在一个优化的命令行可执行程序(&amp;#039;&amp;#039;scsynth&amp;#039;&amp;#039;)。大部分情况下它将被SuperCollider编程语言控制，但也可以被独立地使用。这个音频服务器有下列的特点：&amp;lt;ref name=&amp;quot;book&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{link-en|Open Sound Control|Open Sound Control}} 接入&lt;br /&gt;
* 简单的 [[ANSI C]] 插件 [[API]]&lt;br /&gt;
* 支持任意数量的输入和输出频道&amp;lt;ref&amp;gt;{{Cite web |url=http://www.beast.bham.ac.uk/research/mulch.shtml |title=BEASTmulch tools for multichannel audio |accessdate=2014-01-11 |archive-date=2009-11-06 |archive-url=https://web.archive.org/web/20091106111225/http://www.beast.bham.ac.uk/research/mulch.shtml |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* 一个以合成节点构成的[[树 (数据结构)|有序树]]结构定义了执行的顺序&lt;br /&gt;
* 能动态重建信号流向的总线系统&lt;br /&gt;
* 可供读写的缓冲块&lt;br /&gt;
* 根据需要以不同的速率计算：音频速率、控制速率和需求速率&lt;br /&gt;
&lt;br /&gt;
=== SuperCollider 编程语言 (&amp;#039;&amp;#039;sclang&amp;#039;&amp;#039;) ===&lt;br /&gt;
&lt;br /&gt;
SuperCollider 编程语言是一个类似于 [[Smalltalk]] 的[[动态类型]]、 [[垃圾回收 (计算机科学)|垃圾回收]]、 单继承的[[面向对象的程序设计|面向对象]]和[[函数式编程语言|函数式]]编程语言，&amp;lt;ref name=&amp;quot;sc2002&amp;quot;/&amp;gt; 它的语法类似[[LISP]]或者[[C语言]]。它的架构是在实时计算需求和抽象语言的灵活、简洁性之间的折衷。和许多函数式编程语言类似，它实现了[[函数 (计算机科学)|函数]]作为一级对象，使得函数可以[[复合函数|复合]]。函数和方法支持缺省参数、可变参数，调用时可以使用任意次序的关键词参数。 [[闭包 (计算机科学)|闭包]] 是词法的,  [[作用域]] 既有词法作用域和动态作用域。也支持函数式编程语言的其他典型特性，包括[[尾调用]]优化，{{link-en|列表解析|List comprehension}}和[[协程]]。 它特有功能包括隐式的元组扩展和无状态的模式系统。它的常量时间的消息查找和实时的[[垃圾回收 (计算机科学)|垃圾回收]] 让大型系统保持高效与信号处理的灵活。&amp;lt;ref name=&amp;quot;book&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==示例代码==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
// 打印 &amp;quot;Hello world!&amp;quot;&lt;br /&gt;
&amp;quot;Hello world!&amp;quot;.postln;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
// 播放一个800Hz正弦波与粉噪音的混合&lt;br /&gt;
{ SinOsc.ar(800, 0, 0.1) + PinkNoise.ar(0.01) }.play; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
// 以一个频率由鼠标的水平位置决定的正弦波调制另外一个正弦波的频率和一个噪音的振幅&lt;br /&gt;
{ &lt;br /&gt;
 var x = SinOsc.ar(MouseX.kr(1, 100));&lt;br /&gt;
 SinOsc.ar(300 * x + 800, 0, 0.1) &lt;br /&gt;
 + PinkNoise.ar(0.1 * x + 0.1) &lt;br /&gt;
}.play; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
// 列表迭代: 将列表中元素值乘以它们的索引&lt;br /&gt;
[1, 2, 5, 10, -3].collect { |elem, idx| elem * idx };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
// 阶乘函数&lt;br /&gt;
f = { |x| if(x == 0) { 1 } { f.(x-1) * x } };&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Portal|自由软件}}&lt;br /&gt;
==参考资料==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==外部链接==&lt;br /&gt;
* [http://supercollider.github.io/ SuperCollider 官方网站]{{Wayback|url=http://supercollider.github.io/ |date=20140305052632 }}&lt;br /&gt;
* [https://web.archive.org/web/20081015155331/http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml SuperCollider 用户邮件列表]&lt;br /&gt;
* [https://web.archive.org/web/20110820003031/http://www.informatics.sussex.ac.uk/users/nc81/courses/cm1/workshop.html  Nick Collins 关于 SuperCollider 的工作坊]&lt;br /&gt;
* [http://doc.sccode.org SuperCollider 在线帮助文件]{{Wayback|url=http://doc.sccode.org/ |date=20200303020146 }}&lt;br /&gt;
&lt;br /&gt;
{{程序设计语言}}&lt;br /&gt;
&lt;br /&gt;
[[Category:自由软件]]&lt;br /&gt;
[[Category:面向对象的编程语言]]&lt;br /&gt;
[[Category:程序设计语言]]&lt;br /&gt;
[[Category:陣列編程語言]]&lt;br /&gt;
[[Category:音频编程语言]]&lt;br /&gt;
[[Category:電子音樂軟體]]&lt;br /&gt;
[[Category:现场编程]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Mhss</name></author>
	</entry>
</feed>