Я кодирую в python 2.7, чтобы разместить связь OSC с моего ipad до моего rasp pi, используя приложение touchOSC из магазина приложений. (это не для музыки или midi, а просто для доступа к значениям для управления шаговыми двигателями и т. д.). Я использую окна для кодирования, а затем передаю .py в свой рашпиль pi (не проблема здесь). Я установил фейдер в макет программного обеспечения OSC с именем, IP-адресом, который находится в коде ниже. Кроме того, я установил значение диапазона фейдера в программном обеспечении, которое touchOSC предоставил от 0 до 1.Правильный алгоритм управления фейдером OSC
Проблема в том, что я получаю только нули, когда я вызываю фейдер на своем ipad. То, что я хочу видеть, - это значения, увеличивающиеся от 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])
, я получаю ноль, когда я регулирую фейдер на моем IPad через сенсорный OSC. это очевидно; однако я хочу получить доступ к плавающим точкам между 0 и 1 по мере увеличения фейдера.
Я предполагаю, что код будет выглядеть так: значение = float(args[someLoop])
может быть что-то вроде value = float(args[range(0,1,.125)])
Спасибо заранее.
'range' не работает с шагами поплавка. Что вы хотите сделать точно? –
Да, вы правы. Я просто хочу отредактировать строку кода, чтобы вместо отправки нуля при вызове фейдера был отправлен список значений float, соответствующий увеличению фейдера. Может быть, это будет цикл? 'while True. если args <1. значение + = 0.125. else: break. print value' –
Я не уверен, что это дубликат, поскольку это контролируемый приращение. Мой вопрос: как я могу увеличить значение с помощью ползунка? Мне интересно, будет ли цикл while делать это или если есть лучший способ использовать счетчик. Прошу прощения, но у меня нет большого опыта в передаче этих типов связи через OSC. –