[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[pygame] summer of code: OSC networking proposal
- To: pygame-users@xxxxxxxx
- Subject: [pygame] summer of code: OSC networking proposal
- From: Gabe Silk <gabesilk@xxxxxxxxx>
- Date: Mon, 5 Apr 2010 16:38:48 -0700
- Delivered-to: archiver@xxxxxxxx
- Delivered-to: pygame-users-outgoing@xxxxxxxx
- Delivered-to: pygame-users@xxxxxxxx
- Delivery-date: Mon, 05 Apr 2010 19:39:14 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:received:message-id :subject:from:to:content-type; bh=XWTt88mhjDuP1AD0NcsUgieUaz6L/QMMkI6AA4UG43k=; b=uJLR6OCuooSg0HrdZJjsQnE2xhMMYmGWVwc/HgasDN4eeSiEBc6Aiam+k1XtYQEiEe MEclKrdb8j63dlL9J5HFqA1wwrQs7VcKj+TbenmOEJKXQ/iM2Qc/JzWGhkfJM8wg+hcM K7n9OnRqrbWSEiGbwP9Qn09QF8h8aTQnkwPqQ=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=ZRzsXMxaim+JWq7rCB6wY/Mo7+ZDdEC1zdUuhBot+4mTfBFYvY8zr7Nl2uRE9wSsMs 1QiVaC08+xhJs6QDe2yq/kKZk/PZKtjahU8APOqxmG+h7U7Ey/urMLwh5bzWeuEo5oeg YVFZ0jODoknfh9FB7iN5iIEuIilscC4rDvWno=
- Reply-to: pygame-users@xxxxxxxx
- Sender: owner-pygame-users@xxxxxxxx
Hello everyone,
What follows is my preliminary gsoc proposal for the OSC networking project. I'm looking for lots of comments / feedback. Thanks everyone!
---
OSC Networking for Pygame
Background
"OSC
is often used as an alternative to the 1983 MIDI standard,
where
higher performance, higher resolution and a richer musical
parameter space is desired" (Wikipedia)
In a nutshell, Open Sound
Control (OSC) is a content format designed to
accomodate the
transmission of musical performance data between
computers,
instruments, and other multimedia devices. OSC has
been applied in many areas, including software synths, robotics,
and
distributed sound applications. Despite its popularity,
there is
currently no implementation in Pygame. I would like to remedy that.
Proposal
To create a simple OSC implementation (over UDP) for Pygame using the
Python socket API.
The goal is to provide an interface within Pygame
to create and use OSC
clients/servers, OSC messages and bundles, as
well as a multiple-unicast OSC-client with
subscription and message-filtering support.
Inspiration and
direction will be taken from PyOSC, the "Simple OSC" implementation
by
Holth and McChesney, the documentation available at http://opensoundcontrol.org/,
and most importantly, from my mentor and the Pygame community as a
whole.
Example applications will be created as development
proceeds, both as a form of
documentation, and to facilitate
testing. Concise tutorials will be written for
each example application, and "user-tested" on one or more of my
colleagues
who are relatively new to Python development, and anyone
else in the community
who would like to participate, comment, and
provide feedback. This will be a good
method of getting useful advice and feedback from the community.
About
Me
My name is Gabriel Silk, and I'm a fifth-year undergraduate
computer science student
at the University of British Columbia in
Vancouver, B.C. I have experience in networking,
audio, game dev, and I'm a huge fan of open source software. My favorite
hobby is making
electronic music. So, I feel that Pygame's OSC
project is a natural fit for me.
I have experience in c, Python,
network programming (I've written a proxy server, an ftp
client, and simple TCP-like protocol on top of UDP for coursework).
Recently I wrote an
on-line multiplayer game called Squabble as a
personal side-project, with a server written
in Java, and a client
written in Flash. Last term I wrote a world-modeller in c++ using Ogre.
This term, I'm working on a multi-touch, collaborative, UML diagram
creation tool for the SMART
Table as a course project. I'm also
working on a web-based CMS for the BC Cancer Agency. All of
these
projects will be finished by the end of April, before gsoc begins. Also,
I've worked
for Electronic Arts as well and Merck Frosst. Here's my blog: http://gabrielsilk.wordpress.com
Deliverables
a)
Framework with OSC Server, Client, Message, Bundle and multiple-unicast
interfaces
b) API documentation, covering every class and public method
d) At
least three example applications, with a large coverage in terms of
functionality demonstrated
Timeline
Week 1: Finalize
design and intended API
Week 2-3: Implement OSC Server
Weeks 4-5: Implement OSC Client and
Message classes, work on first example application
Week 6-7:
Implement Bundles, complete first example application
Week 8:
Finalize multicast API
Week 9-10: Implement multicast, complete second example application
Week
11: System and integration testing; complete third example application
Week
12: Finish up documentation for system and examples