用超级准直器现场编码音乐
FoxDot的Python项目详细描述
foxdot-使用python v0.8进行实时编码
foxdot是一个python编程环境,它为超级准直器提供了一个快速且用户友好的抽象。它还带有自己的ide,这意味着它可以直接使用;您只需要python和supercallider就可以了!
重要
如果使用pip install foxdot
安装时遇到问题,请尝试使用以下代码更新python的setuptools
和wheel
库并重试。
pip install -U setuptools
pip install -U wheel
v0.8更新
- 为timestretching示例添加了
stretch
synth,类似于loop
但更好,而且只播放整个文件。在不影响音高的情况下,将音频的持续时间延长到sus属性,并且不需要知道节奏。
# Stretches the audio to 4 beats without affecting pitchp1>>stretch("Basic_Rock_135",dur=4)
安装和启动
先决条件
- python 2或3-将python添加到路径中,并在安装过程中出现提示时安装"pip"。
- 超级准直器3.8及以上版本
推荐
安装foxdot
- 打开命令提示符并键入
pip install--user foxdot
。如果您正确配置了python,这将从python包索引下载并安装最新稳定版本的foxdot。 - 如果foxdot已经安装,您可以将其更新到最新版本,方法是将
-u
或--upgrade
标志添加到此命令中。 - 或者,您可以直接从这个存储库的源代码构建:
$ git clone https://github.com/Qirky/FoxDot.git
$ cd FoxDot
$ python setup.py install
- 打开Supercallder,输入以下命令并按
ctrl+return
(注意:如果要在计算机上安装Git,则需要在计算机上安装还没有):
Quarks.install("FoxDot")
- 通过转到
language->;重新编译类库或按ctrl+shift+l
启动
- 打开超级准直器并键入
foxdot.start
并计算此行。超级对撞机正在监听来自FoxDot的信息。 - 在命令行中输入
foxdot
启动foxdot。如果不起作用,请尝试python-m foxdot
- 如果已安装SC3插件,请使用"代码"下拉菜单选择"使用SC3插件"。重新启动FoxDot,您将可以访问SC3插件中的类。
- 通过每隔几周运行
pip install foxdot--upgrade
来更新foxdot的最新版本。 - 有关如何掌握FoxDot的深入教程视频,请查看YouTube教程
使用超级准直器3.7或更早版本安装
pip install--user foxdot
。如果您正确配置了python,这将从python包索引下载并安装最新稳定版本的foxdot。-u
或--upgrade
标志添加到此命令中。ctrl+return
(注意:如果要在计算机上安装Git,则需要在计算机上安装还没有):language->;重新编译类库或按ctrl+shift+l
foxdot.start
并计算此行。超级对撞机正在监听来自FoxDot的信息。foxdot
启动foxdot。如果不起作用,请尝试python-m foxdot
pip install foxdot--upgrade
来更新foxdot的最新版本。如果你在超级准直器中安装Foxdot夸克时遇到问题,通常是因为你安装的超级准直器版本没有安装夸克的功能,或者工作不正常。如果是这种情况,您可以下载以下超级对焦器脚本的内容:foxdot.scd。下载后,在超级对焦器中打开文件并按ctrl+return运行它。这将使超级准直器开始监听来自FoxDot的消息。
常见问题
< H2> BasiCS</H2>执行代码
foxdot中的代码块由连续的代码行组成,没有空行。按ctrl+return
(或在Mac上按cmd+return
)将执行光标当前所在的代码块。试着打印(1+1)看看会发生什么!
播放器对象
python支持许多不同的编程模式,包括过程式和函数式,但是foxdot实现了一种传统的面向对象的方法,其中有一点欺骗,使代码更易于生存。player对象是foxdot通过给它分配一个synth(它将播放的"乐器")和一些指令(如音符音高)来制作音乐的对象。所有一个和两个字符的变量名在启动时都为player对象保留,因此,默认情况下,变量a
、bd
和p1
是"空"的player对象。如果您使用这些变量中的一个来存储其他内容,但希望再次将其用作播放器对象,或者希望使用一个包含两个以上字符的变量,则只需创建一个player
并按如下方式分配它即可:
p1=Player("p1")# The string name is optional
要停止播放器,请使用stop
方法,例如p1.stop()
。如果要停止所有播放机,可以使用执行此命令的命令clock.clear()
或键盘快捷键ctrl+。
。
使用双箭头操作符>;
为播放器对象分配合成器和指令。因此,如果您想将synth分配给名为"pads"(执行print(synthdefs)
以查看所有可用的synth)的p1
p1>>pads([0,1,2,3])
空的player对象p1
现在被分配一个"pads"synth和一些回放指令。p1
将使用名为\pads
的超级准直器synthdef
播放默认音阶的前四个音符。默认情况下,每个音符以120 bpm的速度持续1拍。可以通过指定关键字参数来更改这些默认值:
p1>>pads([0,1,2,3],dur=[1/4,3/4],sus=1,vib=4,scale=Scale.minor)
关键字参数dur
、oct
和scale
适用于所有播放器对象-任何其他对象,如上例中的vib
,请参阅相应的synthdef
中的关键字参数。第一个参数degree
不必显式声明。音符可以组合在一起,以便使用圆括号()
同时播放。序列[(0,2,4),1,2,3]
将播放默认音阶的第一个谐波三和弦,后面跟着三个音符。
"示例播放器"对象
在foxdot中,声音文件可以通过使用名为play
的特定synthdef来播放。使用此synthdef的播放器对象称为示例播放器对象。示例播放器不指定要生成注释的数字列表,而是将字符串(称为"playstring")作为其第一个参数。要查看与哪些字符关联的示例列表,请使用print(samples)
。要创建基本的鼓点节拍,可以执行以下代码行:
d1>>play("x-o-")
要同时播放示例,您可以为一些更复杂的模式创建一个新的"示例播放器"对象。
bd>>play("x( x) ")hh>>play("---[--]")sn>>play(" o ")
或者,您可以在一行中使用<;
箭头将要一起播放的模式分开,如下所示:
pip install -U setuptools
pip install -U wheel
0
或者您可以使用pzip
、zip
方法或&;
符号创建一个这样做的模式。如果您希望以后在各个层上执行某些功能,这将非常有用:
pip install -U setuptools
pip install -U wheel
1
在圆括号中对字符进行分组将填充图案,以便在每次播放示例序列时,播放组示例中的下一个字符。序列(x o)--将被回放,就好像输入了x---o一样--- < /代码>。使用方括号将强制所包含的示例与单个字符在同一时间跨度内播放,例如,--[--]
将以半拍播放两个Hi-Hat击数,然后以四分之一拍播放两个Hi-Hat击数。通过在播放字符串中使用大括号,您可以播放选定内容中的随机示例,如下所示:
pip install -U setuptools
pip install -U wheel
2
现在有了在使用play
synthdef时为单个样本指定样本号的功能。这可以通过使用<;char>;<;sample>;
格式的条形字符从播放字符串本身完成。也可以使用括号创建这些图案:
pip install -U setuptools
pip install -U wheel
3
安排播放机方法
只需调用适当的方法,您就可以在播放器对象上执行诸如shuffle、mirror和rotate之类的操作。
pip install -U setuptools
pip install -U wheel
4
您可以通过调用every
方法来调度这些方法,该方法接受一个持续时间列表(以节拍为单位)、方法名称作为字符串以及任何其他参数。下面的语法反映了6拍后的示例字符字符串,然后再重复2拍,并每8拍进行一次随机播放。
pip install -U setuptools
pip install -U wheel
5
文档
文档网站链接(仍在进行中)
使用其他编辑器
foxdot预先打包了自己的基本编辑器,这样你就不必修改配置文件或下载任何其他工具,但如果你想使用现有的编辑器,你可以。koltes为流行的atom编辑器编写了一个插件。您可以通过转到"设置"->;"安装"->;搜索"FoxDot"并按插件上的"安装"来安装它。按ctrl+alt+f或转到菜单->;软件包->;FoxDot->;切换以启动FoxDot运行。
使用foxdot代码运行python文件
您可以像导入其他模块一样,将foxdot导入到您自己的python程序中。如果您没有编写交互式程序,即只包含foxdot代码,则需要在程序结束时调用函数go()
,以获得回放,否则程序将立即终止。例如,您的程序,my_file.py
应该如下所示:
pip install -U setuptools
pip install -U wheel
6
然后像其他任何python程序一样运行:python my_file.py
谢谢
- 超级准直器开发社区,当然还有james mccartney,它的原始开发人员
- Pyosc,Artem Baguinski等人
- 以某种方式对项目做出贡献的实时编码社区成员,包括但不限于Alex McLean、Sean Cotterill和Dan Hett。
- 非常感谢那些使用、测试和提交bug的人,它们都有助于改进foxdot
- 感谢那些为超级准直器相关问题找到解决方案的人,如Davids48
样品
Foxdot的音频文件是从许多来源获得的,但我丢失了哪些文件属于哪个原始作者的记录。这是一份感谢列表,感谢那些不知情的Foxdot样本档案的创建者。
- Legowelt示例工具包
- 游戏男孩鼓包
- 许多声音都是由迈克·霍德尼克的现场编码专辑提供的,expedition
- 从http://freesound.org获取了许多示例,并通过creative commons 0许可证放入公共域中:http://creativecommons.org/public domain/zero/1.0/" rel="nofollow">http://creativecommons.org/publicdomain/zero/1.0/-感谢原始创建者
- 其他示例来自les/dirt samples/tree/c2db9a0dc4ffb911febc613cdb9726cae5175223" rel="nofollow">dirt sample engine是yaxu创建的tidalcycles实时编码语言的一部分-再次感谢。
如果你觉得我用了一个不该用的样本,请联系我!