www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Should I write an OSC library for D, or is it a sunken ship?

reply solidstate1991 <laszloszeremi outlook.com> writes:
After I started to get into a near usable state with my game 
engine, which originally called as VDP-engine, now it's renamed 
to Pixel Perfect ( https://github.com/ZILtoid1991/VDP-engine ), I 
was thinking on creating some software synths, but I find the 
conventional midi lacking in feature. After some research on the 
web, I found Open Sound Control as a perfect candidate, however 
it's not only lacks a standard namespace, but also barely 
supported.

On the other hand, I want to code something else besides my 
engine (although I think I'll publish the Extendible Bitmap (a 
bitmap file format capable of storing multiple images and 
animations in a single file) as a separate library), etc. I even 
thinking about creating an OSC file, similar to midi files with 
its own editor. Or should I write a framework instead with nice 
retro aesthetics? I already wrote one for my engine, so I can 
have a nice windowing framework for the engine's editor, although 
it lacks functionality and uses the CPU for drawing.
Jul 24 2016
parent reply lqjglkqjsg <lqjglkqghjghjjsg lkdsf.od> writes:
On Sunday, 24 July 2016 at 15:33:24 UTC, solidstate1991 wrote:
 After I started to get into a near usable state with my game 
 engine, which originally called as VDP-engine, now it's renamed 
 to Pixel Perfect ( https://github.com/ZILtoid1991/VDP-engine ), 
 I was thinking on creating some software synths, but I find the 
 conventional midi lacking in feature. After some research on 
 the web, I found Open Sound Control as a perfect candidate, 
 however it's not only lacks a standard namespace, but also 
 barely supported.

 On the other hand, I want to code something else besides my 
 engine (although I think I'll publish the Extendible Bitmap (a 
 bitmap file format capable of storing multiple images and 
 animations in a single file) as a separate library), etc. I 
 even thinking about creating an OSC file, similar to midi files 
 with its own editor. Or should I write a framework instead with 
 nice retro aesthetics? I already wrote one for my engine, so I 
 can have a nice windowing framework for the engine's editor, 
 although it lacks functionality and uses the CPU for drawing.
The problem is that OSC is not used at all. People still use MIDI. e.g all the master keyboards, drum pads, control surfaces, etc. communicates in MIDI (unless this has changed since I left in 2012).
Jul 24 2016
parent reply Jonathan Marler <johnnymarler gmail.com> writes:
On Sunday, 24 July 2016 at 15:48:22 UTC, lqjglkqjsg wrote:
 On Sunday, 24 July 2016 at 15:33:24 UTC, solidstate1991 wrote:
 After I started to get into a near usable state with my game 
 engine, which originally called as VDP-engine, now it's 
 renamed to Pixel Perfect ( 
 https://github.com/ZILtoid1991/VDP-engine ), I was thinking on 
 creating some software synths, but I find the conventional 
 midi lacking in feature. After some research on the web, I 
 found Open Sound Control as a perfect candidate, however it's 
 not only lacks a standard namespace, but also barely supported.

 On the other hand, I want to code something else besides my 
 engine (although I think I'll publish the Extendible Bitmap (a 
 bitmap file format capable of storing multiple images and 
 animations in a single file) as a separate library), etc. I 
 even thinking about creating an OSC file, similar to midi 
 files with its own editor. Or should I write a framework 
 instead with nice retro aesthetics? I already wrote one for my 
 engine, so I can have a nice windowing framework for the 
 engine's editor, although it lacks functionality and uses the 
 CPU for drawing.
