我用Python2.7编写代码,以适应从我的ipad到我的rasp-pi之间的OSC通信,使用appstore中的“touchOSC”应用程序。(这不是用于音乐或midi,而是简单地访问控制步进电机等的值…)我使用windows进行编码,然后将.py传输到我的rasp pi(这里不是问题所在)。我用下面代码中的名称和IP地址设置了音量控制器的布局软件。另外,我在touchOSC提供的软件中设置了音量控制器的范围值,从0到1。在
问题是我在ipad上启动音量控制器时只收到0。我希望看到的是值通过浮动值从0递增到1。我想我需要使用一些排序范围函数?这就是问题所在,如何指定我希望音量控制器在下面的代码中递增?在
现在的代码是:
from OSC import OSCServer,OSCClient, OSCMessage
server = OSCServer( ("192.168.0.8", 8000) )
client = OSCClient()
def handle_timeout(self):
print ("I'm IDLE")
#This here is just to do something while the script recieves no information....
server.handle_timeout = types.MethodType(handle_timeout, server)
def fader_0(path, tags, args, source):
value=int(args[0]) # Value is the variable that will transform the input from the faders into whole numbers(easier to deal with)
print "Fader Value:", value
server.addMsgHandler("/1/fader1", fader)
我的问题是关于Def fader_0(path, tags, args, source)
当我输入:value = int(args[0])
时,当我通过touch OSC调整ipad上的音量控制器时,我收到一个0。这很明显;但是,我希望在音量控制器增加时访问0到1之间的浮点值。在
我假设代码应该是:value=float(args[someLoop])
可能是value = float(args[range(0,1,.125)])
提前谢谢你。在
来自TouchOSC的值在0和1之间浮动。在
fader_0
函数中,您当前将float从TouchOSCargs[0]
转换为int
,该函数将小于1的任何数字舍入为0,因此您的程序每次都输出0。在在python解释器中可以很容易地看到这是如何发生的:
解决方案是从
^{pr2}$fader_0
中删除int
函数,如下所示:相关问题 更多 >
编程相关推荐