This is a proposal to bring Open Sound Control (OSC) capabilities to Drupal.
Open Sound Control (OSC) is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology (see opensoundcontrol.org for more info)
Originally a replacement to MIDI, OSC capabilites extend far beyond musical instruments, as it allows all kinds of devices large and small to exchange messages. See the implementation list for all the hardware and software devices that speak OSC.
Possible applications:
- home automation
- interactive exhibition design
- sensor network integration
- management of electrocic music data
- interactive multimedia art
- other real world interfacing
Since OSC is independent on the transport layer, the Drupal implementation will allow for OSC messaging over TCP/HTTP or UDP. With UDP, duplex communication is possible between Drupal and OSC enabled devices / software.
More generally this effort hopes to be a bridge between the rising Open Source Hardware movement and Open Source Web Development.
Details:
There are 3 parts to the project:
- OSC client and server API
Message parsing
Message forming -- there is already PHP code for this. - A mapping utility to map Drupal events to OSC address spaces
- HTTP or UDP mechanisms for sending and recieving messages
The message handling will be kept seperate from the transport mechanisms (sort of like Services), so the packets may be sent / received using either UDP or HTTP.
Difficulty: Medium
Comments
I like this idea, but it
I like this idea, but it seems like you're going to have a hard time appealing to many Drupallers. I think a picture would go a long way in showing people how Drupal could integrate with this extended realm of content management.
Why would Drupal want
Why would Drupal want this?
I'm sure there are Drupal users who want OSC implemented inside Drupal... but most Drupaler will never need it.
I think it is better to make it into a PHP library instead of something just for Drupal. As most of the possible applications you listed are not reasons why people use Drupala. It will help more people that way.
Wouldn't receiving packets
Wouldn't receiving packets require a process to be continually running? Neither PHP or Drupal were meant for that sort of task and unless a user has a dedicated server, his or her web host wouldn't even allow it.
Hey now.. :)
@doubters: External services are a great way for Drupal to do more just those cheap web forms :-P
Let's keep our evaluations positive and try not to bias the potential work of these bright students; I'd love to seem more far out ideas like this one. It looks like oweno put the time into making this proposal look realistic and possible, even if it only seems desirable to 1% of the Drupal community for now.
@oweno: Still waiting for that diagram :)
plug: I made a poll Which type of project is going to amaze us all this year?
OSC
I think this idea is brilliant.
As already alluded to OSC can offer much towards connecting Drupal to the real world.
Imagine a digital healthcare system that allows the patient to upload data and then have in response alterations made to equipment, all using open source resources.
Open Sound Control (OSC)
Alright, I have been looking into Open Sound Control (OSC) and a Perl and/or PHP implementation for my brother, who happens to be a music composer. He sent me to the CPAN Search (search.cpan.og) site because it has a Perl implementation that interacts with OSC. Having looked at it I am pretty sure that this would be fairly easy to implement in PHP as well.
But yes, it would probably require listeners on both ends listening for traffic (endless looping most likely), which in turn means anything that implements it would require a fixed IP address and the right ports open for traffic (or at least simulated as being open if it is a virtual server).
While this does somewhat seem like it might be problematic, the truth is that there are enough people out there that if Drupal had this functionality would flock to use Drupal and the module, since they themselves could concentrate on the music and thier site content, not on the development of the communication layer.
My brother asked me to help him to implement this, either as PHP (or as PHP wrapped Perl if necessary) so I will be working on this particular functionality anyway. As I look into implementing this for my brother (which is a PHD level musical composer) I will look into how best to share this with the community as a module. Should any of you have any interest in helping me, I would accept any input or help that you might want to offer along the way.
There is enough interest in this that I think it is worth my efforts to at least investigate how this can be accomplished. I am not saying that it is going to be a pretty solution, but I know it can be done. And, I will let everyone know what I come up with and if there are specific requirements that cannot be bypassed (like the dedicated IP for example).
Mark L. Krug
Chairman / CEO
Paladin Pursuit, Inc.
(816) 503-9586
business: mark.krug@paladinpursuit.com
personal: devildogmrk@yahoo.com