The problem is that OSC is not used at all. People still use MIDI. e.g all the master keyboards, drum pads, control surfaces, etc. communicates in MIDI (unless this has changed since I left in 2012).
Well the X32 mixer uses OSC. I actually started writing a little program that would use MULTICAST to send all the live mixer data to the network connected devices instead of resending it to each device individually. Never finished it, but there's one application for it. https://github.com/marler8997/castosc But OSC is definitely the second fiddle to MIDI :)
Jul 24 2016
next sibling parent reply lqjglkqjsg <lqjglkqghjghjjsg lkdsf.od> writes:
On Sunday, 24 July 2016 at 16:01:39 UTC, Jonathan Marler wrote:
 On Sunday, 24 July 2016 at 15:48:22 UTC, lqjglkqjsg wrote:
 On Sunday, 24 July 2016 at 15:33:24 UTC, solidstate1991 wrote:
 After I started to get into a near usable state with my game 
 engine, which originally called as VDP-engine, now it's 
 renamed to Pixel Perfect ( 
 https://github.com/ZILtoid1991/VDP-engine ), I was thinking 
 on creating some software synths, but I find the conventional 
 midi lacking in feature. After some research on the web, I 
 found Open Sound Control as a perfect candidate, however it's 
 not only lacks a standard namespace, but also barely 
 supported.

 On the other hand, I want to code something else besides my 
 engine (although I think I'll publish the Extendible Bitmap 
 (a bitmap file format capable of storing multiple images and 
 animations in a single file) as a separate library), etc. I 
 even thinking about creating an OSC file, similar to midi 
 files with its own editor. Or should I write a framework 
 instead with nice retro aesthetics? I already wrote one for 
 my engine, so I can have a nice windowing framework for the 
 engine's editor, although it lacks functionality and uses the 
 CPU for drawing.
The problem is that OSC is not used at all. People still use MIDI. e.g all the master keyboards, drum pads, control surfaces, etc. communicates in MIDI (unless this has changed since I left in 2012).
Well the X32 mixer uses OSC. I actually started writing a little program that would use MULTICAST to send all the live mixer data to the network connected devices instead of resending it to each device individually. Never finished it, but there's one application for it. https://github.com/marler8997/castosc But OSC is definitely the second fiddle to MIDI :)
And inside software ? The only one I remember for implementing OSC was Reaktor. actually even the hosts didn't implement it. MIDI can't die because people still use their old gears (and will still...). I was myself using a Sy77 as master keyboard (so mid 90, no OSC), a Roland machine drum as sequencer and MIDI pads (so mid 80, no OSC)...etc, I can say that so few people were using it that i can even remember forum posts where people talked about that, even almost a decade after, for example the guy who used OSC in reaktor to send a character police to an event table that was used to draw advanced text...mostly some experimental bullshits. That said MIDI has obvious/well known problems. For example for certain parameters two CC must be used to get more accuracy. When you think that softsynth parameters are usually stored in a 32 bit float (vs 1 byte for MIDI !).
Jul 24 2016
parent reply Jonathan Marler <johnnymarler gmail.com> writes:
On Sunday, 24 July 2016 at 17:02:08 UTC, lqjglkqjsg wrote:
 On Sunday, 24 July 2016 at 16:01:39 UTC, Jonathan Marler wrote:
 [...]
And inside software ? The only one I remember for implementing OSC was Reaktor. actually even the hosts didn't implement it. MIDI can't die because people still use their old gears (and will still...). I was myself using a Sy77 as master keyboard (so mid 90, no OSC), a Roland machine drum as sequencer and MIDI pads (so mid 80, no OSC)...etc, I can say that so few people were using it that i can even remember forum posts where people talked about that, even almost a decade after, for example the guy who used OSC in reaktor to send a character police to an event table that was used to draw advanced text...mostly some experimental bullshits. [...]
This type of discussion sounds familiar, except MIDI=C++ and OSC=D :)
Jul 24 2016
parent reply lqjglkqjsg <lqjglkqghjghjjsg lkdsf.od> writes:
On Sunday, 24 July 2016 at 17:08:27 UTC, Jonathan Marler wrote:
 On Sunday, 24 July 2016 at 17:02:08 UTC, lqjglkqjsg wrote:
 On Sunday, 24 July 2016 at 16:01:39 UTC, Jonathan Marler wrote:
 [...]
[...]
This type of discussion sounds familiar, except MIDI=C++ and OSC=D :)
MIDI=C++ and OSC=F# :) D is used a bit after all.
Jul 24 2016
parent Jonathan Marler <johnnymarler gmail.com> writes:
On Sunday, 24 July 2016 at 17:29:02 UTC, lqjglkqjsg wrote:
 On Sunday, 24 July 2016 at 17:08:27 UTC, Jonathan Marler wrote:
 On Sunday, 24 July 2016 at 17:02:08 UTC, lqjglkqjsg wrote:
 On Sunday, 24 July 2016 at 16:01:39 UTC, Jonathan Marler 
 wrote:
 [...]
[...]
This type of discussion sounds familiar, except MIDI=C++ and OSC=D :)
MIDI=C++ and OSC=F# :) D is used a bit after all.
Lol, touche...
Jul 24 2016
prev sibling parent reply Gorge Jingale <Frifj mail.com> writes:
On Sunday, 24 July 2016 at 16:01:39 UTC, Jonathan Marler wrote:
 On Sunday, 24 July 2016 at 15:48:22 UTC, lqjglkqjsg wrote:
 On Sunday, 24 July 2016 at 15:33:24 UTC, solidstate1991 wrote:
 [...]
The problem is that OSC is not used at all. People still use MIDI. e.g all the master keyboards, drum pads, control surfaces, etc. communicates in MIDI (unless this has changed since I left in 2012).
Well the X32 mixer uses OSC. I actually started writing a little program that would use MULTICAST to send all the live mixer data to the network connected devices instead of resending it to each device individually. Never finished it, but there's one application for it. https://github.com/marler8997/castosc But OSC is definitely the second fiddle to MIDI :)
Reaper uses OSC, TouchOSC uses OSC, and many other things people are not aware of ;) So, yes, go and write an OSC Lib, it can't hurt, If you build it they will come! I will have to write a touch OSC at some point.
Jul 24 2016
parent lqjglkqjsg <lqjglkqghjghjjsg lkdsf.od> writes:
On Sunday, 24 July 2016 at 19:02:32 UTC, Gorge Jingale wrote:
 On Sunday, 24 July 2016 at 16:01:39 UTC, Jonathan Marler wrote:
 On Sunday, 24 July 2016 at 15:48:22 UTC, lqjglkqjsg wrote:
 [...]
Well the X32 mixer uses OSC. I actually started writing a little program that would use MULTICAST to send all the live mixer data to the network connected devices instead of resending it to each device individually. Never finished it, but there's one application for it. https://github.com/marler8997/castosc But OSC is definitely the second fiddle to MIDI :)
Reaper uses OSC, TouchOSC uses OSC, and many other things people are not aware of ;) So, yes, go and write an OSC Lib, it can't hurt, If you build it they will come! I will have to write a touch OSC at some point.
Now that you start enumerationg OSC clients I also remember that Bidule had an OSC module too, iirc. The question is, is it widely used ;)
Jul 24 2016