首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PyOSC终止Sonic Pi

用PyOSC终止Sonic Pi
EN

Stack Overflow用户
提问于 2015-08-11 01:11:32
回答 2查看 930关注 0票数 2

我使用Pyosc库将代码从python发送到Raspberry Pi上的Sonic Pi。

以下代码将我的代码发送到Sonic Pi。

代码语言:javascript
复制
code = SOME SONIC PI CODE
oscmsg = OSC.OSCMessage()
oscmsg.setAddress("/run-code")
oscmsg.append(code)
c.send(oscmsg)

如何终止此代码并发送新代码?终止当前正在播放的代码的地址/命令是什么?

EN

回答 2

Stack Overflow用户

发布于 2015-09-01 17:27:40

都是写在Sonic Pi github wiki page上的。

因此,您要查找的地址/命令是/stop-all-jobs

票数 0
EN

Stack Overflow用户

发布于 2018-04-24 00:46:58

这可能会回答更多的问题。

代码语言:javascript
复制
# do this first:
# pip install pyosc

import OSC
import time

def sendCmd(cmd,par = None):
    oscmsg = OSC.OSCMessage()
    oscmsg.append('MY_PYTHON_GUI')
    oscmsg.setAddress(cmd)
    if par:
        oscmsg.append(par)
    c.send(oscmsg)

c = OSC.OSCClient()
c.connect(('127.0.0.1', 4557))   # connect to SuperCollider

#change these:
MYPATH = "/Users/you/path/"

# currentSong = MYSONG + ".txt"
# song = open( currentSong, 'r').read()
# MYSONG = "cloudbeat"

song = """
# music by Pit Noack
# http://www.maschinennah.de/sonic-pi-codeschnipsel-compus-loop/

use_bpm 80

live_loop :compus do
  with_fx :ixi_techno, phase: [0.125, 0.25, 0.5, 1, 2].choose do
    sample :loop_compus, beat_stretch: (ring 4, 8)[tick], amp: 4
    sleep (ring 4, 8)[look]
  end
end
"""

sendCmd("/stop-all-jobs")
sendCmd("/start-recording")

sendCmd("/run-code", song)

# the recording time should be calculated
time.sleep(3)

sendCmd("/stop-all-jobs")

# wait for reverb tail, etc
time.sleep(1)
sendCmd("/stop-recording")

time.sleep(0.1)
# sendCmd("/save-recording", MYPATH + MYSONG + ".wav")
sendCmd("/save-recording", MYPATH  + "song.wav")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31925383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档