通过Function设计工具

这一年来,我在用sonic pi写代码时,都没有用到编写函数的功能,毕竟这不是高度工业化的代码。

不熟悉技术与工程上的事,并不会影响你玩sonic pi。但是玩了一段时间,你会发现自己每次都会写出功能类似的一段代码。作为一个乐意偷懒的人你当然不想重复劳动了。所以这个时候学习function写法最合适不过。

事实上,你时时刻刻都在使用别人编写的function。你调用的每个指令,都是作者封装好的function。DAW加载的插件,也是由function堆积起来的完整软件,只是功能更复杂。造工具的人本身就很懒,为了有时间玩才会钻研造轮子的方法,而掉进造轮子的兔洞而忘记为什么玩耍的人也是有的。较为成熟的工具常常被打磨得如同乐高积木一样,到使用时按需组装即可成型。

今天介绍的方法就 是教你学习这种聪明的偷懒方法。至于做出的功能模块好不好用,怎么用,都由你说了算。不过一般工具,也是经历作者自用到推荐给别人用的过程,所以不用管其他的事,你先动手写个function就对了。

Function的一般写法

假设你现在写了一段非常重复的代码,用了很多次复制粘贴,比如像这样:

play 50
sleep 1
play 55
sleep 0.5

sleep 1

2.times do
    play 50
    sleep 1
    play 55
    sleep 0.5
end

那么现在你可以使用function了,将其命名为:foo

defineend 中间复制粘贴会被重复使用的内容。

define :foo do
    play 50
    sleep 1
    play 55
    sleep 0.5
end

foo
sleep  1

2.times do
    foo
end

在后面执行的部分,重复的内容都用foo代替,你就可以尽情偷懒了。而且调用foo以后,代码立刻变得清爽很多。

应用与建议

除了音色预制(参见第二章第一节:音色预制),一些MIDI插件也能轻松做出来。效果应该能媲美Live里的MIDI插件。自己设定公式,应该是编程环境带给用户最大的自由。

不过在写好funtion同时,也一定记得做好笔记。音色预制可以不用记录,但是像MIDI插件则有必要为他们编写完整文档。因为一个星期或是一个月后,你大概率会读不懂自己写的代码。

为了能在日后重复使用之前好不容易做好的工具,请用简单易读的文档提升工具的复用机会吧。

以别人能看懂文档为标准,为自己写好的function编写说明。

格式可参考sonic pi官方文档,有必要记录的内容如下:

  • function 作用概述
  • 传入的参数说明与其格式(是纯数值还是文本)
  • 输出结果
  • 一段示例程序,复制粘贴后可直接运行

刚开始时,文档可以以注释的形式写在function旁边。

等到function数量越来越多时,就有必要在wiki里记录(wiki是一种文档工具)。

results matching ""

    No results matching ""