• Welcome to OS2World OLD-STATIC-BACKUP Forum.
 

News:

This is an old OS2World backup forum for reference only. IT IS READ ONLY!!!

If you need help with OS/2 - eComStation visit http://www.os2world.com/forum

Main Menu

Virtual OSC Controller

Started by Shai, 2009.01.04, 06:25:26

Previous topic - Next topic

Shai

Hi,
currently, I'm working on a small project which might be handy not only for OS/2 users: a Virtual OSC Controller.
OSC (Open Sound Control) is (mainly) a network protocol which is used by multimedia/audio hardware and software to communicate, e.g. to control certain aspects of a software/hardware. More specifically, it may be used by an OSC-enabled hardware controller (box with buttons, sliders, knobs etc. or a keyboard) to send information to - let's say - a software synthesizer. In that respect it's much like MIDI (expect that MIDI is old, originally not a network-protocol and has certain restrictions). So as I am very poor (my capitalist is exploiting me) I came up with the idea of turning a cheap old touchpad notebook / tabletop PC into an OSC controller by writing a software that displays an interface featuring sliders, buttons and other controls. For some strange reason this kind of free software project doesn't exist yet. There are commercial solutions of course: Lemur (http://www.cycling74.com/products/lemur), a complete solution including the tabletop computer, is the most popular one it seems. Well if it wouldn't cost $3000...
Nevertheless I just spent my vacation writing/beginning such a program, on OS/2 of course using Open Watcom C and SDL. As I was only using POSIX-stuff, porting it to GCC should be trivial. I will write an autotools build system soon. This means it should compile for all major (and minor) systems using both compilers. System requirements should be VERY low. I will try to use it on an old 486 Toshiba tabletop PC (going to install eCS).
The interface displayed is specified in a plain and simple XML file (schema will be provided). An interface will consist of several named "tabs" -  the user can switch between them at run time. A tab will contain controls. You can choose between different types of sliders, buttons and switches. All of them can be labelled and you can choose their colour. Sliders have upper and lower bounds, an optional 'step' (settable values are multiples of the 'step') and can have colour gradients. Their position is specified relative to the display resolution, so an 'interface' can be used on (almost) any resolution. You can assign an OSC-style address (/x.../y.../z...) and an OSC data type to any control. If you change the value of a control, an OSC message is sent to a specified OSC server using the control's address and with a single value (control's value converted to the specified OSC data type).
Things, I'm thinking about: it could be an OSC server too and accept messages to change a control's value. That'd be useful if you use (just like me) audio programming languages like pure data or CSound and you want to interact both directly (controller) and automatically (path/script) with some aspect of your composition.
Regarding the license, I'm not sure yet. The OS/2 binaries will be free in any case. However, maybe I won't publish the source and instead sell non-OS/2 binaries (one at a time, latest version) for a small fee. That way I may encourage people to give OS/2 a try (even if it's only on their old machines). But it will depend on the demand. Or maybe a shareware license with a higher fee. What do you think?

Attached are two screenshots: one with different control types and one which includes pitch/volume sliders - I used it with a pure data patch on my other machine to remote control a simple sinusoidal oscillator. Ugly, I know... Note: buttons for the 'tabs' are not displayed yet.