Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Open
41 changes: 41 additions & 0 deletions 41 .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
*.db binary
*.a binary
*.o binary
*.py[co] binary
*.so binary
*.sw[nop] binary
.xvpics binary
*.pdf binary
*.od[pst] binary
*.sxw binary
*.wpd binary
*.doc binary
*.ppt binary
*.xls binary
*.avi binary
*.swf binary
*.svg binary
*.ico diff=exif
*.gif diff=exif
*.tif diff=exif
*.jpg diff=exif
*.png diff=exif
*.xbm binary
*.xcf binary
*.mpg binary
*.mov binary
*.mp3 binary
*.ogg binary
*.gz binary
*.tgz binary
*.bz2 binary
*.zip binary
*.rpm binary
*.deb binary
*.hqx binary
*.spo binary
*.db binary
*.mdb binary
*.djvu binary
*.fig binary
*.egg binary
186 changes: 98 additions & 88 deletions 186 examples/reaktor_lazerbass.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-

"""Example to drive/show reaktor's lazerbass instrument in pygame."""
import argparse
import pygame
import multiprocessing
import queue
import Queue
import logging

from pygame.locals import *
Expand All @@ -21,94 +24,101 @@


class ReaktorDisplay(multiprocessing.Process):
def __init__(self, bq):
multiprocessing.Process.__init__(self)
self._bq = bq

def run(self):
pygame.init()
font = pygame.font.SysFont("monospace", 15)
screen = pygame.display.set_mode((640, 480)) # FULLSCREEN
running = True
dirty = True
# OSC controlled parameters.
self._parameters = {
'beating': 0.0,
'blocks': 0.0,
'basic_Model': 0.0,
'Do!': 0.0,
}
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
if dirty:
screen.fill(_BLACK)
# Draw a gauge using rectangles.
# Left, top, width, height.
pygame.draw.rect(
screen, _WHITE, [10, 10, 50, 100], 2)
pygame.draw.rect(
screen, _WHITE, [10, 110, 50, -int(self._parameters['beating'] * 100)])

# Draw a button-like square for on/off display.
pygame.draw.rect(
screen, _WHITE, [10, 200, 50, 50], 2)
pygame.draw.rect(
screen, _WHITE, [10, 200, 50, 50 if self._parameters['blocks'] >= 0.5 else 0])

# Show actual values.
for index, [key, val] in enumerate(self._parameters.items()):
label = font.render("{0}: {1}".format(key, val), 1, _WHITE)
screen.blit(label, (200, index * 15))
pygame.display.flip()
dirty = False
try:
what, value = self._bq.get(True)
self._parameters[what] = value
def __init__(self, bq):
multiprocessing.Process.__init__(self)
self._bq = bq

def run(self):
pygame.init()
font = pygame.font.SysFont("monospace", 15)
screen = pygame.display.set_mode((640, 480)) # FULLSCREEN
running = True
dirty = True
logging.debug('Received new value {0} = {1}'.format(what, value))
except queue.Empty:
running = False
pygame.quit()
# OSC controlled parameters.
self._parameters = {'beating': 0.0,
'blocks': 0.0,
'basic_Model': 0.0,
'Do!': 0.0}
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
if dirty:
screen.fill(_BLACK)
# Draw a gauge using rectangles.
# Left, top, width, height.
pygame.draw.rect(screen, _WHITE, [10, 10, 50, 100], 2)
pygame.draw.rect(screen, _WHITE,
[10, 110, 50,
-int(self._parameters['beating'] * 100)])

# Draw a button-like square for on/off display.
pygame.draw.rect(screen, _WHITE, [10, 200, 50, 50], 2)
pygame.draw.rect(screen, _WHITE,
[10, 200, 50, 50
if self._parameters['blocks'] >= 0.5
else 0])

# Show actual values.
for index, [key, val] in enumerate(self._parameters.items()):
label = font.render("{0}: {1}".format(key, val),
1, _WHITE)
screen.blit(label, (200, index * 15))
pygame.display.flip()
dirty = False
try:
what, value = self._bq.get(True)
self._parameters[what] = value
dirty = True
logging.debug('Received new value {0} = {1}'
.format(what, value))
except Queue.Empty:
running = False
pygame.quit()


if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument(
"--server_ip", default="0.0.0.0",
help="The ip to listen to for reaktor OSC messages")
parser.add_argument(
"--server_port", type=int, default=8000,
help="The port to listen on for reaktor OSC messages")
#parser.add_argument("--client_ip",
# default="127.0.0.1", help="The ip to listen on")
#parser.add_argument("--client_port",
# type=int, default=5005, help="The port to listen on")
args = parser.parse_args()

#client = udp_client.UDPClient(args.client_ip, args.client_port)

bq = multiprocessing.Queue()
reaktor = ReaktorDisplay(bq)

def put_in_queue(args, value):
"""Put a named argument in the queue to be able to use a single queue."""
bq.put([args[0], value])

dispatcher = dispatcher.Dispatcher()
dispatcher.map("/debug", logging.debug)
dispatcher.map("/beating", put_in_queue, "beating")
dispatcher.map("/blocks", put_in_queue, "blocks")
dispatcher.map("/basic_Model", put_in_queue, "basic_Model")
dispatcher.map("/Do!", put_in_queue, "Do!")

server = osc_server.ThreadingOSCUDPServer(
(args.server_ip, args.server_port), dispatcher)
logging.info("Serving on {}".format(server.server_address))

# Exit thread when the main thread terminates.
reaktor.daemon = True
reaktor.start()

server.serve_forever()
parser = argparse.ArgumentParser()
parser.add_argument("--server_ip",
default="0.0.0.0",
help="The ip to listen to for reaktor OSC messages")
parser.add_argument("--server_port",
type=int,
default=8000,
help="The port to listen on for reaktor OSC messages")
# parser.add_argument("--client_ip",
# default="127.0.0.1",
# help="The ip to listen on")
# parser.add_argument("--client_port",
# type=int,
# default=5005,
# help="The port to listen on")
args = parser.parse_args()

# client = udp_client.UDPClient(args.client_ip, args.client_port)

bq = multiprocessing.Queue()
reaktor = ReaktorDisplay(bq)

def put_in_queue(args, value):
"""Put a named argument in the queue to be able to use a single
queue."""
bq.put([args[0], value])

dispatcher = dispatcher.Dispatcher()
dispatcher.map("/debug", logging.debug)
dispatcher.map("/beating", put_in_queue, "beating")
dispatcher.map("/blocks", put_in_queue, "blocks")
dispatcher.map("/basic_Model", put_in_queue, "basic_Model")
dispatcher.map("/Do!", put_in_queue, "Do!")

server = osc_server.ThreadingOSCUDPServer((args.server_ip,
args.server_port),
dispatcher)
logging.info("Serving on {}".format(server.server_address))

# Exit thread when the main thread terminates.
reaktor.daemon = True
reaktor.start()

server.serve_forever()
37 changes: 21 additions & 16 deletions 37 examples/simple_client.py
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-

"""Small example OSC client

This program sends 10 random values between 0.0 and 1.0 to the /filter address,
waiting for 1 seconds between each value.
This program sends 10 random values between 0.0 and 1.0 to the /debug
address, waiting for 1 seconds between each value.
"""
import argparse
import random
Expand All @@ -10,20 +13,22 @@
from pythonosc import osc_message_builder
from pythonosc import udp_client


if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--ip", default="127.0.0.1",
help="The ip of the OSC server")
parser.add_argument("--port", type=int, default=8000,
help="The port the OSC server is listening on")
args = parser.parse_args()
parser = argparse.ArgumentParser()
parser.add_argument("--ip",
default="127.0.0.1",
help="The ip of the OSC server")
parser.add_argument("--port",
type=int,
default=8000,
help="The port the OSC server is listening on")
args = parser.parse_args()

client = udp_client.UDPClient(args.ip, args.port)
client = udp_client.UDPClient(args.ip, args.port)

for x in range(10):
msg = osc_message_builder.OscMessageBuilder(address = "/filter")
msg.add_arg(random.random())
msg = msg.build()
client.send(msg)
time.sleep(1)
for x in range(10):
msg = osc_message_builder.OscMessageBuilder(address="/debug")
msg.add_arg(random.random())
msg = msg.build()
client.send(msg)
time.sleep(1)
51 changes: 31 additions & 20 deletions 51 examples/simple_server.py
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,31 +1,42 @@
#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-

from __future__ import print_function

import argparse
import math

from pythonosc import dispatcher
from pythonosc import osc_server


def print_volume_handler(unused_addr, args, volume):
print("[{0}] ~ {1}".format(args[0], volume))
print("[{0}] ~ {1}".format(args[0], volume))


def print_compute_handler(unused_addr, args, volume):
try:
print("[{0}] ~ {1}".format(args[0], args[1](volume)))
except ValueError: pass
try:
print("[{0}] ~ {1}".format(args[0], args[1](volume)))
except ValueError:
pass

if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--ip",
default="0.0.0.0", help="The ip to listen on")
parser.add_argument("--port",
type=int, default=5005, help="The port to listen on")
args = parser.parse_args()

dispatcher = dispatcher.Dispatcher()
dispatcher.map("/debug", print)
dispatcher.map("/volume", print_volume_handler, "Volume")
dispatcher.map("/logvolume", print_compute_handler, "Log volume", math.log)

server = osc_server.ThreadingOSCUDPServer(
(args.ip, args.port), dispatcher)
print("Serving on {}".format(server.server_address))
server.serve_forever()
parser = argparse.ArgumentParser()
parser.add_argument("--ip",
default="0.0.0.0",
help="The ip to listen on")
parser.add_argument("--port",
type=int,
default=5005,
help="The port to listen on")
args = parser.parse_args()

dispatcher = dispatcher.Dispatcher()
dispatcher.map("/debug", print)
dispatcher.map("/volume", print_volume_handler, "Volume")
dispatcher.map("/logvolume", print_compute_handler, "Log volume", math.log)

server = osc_server.ThreadingOSCUDPServer((args.ip, args.port),
dispatcher)
print("Serving on {0}".format(server.server_address))
server.serve_forever()
6 changes: 3 additions & 3 deletions 6 pythonosc/osc_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ class BlockingOSCUDPServer(socketserver.UDPServer):
"""

def __init__(self, server_address, dispatcher):
super().__init__(server_address, _UDPHandler)
socketserver.UDPServer.__init__(self, server_address, _UDPHandler)
self._dispatcher = dispatcher

def verify_request(self, request, client_address):
Expand All @@ -121,7 +121,7 @@ class ThreadingOSCUDPServer(
"""

def __init__(self, server_address, dispatcher):
super().__init__(server_address, _UDPHandler)
socketserver.UDPServer.__init__(self, server_address, _UDPHandler)
self._dispatcher = dispatcher

def verify_request(self, request, client_address):
Expand All @@ -144,7 +144,7 @@ class ForkingOSCUDPServer(
"""

def __init__(self, server_address, dispatcher):
super().__init__(server_address, _UDPHandler)
socketserver.UDPServer.__init__(self, server_address, _UDPHandler)
self._dispatcher = dispatcher

def verify_request(self, request, client_address):
Expand Down
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.