Re: [LAD] OSC

2018-09-12 Thread Diemo Schwarz


FYI, there is also O2: https://github.com/rbdannenberg/o2

"O2 is a new communication protocol and implementation for music systems that 
aims to replace Open Sound Control (OSC). Many computer musicians routinely deal 
with problems of interconnection in local area networks, unreliable message 
delivery, and clock synchronization. O2 solves these problems, offering named 
services, automatic network address discovery, clock synchronization, and a 
reliable message delivery option, as well as interoperability with existing OSC 
libraries and applications. Aside from these new features, O2 owes much of its 
design to OSC and is mostly compatible with and similar to OSC. O2 addresses the 
problems of inter-process communication with a minimum of complexity."



On 12/09/18 19:27, Len Ovens wrote:

On Tue, 11 Sep 2018, Thomas Brand wrote:


On Tue, September 11, 2018 10:34, David Runge wrote:

On 2018-09-10 19:32:52 (-0400), Mark D. McCurry wrote:


On 09-09, Christopher Arndt wrote:


I'd definitely be interested in helping OSC staying relevant.



I guess a good first starting point is to contact the former maintainers
and get them involved (and to notify them about the website status - maybe
it needs a new home?).


yes.


Guess it would also be nice to find out what the motivations behind
abandoning 1.1 were.


just that the project was no longer funded. I don't think it was broken and 
there are projects that do use some of the 1.1 spec. it is difficult to 
encourage new projects (glass controlers mostly) to support 1.1 stuff when there 
is no spec to point at.



Hey, i have collected a few OSC related documents in this repository some
time ago: https://github.com/7890/osc_spec


Great! This is at least somewhere to point people.

--
Len Ovens
www.ovenwerks.net
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


...
...Diemo


--
Diemo Schwarz, PhD -- http://diemo.concatenative.net
Sound–Music–Movement Interaction Team -- http://ismm.ircam.fr
IRCAM - Centre Pompidou -- 1, place Igor-Stravinsky, 75004 Paris, France
Phone +33-1-4478-4879 -- Fax +33-1-4478-1540
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC

2018-09-12 Thread Len Ovens

On Wed, 12 Sep 2018, Len Ovens wrote:

that would change. OCA tries to do this by the way ( 
http://ocaalliance.com/ ) but has no performance control at all.


I should have added that OSC is still much easier to trouble shoot using 
wireshark or similar than OCA.


--
Len Ovens
www.ovenwerks.net
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC

2018-09-12 Thread Len Ovens

On Sun, 9 Sep 2018, Christopher Arndt wrote:


From the LAU list:

Am 08.09.18 um 17:23 schrieb Len Ovens:

I would be willing to help with a govering body if there are others so
inclined.


I'd definitely be interested in helping OSC staying relevant.

I've dabled with different OSC-to-X bridges in the past. [1] [2] [3]. My
main interest is controlling applications, which talk to some MIDI
device, running on a desktop or Raspi or similar, from another
application on an Android device, since MIDI and USB-OTG support on
Android devices is still somewhat a matter of luck.

The protocols I've seen so far, which embed MIDI in OSC are often too
simplistic. If I can't transmit Sysex, for example, it's no use to me.


I agree sysex is important, as are rpn nrpn which probably can be 
transmitted as four events with current protocols, but should be treated 
as one osc event.



And what is the advantage of the verbose commands MidiOSC/midioscar use
over just using the MIDI data type OSC provides?


It would allow a midi keyboard to perform using a synth designed for OSC 
performance control. That is, while in the OSC domain, the performance 
would have compatablitiy with a wide range SW. This does not help someone 
using OSC as a transport bridge at all and so maybe having two ways of 
dealing with this problem would make sense or at least the availablility 
of a raw method.



Also, the MIDI specification has had a few additions in the past years
and a OSC-MIDI protocol hould make sure to support those as well.


There are appendages to the MIDI 1.0 spec. Supporting them is fine, but in 
a raw midi sense they mostly seem to take midi 1.0 events and give them 
new meaning which doesn't really affect data bridging so much as midi 
performance to OSC performance translation.


MIDI 2.* is a whole new ball game and not really backwards compatable and 
as such doesn't seem to have caught on. Lots of people still use their pre 
MIDI 1.0 DX7s for example. Vintage synth use is still very common so for a 
new controller to be relevant, it uses MIDI 1.0.


MIDI 2, if anything, shows a need for an intermediat OSC format that 
performance data can be converted to/from with possibly midi 1.0 on one 
end and midi 2 on the other.


MIDI and OSC are all about controlling an application, but control for 
performance is very different from control of an application's parameters. 
OSC is better for both, but in the case of controlling parameters, much 
better as midi is not really designed for the ways many controllers use 
it. (look at the hack job mackie control uses as a great example) It is 
almost worth having a MCP_to_OSC bridge for such things.


As a note, My personal use of both MIDI and OSC has been the control of 
Application parameters rather than performance control (though I have made 
a HW MIDI filter to allow only drum info through many years ago). I 
currently work on the OSC code for Ardour to control transport, mixer, and 
session values. So if it's broken, thats my fault.


Of personal interest would be an OSC standard for mixer/transport control. 
I do not have an attitude that what I use now is the best. I would be ok 
with adding standard based controls to Ardour if such standards are 
available. However, I do have experience working with current controllers 
and their shortcoming. Of particular note in this case, most controllers 
are only able to deal with one control and one or two parameters per 
control and often only one type of parameter (float only is common but 
at least one is string only). There does not seem to be much in the way of 
one message gives all parameters for one strip for example. The exceptions 
are custom sw/hw such as the X32 mixers (and some parts of Ardour as 
happens).


These experiences have shown that while some of the OSC query stuff in 
OSC 1.1 looks good, in practice with current controllers, it doesn't work or 
even really make sense. In mixer/transport control the end result is that 
both the controller and the DAW or other controled unit, send control 
messages as well as act on them. (we call this feedback) So rather than 
querying a value, a controller asks to start receiving feedback for a 
control or set of controls. The controlled device then sends the current 
value of the requested control(s) as well as any changes as they happen.


A better use for query would be to find out what controls are available. 
So querying strip 1 would tell how many channels it controls and what 
controls it has (fader, pan, eq, plugins, etc.). Each control could be 
queried to find out about subcontrols and control limits and units. 
Showing how to access each would help too. Most controllers are are not 
able to deal with such things right now but if there was a standard, maybe 
that would change. OCA tries to do this by the way ( 
http://ocaalliance.com/ ) but has no performance control at all.


--
Len Ovens
www.ovenwerks.net
___
Linux-a

Re: [LAD] OSC

2018-09-12 Thread Len Ovens

On Tue, 11 Sep 2018, Thomas Brand wrote:


On Tue, September 11, 2018 10:34, David Runge wrote:

On 2018-09-10 19:32:52 (-0400), Mark D. McCurry wrote:


On 09-09, Christopher Arndt wrote:


I'd definitely be interested in helping OSC staying relevant.



I guess a good first starting point is to contact the former maintainers
and get them involved (and to notify them about the website status - maybe
it needs a new home?).


yes.


Guess it would also be nice to find out what the motivations behind
abandoning 1.1 were.


just that the project was no longer funded. I don't think it was broken 
and there are projects that do use some of the 1.1 spec. it is difficult 
to encourage new projects (glass controlers mostly) to support 1.1 stuff 
when there is no spec to point at.



Hey, i have collected a few OSC related documents in this repository some
time ago: https://github.com/7890/osc_spec


Great! This is at least somewhere to point people.

--
Len Ovens
www.ovenwerks.net
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC

2018-09-11 Thread John Hammen
I always thought of OSC as a product of CNMAT at UC Berkeley, which is maybe
doing less now with technology since the passing of its founder David
Wessel: http://cnmat.berkeley.edu/event/2015/03/22/david_wessel_1942_2014

Is there not anyone on this list from CNMAT?




--
Sent from: http://linux-audio.4202.n7.nabble.com/linux-audio-dev-f58952.html
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC

2018-09-11 Thread trebmuh

Le 2018-09-11 19:08, Len Ovens a écrit :

As no one bothered
to move these documents onto the OSC site proper, those documents were
lost when these students pages were deleted ...


https://archive.org/web/ could be of help here.

Olivier
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC

2018-09-11 Thread Len Ovens

On Tue, 11 Sep 2018, David Runge wrote:


On 2018-09-10 19:32:52 (-0400), Mark D. McCurry wrote:

On 09-09, Christopher Arndt wrote:

I'd definitely be interested in helping OSC staying relevant.


I don't have much time to contribute at this point, though it would be
great to know that some effort is being put into at least maintaining
the existing information on the standard as well as what implementation
are available for applications to use.

I guess a good first starting point is to contact the former maintainers
and get them involved (and to notify them about the website status -
maybe it needs a new home?).

Guess it would also be nice to find out what the motivations behind
abandoning 1.1 were.


The site is run by a university. They or some of their students were the 
original maintainers. however, it seems the funding for OSC work has been 
removed. The original site has been left intact but some of the links were 
to personal web pages of students. As no one bothered to move these 
documents onto the OSC site proper, those documents were lost when these 
students pages were deleted (when the students left the school and started 
working?). So lost rather than abandoned may be more reasonable, though 
the difference is probably arguable :)


I would guess the first thing would be to clone what is there so that at 
least that doesn't get "lost".


--
Len Ovens
www.ovenwerks.net
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC

2018-09-11 Thread Thomas Brand
On Tue, September 11, 2018 10:34, David Runge wrote:
> On 2018-09-10 19:32:52 (-0400), Mark D. McCurry wrote:
>
>> On 09-09, Christopher Arndt wrote:
>>
>>> I'd definitely be interested in helping OSC staying relevant.
>>>
>>
>> I don't have much time to contribute at this point, though it would be
>> great to know that some effort is being put into at least maintaining the
>> existing information on the standard as well as what implementation are
>> available for applications to use.
> I guess a good first starting point is to contact the former maintainers
> and get them involved (and to notify them about the website status - maybe
> it needs a new home?).
>
> Guess it would also be nice to find out what the motivations behind
> abandoning 1.1 were.
>

Hey, i have collected a few OSC related documents in this repository some
time ago: https://github.com/7890/osc_spec

I've rewritten the spec to be rendered with asciidoc. I've started to try
to describe the byte syntax as EBNF. I've created an OpenSoundControl
organization. I've not consequently worked more on it, it's not complete
etc.

Just in case.. should i put you both to the org?

Greetings
Thomas
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC

2018-09-11 Thread David Runge
On 2018-09-10 19:32:52 (-0400), Mark D. McCurry wrote:
> On 09-09, Christopher Arndt wrote:
> > I'd definitely be interested in helping OSC staying relevant.
> 
> I don't have much time to contribute at this point, though it would be
> great to know that some effort is being put into at least maintaining
> the existing information on the standard as well as what implementation
> are available for applications to use.
I guess a good first starting point is to contact the former maintainers
and get them involved (and to notify them about the website status -
maybe it needs a new home?).

Guess it would also be nice to find out what the motivations behind
abandoning 1.1 were.

Best,
David

-- 
https://sleepmap.de


signature.asc
Description: PGP signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC

2018-09-10 Thread Mark D. McCurry
On 09-09, Christopher Arndt wrote:
> I'd definitely be interested in helping OSC staying relevant.

I don't have much time to contribute at this point, though it would be
great to know that some effort is being put into at least maintaining
the existing information on the standard as well as what implementation
are available for applications to use.

--Mark


signature.asc
Description: PGP signature
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] OSC

2018-09-09 Thread Christopher Arndt
From the LAU list:

Am 08.09.18 um 17:23 schrieb Len Ovens:
> I would be willing to help with a govering body if there are others so
> inclined.

I'd definitely be interested in helping OSC staying relevant.

I've dabled with different OSC-to-X bridges in the past. [1] [2] [3]. My
main interest is controlling applications, which talk to some MIDI
device, running on a desktop or Raspi or similar, from another
application on an Android device, since MIDI and USB-OTG support on
Android devices is still somewhat a matter of luck.

The protocols I've seen so far, which embed MIDI in OSC are often too
simplistic. If I can't transmit Sysex, for example, it's no use to me.
And what is the advantage of the verbose commands MidiOSC/midioscar use
over just using the MIDI data type OSC provides?

Also, the MIDI specification has had a few additions in the past years
and a OSC-MIDI protocol hould make sure to support those as well.

Chris


[1] https://github.com/SpotlightKid/osc2rtmidi
[2] https://github.com/SpotlightKid/osc2mqtt
[3] https://github.com/SpotlightKid/touchosc2midi
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC-generating plugin?

2017-06-19 Thread Robin Gareus
On 06/19/2017 11:57 PM, Jörn Nettingsmeier wrote:
> the customer is always right

Doesn't sound like the right customer though :-)
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC-generating plugin?

2017-06-19 Thread Jörn Nettingsmeier

On 06/19/2017 10:07 PM, Diemo Schwarz wrote:


ToscA!  http://forumnet.ircam.fr/shop/en/forumnet/84-tosca.html

"ToscA plugin can be inserted into a DAW (Digital Audio Workstation, 
such as ProTools, Apple Logic, Digital Performer, Ableton Live, etc.) in 
order to send/receive parameters’ automation.


The ToscA plugin is available in the following formats: AU, VST, VST3, 
AAX."


Thanks Diemo! I would have preferred an open-source tool, but since this 
whole scheme is evil anyways and you can only lose your soul once, it'll 
be fine :-D
I will admit to having bought a used Macbook recently (the customer is 
always right, and he uses QLAB), so I will use that for testing. I can't 
believe I will be remote-controlling Ardour from Reaper :-D An exercise 
in futility for the sake of maintaining the client's workflow of choice...



--
Jörn Nettingsmeier
De Rijpgracht 8, 1055VR Amsterdam, Nederland
Tel. +49 177 7937487

Meister für Veranstaltungstechnik (Bühne/Studio), Tonmeister VDT
http://stackingdwarves.net
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC-generating plugin?

2017-06-19 Thread Jörn Nettingsmeier

Robin, Julius,

thanks for your replies. Julius, I wasn't aware of OSC magic in faust - 
I recently used it to decode a mic prototype array I was testing, and it 
worked like a charm (lazy me just used the online compiler), so I'll 
definitely check it out. Will need to understand the realtime issues 
that Robin pointed out, though.


On 06/19/2017 09:20 PM, Robin Gareus wrote:

On 06/19/2017 08:07 PM, Jörn Nettingsmeier wrote:

Hi *!

Does anybody know of a decent free plugin that generates arbitrary OSC
command streams from plugin automation data in the DAW? Preferrably
(gasp!) VST? Idea is to use SomeEvilDAW to send and control smart things
on a box running a friendly OS and a FriendlyDAW.


Sending OSC is not rt-safe and VST parameters are rather limited.
"arbitrary messages" are no fun and need all kinds of hacks (eg sending
them from the UI thread). There are a couple of single-parameter VSTs
though.


Clarification: "arbitrary" in the sense of "freely configurable", like 
so: data type, lower limit, upper limit, default value, OSC string, OSC 
target URL.
So the plugin will be pretty static once it's set up. I could even live 
with this being compile-time options.



Along those lines there's an ancient LADSPA plugin, too:
https://code.google.com/archive/p/noisesmith-linux-audio/downloads
needs some CFLAGS=-fPIC but otherwise still compiles, but it probably
won't run in SomeEvilDAW.

A more generic solution: https://github.com/x42/jackmidi2osc
Receive MIDI from someplace, generate fancy OSC based on rules.


I see. So this would also circumvent the realtime issue, since the 
plugin would be using the host's MIDI sending mechanism?



Spencer wrote a similar tool https://github.com/ssj71/OSC2MIDI/ which
despite its name can also turn MIDI into OSC.


Thanks for the pointers, I'll look at them.

Best,

Jörn


--
Jörn Nettingsmeier
De Rijpgracht 8, 1055VR Amsterdam, Nederland
Tel. +49 177 7937487

Meister für Veranstaltungstechnik (Bühne/Studio), Tonmeister VDT
http://stackingdwarves.net
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC-generating plugin?

2017-06-19 Thread Diemo Schwarz


ToscA!  http://forumnet.ircam.fr/shop/en/forumnet/84-tosca.html

"ToscA plugin can be inserted into a DAW (Digital Audio Workstation, such as 
ProTools, Apple Logic, Digital Performer, Ableton Live, etc.) in order to 
send/receive parameters’ automation.


The ToscA plugin is available in the following formats: AU, VST, VST3, AAX."

...Diemo

On 19/06/17 21:20, Robin Gareus wrote:

On 06/19/2017 08:07 PM, Jörn Nettingsmeier wrote:

Hi *!

Does anybody know of a decent free plugin that generates arbitrary OSC
command streams from plugin automation data in the DAW? Preferrably
(gasp!) VST? Idea is to use SomeEvilDAW to send and control smart things
on a box running a friendly OS and a FriendlyDAW.


Sending OSC is not rt-safe and VST parameters are rather limited.
"arbitrary messages" are no fun and need all kinds of hacks (eg sending
them from the UI thread). There are a couple of single-parameter VSTs
though.

Along those lines there's an ancient LADSPA plugin, too:
https://code.google.com/archive/p/noisesmith-linux-audio/downloads
needs some CFLAGS=-fPIC but otherwise still compiles, but it probably
won't run in SomeEvilDAW.

A more generic solution: https://github.com/x42/jackmidi2osc
Receive MIDI from someplace, generate fancy OSC based on rules.

Spencer wrote a similar tool https://github.com/ssj71/OSC2MIDI/ which
despite its name can also turn MIDI into OSC.

ciao,
robin


--
Diemo Schwarz, PhD -- http://diemo.concatenative.net
Sound–Music–Movement Interaction Team -- http://ismm.ircam.fr
IRCAM - Centre Pompidou -- 1, place Igor-Stravinsky, 75004 Paris, France
Phone +33-1-4478-4879 -- Fax +33-1-4478-1540
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC-generating plugin?

2017-06-19 Thread Robin Gareus
On 06/19/2017 08:07 PM, Jörn Nettingsmeier wrote:
> Hi *!
> 
> Does anybody know of a decent free plugin that generates arbitrary OSC
> command streams from plugin automation data in the DAW? Preferrably
> (gasp!) VST? Idea is to use SomeEvilDAW to send and control smart things
> on a box running a friendly OS and a FriendlyDAW.

Sending OSC is not rt-safe and VST parameters are rather limited.
"arbitrary messages" are no fun and need all kinds of hacks (eg sending
them from the UI thread). There are a couple of single-parameter VSTs
though.

Along those lines there's an ancient LADSPA plugin, too:
https://code.google.com/archive/p/noisesmith-linux-audio/downloads
needs some CFLAGS=-fPIC but otherwise still compiles, but it probably
won't run in SomeEvilDAW.

A more generic solution: https://github.com/x42/jackmidi2osc
Receive MIDI from someplace, generate fancy OSC based on rules.

Spencer wrote a similar tool https://github.com/ssj71/OSC2MIDI/ which
despite its name can also turn MIDI into OSC.

ciao,
robin
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC-generating plugin?

2017-06-19 Thread Julius Smith
Hi Jörn,

That's a cool idea - I'm going to need this as well!

How about using faust2faustvst to create a VST plugin having the
parameters you want to automate, and using Faust's OSC support to
"xmit" the automation?

I have only used Faust OSC in the other direction
(https://ccrma.stanford.edu/~jos/aspf/Using_FAUST_Open_Sound.html) but
it looks like the xmit mode should be adaptable to our needs.  We
might have to manually (with an architecture-file edit) link receive
to transmit, since it appears from the doc that the xmit option is
only for emitting manual manipulations of the GUI elements:
http://faust.grame.fr/docs/faust-quick-reference.pdf - it's not clear
to me that received OSC messages will be subject to xmit forwarding.

- Julius

On Mon, Jun 19, 2017 at 11:07 AM, Jörn Nettingsmeier
 wrote:
> Hi *!
>
> Does anybody know of a decent free plugin that generates arbitrary OSC
> command streams from plugin automation data in the DAW? Preferrably (gasp!)
> VST? Idea is to use SomeEvilDAW to send and control smart things on a box
> running a friendly OS and a FriendlyDAW.
>
> Best,
>
> Jörn
>
>
> --
> Jörn Nettingsmeier
> De Rijpgracht 8, 1055VR Amsterdam, Nederland
> Tel. +49 177 7937487
>
> Meister für Veranstaltungstechnik (Bühne/Studio)
> Referent für Beschallung im VDT
>
> --
> Jörn Nettingsmeier
> De Rijpgracht 8, 1055VR Amsterdam, Nederland
> Tel. +49 177 7937487
>
> Meister für Veranstaltungstechnik (Bühne/Studio), Tonmeister VDT
> http://stackingdwarves.net
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-dev



-- 
Julius O. Smith III 
Professor of Music and, by courtesy, Electrical Engineering
CCRMA, Stanford University
http://ccrma.stanford.edu/~jos/
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] OSC-generating plugin?

2017-06-19 Thread Jörn Nettingsmeier

Hi *!

Does anybody know of a decent free plugin that generates arbitrary OSC 
command streams from plugin automation data in the DAW? Preferrably 
(gasp!) VST? Idea is to use SomeEvilDAW to send and control smart things 
on a box running a friendly OS and a FriendlyDAW.


Best,

Jörn


--
Jörn Nettingsmeier
De Rijpgracht 8, 1055VR Amsterdam, Nederland
Tel. +49 177 7937487

Meister für Veranstaltungstechnik (Bühne/Studio)
Referent für Beschallung im VDT

--
Jörn Nettingsmeier
De Rijpgracht 8, 1055VR Amsterdam, Nederland
Tel. +49 177 7937487

Meister für Veranstaltungstechnik (Bühne/Studio), Tonmeister VDT
http://stackingdwarves.net
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC direct communication with non-session-manager clients

2016-10-07 Thread Hanspeter Portner
On 07.10.2016 16:35, Maurizio Berti wrote:
> Hello,
> I need to find a way to communicate via OSC with a non-session-manager client
> (non-mixer) by using a fixed port number.
> 
> I'm developing a "midi proxy" based on mididings, which allows me to use a
> Novation Launch Control XL as a controller for various midi devices.
> Now, I wanted to use it with non-mixer, and since mididings supports osc this 
> is
> ok. Its interface is pretty basic, there's only a SendOSC function which 
> accepts
> the destination address, the osc path and optional arguments.
> My program creates a configuration file with mapping for every physical
> controller, each of them has a different patch assigned; once the program is
> loaded in "live" mode it creates a mididing configuration on the fly and runs 
> it.
> When using non-mixer in standalone mode I can set a fixed port and I'm able to
> send messages without any problem, since the controllers have their SendOSC
> command with the "hardcoded" port number.
> The problem comes when using non-mixer within a non-session, because 
> obviously I
> cannot manually set the port number for clients.
> I really tried and looked around for solution on how to communicate with the
> non-mixer through nsm, but with no luck.
> I even tried using the /nsm/server/broadcast using the format sf
> "Non-Mixer.nKWUR/strip/Pianoteq/Gain/Mute" 1.0.
> 
> The only way I can access the non-mixer is through its randomly created port,
> which I can find in the log when adding non-midi-mapper to the session. But 
> this
> is not practical, first of all because I'd have to change the port number in 
> the
> configuration file every time non-mixer is started, and also because I'd need 
> to
> add non-midi-mapper and sniff its log.
> In case you were wandering, I cannot use the midi mapper with mididings, 
> because
> I need to control other parameters which are not available to it (plugin 
> values).
> I could try to create an OSC "router", using a fixed receiving port (but I 
> don't
> know how to find the client port, a part from looking in the nsm log), but I
> don't like this solution.
> 
> Am I missing something? Does anybody here have any idea?

I don't think you're missing anything. I believe to have hit the same wall in
the past.

How about not directly adding non-mixer to non-session-manager but a
shell-script proxy (e.g. non-mixer-fixed) with your desired command line 
arguments?

--- ~/bin/non-mixer-fixed---
#!/usr/bin/bash

exec \
-a non-mixer-fixed \
non-mixer --osc-port 9090 $*

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] OSC direct communication with non-session-manager clients

2016-10-07 Thread Maurizio Berti
Hello,
I need to find a way to communicate via OSC with a non-session-manager
client (non-mixer) by using a fixed port number.

I'm developing a "midi proxy" based on mididings, which allows me to use a
Novation Launch Control XL as a controller for various midi devices.
Now, I wanted to use it with non-mixer, and since mididings supports osc
this is ok. Its interface is pretty basic, there's only a SendOSC function
which accepts the destination address, the osc path and optional arguments.
My program creates a configuration file with mapping for every physical
controller, each of them has a different patch assigned; once the program
is loaded in "live" mode it creates a mididing configuration on the fly and
runs it.
When using non-mixer in standalone mode I can set a fixed port and I'm able
to send messages without any problem, since the controllers have their
SendOSC command with the "hardcoded" port number.
The problem comes when using non-mixer within a non-session, because
obviously I cannot manually set the port number for clients.
I really tried and looked around for solution on how to communicate with
the non-mixer through nsm, but with no luck.
I even tried using the /nsm/server/broadcast using the format sf
"Non-Mixer.nKWUR/strip/Pianoteq/Gain/Mute" 1.0.

The only way I can access the non-mixer is through its randomly created
port, which I can find in the log when adding non-midi-mapper to the
session. But this is not practical, first of all because I'd have to change
the port number in the configuration file every time non-mixer is started,
and also because I'd need to add non-midi-mapper and sniff its log.
In case you were wandering, I cannot use the midi mapper with mididings,
because I need to control other parameters which are not available to it
(plugin values).
I could try to create an OSC "router", using a fixed receiving port (but I
don't know how to find the client port, a part from looking in the nsm
log), but I don't like this solution.

Am I missing something? Does anybody here have any idea?

Thank you in advance,
Maurizio
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC vs LV2 atoms (was: [ANN] Qtractor 0.5.4 - Echo Victor shouts out!)

2012-03-06 Thread David Robillard
On Tue, 2012-03-06 at 14:07 +0100, Stefan Kersten wrote:
> On 05.03.12 21:50, David Robillard wrote:
[...]
> > I have been idly wondering if a round-trip OSC<=>Atom bridge would be
> > possible.  Atoms are essentially primitives (int, float, string, etc)
> > with a few simple collections, all POD (vector, dictionary).  You can
> > think of it as sort of a JSONish approach, but low-level rather than
> > text.
> 
> it seems to be rather similar to bson [1] actually.

Interesting.  I was unaware of this spec.  Yes, very similar, though
Atoms have 64-bit alignment, and more extensibility (we use URID
integers for type rather than a byte).

Atoms also lack a real "dictionary", objects always have URID keys
because that 'meaningfulness' is very useful, and its fast.  A
dictionary type with flexible keys could be added...

It would be nice if an existing spec could be used (I looked in to
protocol buffers as well), but none quite fit.

> > I wonder how one would express a dictionary in OSC?
[...]
> > /foo/adict {sssi} "name" "David" "id" 42
> > 
> > =
> > 
> > { "name": "David"
> >   "id":42 }
> 
> without the need for new types you could also "abuse" the bundle system, by
> interpreting bundles within the top-level bundle as dictionaries with messages
> as key/value pairs; this changed semantics would need to be explicitly 
> supported
> by other applications, of course.

Sounds like maybe "Enables encoding of structured content by using
nested bundles" (from [2]) would facilitate this without have to kludge
the semantics.

> there's some talk about this in a thread on OSC 2.0 [2], but i couldn't find a
> draft document of the new protocol revision.

Interesting.  Looks like they have the right goals.  I am tempted to
follow this, but the very last thing I need is to be involved in yet
another spec :)

-dr


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] OSC vs LV2 atoms (was: [ANN] Qtractor 0.5.4 - Echo Victor shouts out!)

2012-03-06 Thread Stefan Kersten
On 05.03.12 21:50, David Robillard wrote:
> On Mon, 2012-03-05 at 12:13 +0100, Stefan Kersten wrote:
>> On 3/5/12 2:16 AM, David Robillard wrote:
>>> I think a very simple stand-alone API to deal with OSC message would go
>>> a long way towards making OSC more feasible for plugins or Jack apps.
>>
>> there are at least two options: a header library i've been using in a 
>> couple of projects [1] and oscpack [2]. both c++ though ...
> 
> OSCPack uses the stream-style << abuse syntax, arguably (though not
> really) the most awful thing about C++.

it's probably an attempt to provide a nicer syntax for packet creation and i
can't say i dislike it - if c++ had first class functions it probably wouldn't
be necessary. anyway, it's only syntax, and as far as i can tell packet creation
and parsing is  realtime safe in oscpack.

> OSCPP looks pretty good though.  Basically a C++ey version of what I was
> talking about.  Thanks for the pointers.
> 
> The "require a size before constructing a message" thing sucks for
> certain cases of generic construction, however this might only be really
> much of an issue for bundles which don't have that problem, so maybe
> it's not such a big deal.
>
> I have been idly wondering if a round-trip OSC<=>Atom bridge would be
> possible.  Atoms are essentially primitives (int, float, string, etc)
> with a few simple collections, all POD (vector, dictionary).  You can
> think of it as sort of a JSONish approach, but low-level rather than
> text.

it seems to be rather similar to bson [1] actually.

> I wonder how one would express a dictionary in OSC?
> 
> Assuming for the moment embracing and extending types is fine, there is
> one easy cop-out solution, make a type-tagged-blob type, the same as the
> normal one except it starts with a type int, but that's pretty opaque.
> Maybe something like [] for arrays? {kvkv...}, e.g.
> 
> /foo/adict {sssi} "name" "David" "id" 42
> 
> =
> 
> { "name": "David"
>   "id":42 }

without the need for new types you could also "abuse" the bundle system, by
interpreting bundles within the top-level bundle as dictionaries with messages
as key/value pairs; this changed semantics would need to be explicitly supported
by other applications, of course.

there's some talk about this in a thread on OSC 2.0 [2], but i couldn't find a
draft document of the new protocol revision.



[1] http://en.wikipedia.org/wiki/BSON
[2] 
http://lists.create.ucsb.edu/pipermail/osc_dev/2011-November/thread.html#1964
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC sequencer idea (was: Qtractor 0.5.4 - Echo Victor shouts out!)

2012-03-04 Thread Albert Graef

On 03/04/2012 10:44 PM, Stephen Sinclair wrote:

It seems this debate is how to represent OSC messages in a sequencer.


Hi Stephen, thanks for chiming in, so far I felt a bit like a lone voice 
in the wilderness. :) It's nice to see that there are others who see the 
need for this and are actually working on related software.


Thanks also for the link to the MappingTools project, this looks very 
interesting. I'll have to give this a whirl asap, it looks like it will 
be very useful for some things I'm working on.


Albert

--
Dr. Albert Gr"af
Dept. of Music-Informatics, University of Mainz, Germany
Email:  dr.gr...@t-online.de, a...@muwiinfa.geschichte.uni-mainz.de
WWW:http://www.musikinformatik.uni-mainz.de/ag
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] OSC sequencer idea (was: Qtractor 0.5.4 - Echo Victor shouts out!)

2012-03-04 Thread Stephen Sinclair
It seems this debate is how to represent OSC messages in a sequencer.
I've thought about this before, and the idea I always had in my head
was something tracker-like, where you would assign columns (or rows..)
to a message path, and specify whether the arguments are ints, floats,
etc.  For each argument the column would contain subcolumns with
fields allowing editing of these values.  Any row that is all "nil"
would mean "do not send a message."
The editor might allow a special column type called "note" which is
represented on-screen as a note name (A#3 or whatever) but sends out
the value as an integer or float.
Alternatively the editor could be told the min/max values of the
subcolumn and represent it as horizontal bars or a line plot, etc.

I even started working on such a thing once, with the intention of
controlling sequences for custom synths written in e.g. Chuck or
PureData.  However, I never got far with it as I had other things to
do.

In any case, in this paradigm, the user would define a patch in Pd
(or) which accepts certain control or trigger messages, and
therefore the sequencer would need to be told what messages to send
it.  No need to "standardize" the messages for any particular
representation, since it would be different for each patch anyways.
(The "sequence + patch" would be considered together as the music
file.)

What I like about this is that it would allow a user to use whatever
program he/she wants for sound synthesis, but have keep a consistent
sequencer interface.  You could even use multiple back-ends for sound
synthesis in the same track.

p.s. thanks Jonathan for bringing up libmapper.  For those who don't
know, libmapper is an attempt to create a "glue" layer for
OSC-supporting programs.  Instead of standardizing on a set of
messages, the idea is to instruct sending programs to translate their
messages into the format required by the receiver, including any data
transformation (scaling, etc).  This allows programs to use any
message names they want, keeping the usefulness of readable,
program-specific semantic naming schemes, while still being able to
connect to each other.  Still under heavy development, but it's quite
functional, web site is at http://libmapper.org

Steve

On Sun, Mar 4, 2012 at 4:27 PM, Albert Graef  wrote:
> On 03/04/2012 06:32 PM, David Robillard wrote:
>>
>> What do you mean by "pick the OSC addresses that I want"?
>
>
> I mean those symbols with the slashes that are the first part of any atomic
> OSC message like /foo/bar 4711.0. Usually such a symbol would denote the
> particular control that the value applies to. When using OSC as input to or
> output from automation, obviously I'd have to specify which OSC addresses I
> want to be mapped to which automation parameter.
>
> However, I'd actually prefer a kind of separate OSC track which would be
> connected to OSC inputs and outputs and listens for all OSC messages on its
> OSC inputs, no matter what the addresses are. So (an ASCII representation
> of) the contents of such a track might look like
>
> # delta  OSC addr  value
> 0   /foo/bar  0.78
> 10  /reverb1/wet  0.3
> 5   /foo/bar  0.66
> etc. etc.
>
> By these means the OSC track would just record any messages that it receives
> on its inputs, and I might then map them to the appropriate automation
> parameters on other (audio and MIDI) tracks in the DAW, or just have them
> played back via the OSC outputs assigned to the track, in order to drive
> some other application like Pd.
>
> Dave, will you be at LAC in April? I'd really like to discuss this in more
> detail with you, but it's much easier to do this in a room together and with
> a whiteboard and a data projector within reach. ;-) If there's enough
> interest, maybe we could do a "control beyond midi" brainstorming session at
> LAC? Maybe Rui wants to join us there, and I know that some guys at CCRMA
> are also interested in this. I guess that the organizers can allocate us a
> time slot and a room with the necessary equipment if we just ask for it.
>
> Albert
>
> P.S.: Rui, apologies for hitchhiking your thread. I hope that you will
> forgive me over a glass of good Californian wine. ;-)
>
>
> --
> Dr. Albert Gr"af
> Dept. of Music-Informatics, University of Mainz, Germany
> Email:  dr.gr...@t-online.de, a...@muwiinfa.geschichte.uni-mainz.de
> WWW:    http://www.musikinformatik.uni-mainz.de/ag
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-dev
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC for syncing

2010-06-18 Thread Olivier Guilyardi
Hi Victor,

On 06/18/2010 11:35 AM, Victor Lazzarini wrote:
> 
> a question for one of your OSC gurus out there: is it possible/a good
> idea to use OSC for syncing? How good is it for that kind of thing?
> So far I have only used it for parameter control, but is there a good
> means of using it with timing accuracy?

I can't pretend to be an OSC guru, but I've been thinking and working quite a
lot on OSC and timing accuracy.

"Syncing" can be many things, but I'll take an example: let's say that a step
sequencer sends OSC messages to a sampler. The sequencer might send timestamped
messages a bit before they ought to result in playback, to compensate message
transport time, as well as latency and related issues on the sampler side.

So sequencer sends a message at instant T-1 to tell the sampler to start
playback at instant T.

First a very practical consideration. If you use liblo, then you can't rely on
the high-level API to receive timestamped messages, because it has its own
message queues and will delay the message by itself. That forbids taking latency
into account. I made a bug report about this:
http://sourceforge.net/tracker/?func=detail&aid=2858774&group_id=116064&atid=673869

So you'll have to use the liblo lo-level API, which means extra work.

Now, the clock issues. OSC timetags are absolute timestamps, so you need a
reference clock. On a single system, that will be the system clock, and you will
certainly use gettimeofday() (altough some might disagree about this).

The problem is that the sound card has its own clock, so you're dealing with two
clocks, which causes a variety of problems, as described by Fons in hi essay
about Delay Locked loops: http://www.kokkinizita.net/papers/usingdll.pdf

/Simplifying it/, those clocks do not run at the same speed, they drift. Plus,
there's a jitter between soundcard hardware interrupts and the moment your (JACK
or whatever) process callback gets called. It's not getting called as regularly
that one would expect.

To circumvent these issues, I have been working on libtimefilter (formerly
libpendule), which is an implementation of Fons' proposal:
http://code.google.com/p/libtimefilter/

Now, last but not least, almost all of these problems would become a souvenir,
if JACK supported OSC ports, as it does for MIDI, and that of course both the
sender and receiver use that.

Hope that helps,

--
  Olivier











___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] OSC for syncing

2010-06-18 Thread Victor Lazzarini

Hi everyone,

a question for one of your OSC gurus out there: is it possible/a good  
idea to use OSC for syncing? How good is it for that kind of thing?
So far I have only used it for parameter control, but is there a good  
means of using it with timing accuracy?


Thanks a lot

Victor
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC Practices

2010-06-02 Thread Olivier Guilyardi
On 06/02/2010 12:51 AM, Paul Davis wrote:
> On Tue, Jun 1, 2010 at 4:01 PM, Olivier Guilyardi  wrote:
> 
>> Whereas OSC just looks like a generic RPC mechanism, thus requiring some
>> development knowledge or custom-made tools.
> 
> this is exactly correct.
> 
> there is no established way to send an OSC message to an arbitrary
> receiver and reliably accomplish anything at all. there is no standard
> message set to ask the receiver to play a note, stop playing a note.
> ditto for transport control, and just about everything else you could
> imagine. in short there are no standards.
> 
> the only thing that does exist is a "meta-standard" to query the OSC
> namespace, and arguably another meta-standard to get the current value
> of any readable target within the namespace.

This relates to I was just thinking about before reading your mail. I was
telling myself that OSC is a bit like XML, which is a meta-language, thus a
specification that allows to write languages. For example, RSS can be considered
a such language.

> as you have surmized, in its current state OSC cannot possibly be
> considered as a replacement for MIDI as a generic communication
> protocol for musical-related tasks. what it does to is to provide a
> common transport mechanism and a standard namespace convention (the
> lowly '/'), and the agreement to use text messages which makes adding
> certain capabilities to a pair of receivers and transmitters just a
> bit simpler than it otherwise would be.

Well, maybe that it's not OSC that must evolve, just as XML is fine where it
stands. But there could be a higher-level specification, (as RSS in my example),
which programs and devices could choose to follow.

I'm thinking about some quite open standard. Not something which is very strict,
but certain rules, or better said recommendations, which try to bring some
coherence into the OSC (audio) world. Some very simple primitives could be:

1. in/out symmetry, eg: send and receive from/to /path/volume %f
2. put "coordinates", such as track index in the path, not as a value
3. always use zero (or one, whatever) based indexes
4. maybe some range specification for level controls
5. some recommendation for encoding notes
6. etc...

Anyway, before a such specification/standard exists, I suppose I have to look
around, and draw my own conclusions..

Therefore, it's currently a matter of "practices".. So, if anyone who has a good
knowledge of these can shred some light on the specific issues that I mention,
I'll be glad to read about it.

--
  Olivier

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC Practices

2010-06-01 Thread Paul Davis
On Tue, Jun 1, 2010 at 4:01 PM, Olivier Guilyardi  wrote:

> Whereas OSC just looks like a generic RPC mechanism, thus requiring some
> development knowledge or custom-made tools.

this is exactly correct.

there is no established way to send an OSC message to an arbitrary
receiver and reliably accomplish anything at all. there is no standard
message set to ask the receiver to play a note, stop playing a note.
ditto for transport control, and just about everything else you could
imagine. in short there are no standards.

the only thing that does exist is a "meta-standard" to query the OSC
namespace, and arguably another meta-standard to get the current value
of any readable target within the namespace.

as you have surmized, in its current state OSC cannot possibly be
considered as a replacement for MIDI as a generic communication
protocol for musical-related tasks. what it does to is to provide a
common transport mechanism and a standard namespace convention (the
lowly '/'), and the agreement to use text messages which makes adding
certain capabilities to a pair of receivers and transmitters just a
bit simpler than it otherwise would be.

--p
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC Practices

2010-06-01 Thread Olivier Guilyardi
On 06/01/2010 09:55 PM, Will Light wrote:
> It's interesting that you mention the Monome.  There has been
> discussion about how the OSC stuff is structured and there are a few
> efforts to improve it.  I went and dug up this thread:
> http://www.vidvox.net/phpBB2/viewtopic.php?p=14786 .  It talks about
> how the Monome protocol is a bit non-standard and may provide a few of
> the "best practices" that you're looking for.

Thanks for this link. Indeed they seem to think about encoding the grid position
into the path.

dlublin says:
"Right now the monome sends a list of arbitrary data to "/128/press" to describe
a button at a physical location and its state.
However, it would make a lot more sense if instead it would simply send a single
value to "/128/press/x/y/", where the col and row information are encoded
directly into a unique address path- this second method would work with even the
most primitive implementation for receiving OSC values, without any need for an
API."

That makes sense to me.

Nevertheless, they seem to be missing the in/out symmetry idea, which I find
very interesting.

--
  Olivier
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC Practices

2010-06-01 Thread Harry Van Haaren
To be honest, Ill agree with you there that the OSC details seem a little
more vague (or "expandable"... whatever we call it).
I found looking at what Ardour done to handle its OSC stuff useful, but im
not sure that's the "PC" way to do it... Ardour guys..?

On the other hand, because its so much more understandable to use, I could
set up my own OSC message translator
in minutes, while if I was trying to suss out MIDI CC's & Program changes,
Id be pulling hair out of my head. That may be
specific to me though, I'm don't have that much experience with Hardware
MIDI stuff.

In Response to Olivier's:

> To be honest, I am very confused about the idea that OSC is some kind of
> MIDI
> successor. The MIDI protocol is a rather defined, with notes, CC, etc..
>
>
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC Practices

2010-06-01 Thread Olivier Guilyardi
On 06/01/2010 08:51 PM, Harry Van Haaren wrote:
> Ill just say my 2 cents regarding point number 1:
> 
> 1. the track order is reversed, the first track being at the bootom
> 
> It seems that's the way with most physical controllers too, I've got an
> Akai LPD8,
> and "bottom-left" counts from pad 1, upwards. See the following image of
> an Akai 16 pad:
> http://www.jmsinfo.com/images/Akai_MPD18_MIDI_USB_Drumpad.jpg

Okay, thanks for this info.

> 
> I'm not sure how your program works internally as to what the best
> solution is to
> solving this problem.
> 
> In my WIP project/ /I've used LibLO for OSC, and create a function in my
> Sampler class which
> takes an *int* parameter as for which pad to play. This seems a pretty
> clean solution to me,
> however as I say, I havent looked at your sources as to what's the best
> implementation.

Really, my question isn't about the implementation. I am asking about OSC
protocol best design practices, in general. This is not Jackbeat specific at all
to me.

What about the in/out symmetry that I mentioned? Should the track position go
into the path or be passed as a value? Should indexes be zero-based? Etc..

To be honest, I am very confused about the idea that OSC is some kind of MIDI
successor. The MIDI protocol is a rather defined, with notes, CC, etc..

Whereas OSC just looks like a generic RPC mechanism, thus requiring some
development knowledge or custom-made tools.

--
  Olivier

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC Practices

2010-06-01 Thread Will Light
It's interesting that you mention the Monome.  There has been
discussion about how the OSC stuff is structured and there are a few
efforts to improve it.  I went and dug up this thread:
http://www.vidvox.net/phpBB2/viewtopic.php?p=14786 .  It talks about
how the Monome protocol is a bit non-standard and may provide a few of
the "best practices" that you're looking for.

-w

On Tue, Jun 1, 2010 at 5:27 AM, Olivier Guilyardi  wrote:
> Hi everyone,
>
> a Jackbeat user is currently trying to use TouchOSC, an iPhone app, as a
> controller, and there is a need to translate in/out OSC messages.
>
> I have looked at TouchOSC messages, and the translation is nothing like
> straightforward. There is a so-called BeatMachine[1] controller in TouchOSC,
> which looks like a drum machine, but in the messages that it sends:
>
> 1. the track order is reversed, the first track being at the bootom
> 2. the indexes are one-based in TouchOSC, and zero-based in Jackbeat
> 3. the track/beat position is transmitted as a path element instead of a value
>
> The fact that some translation is needed between OSC units is quite normal to
> me, but I would like to try and follow some wide-spread practices, if any, 
> maybe
> refactoring the Jackbeat OSC dialect, to make such translation easier.
>
> I originally looked at some Monome messages docs[2], and that's the reason for
> 2. and 3. above. The point 1. seems absolutely odd to me however.
>
> Now, there's another thing: currently Jackbeat features quite a few OSC
> methods/commands but little OSC events[3]. This forbids using search an 
> external
> controller as some kind of UI replacement. For instance, volume sliders can be
> controlled, but no event is sent when they change. One of the reason for this
> lack is that I was unsure about the right protocol to choose..
>
> So, in TouchOSC, input and output messages seem to always be symmetrical, 
> which
> looks like a clever and intuitive design to me. For instance, a slider both
> sends and receives messages at /1/fader1 (example). And you just can't setup a
> different prefix for in and out.
>
> Once again, this isn't the way Monome is doing it: it sends /40h/press, and
> receives at /40h/led.
>
> So I'm a bit confused. What would be ideal is to follow some kind of practices
> and/or standard, so that, in many cases, translation is only a matter of
> changing OSC prefixes. And if that's not realistic, then I would like to avoid
> some of the inconsistencies listed above with tools as TouchOSC and such.
>
> Is there any such standard or common/recommended practices?
>
> Cheers,
>
> [1] http://hexler.net/pub/touchosc/touchosc-manual-v1-1.pdf
> [2] http://docs.monome.org/doku.php?id=tech:protocol:osc
> [3] http://jackbeat.samalyse.org/wiki/BasicUsage#OSCInterface
>
> --
>  Olivier
> ___
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-dev
>
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC Practices

2010-06-01 Thread Harry Van Haaren
Ill just say my 2 cents regarding point number 1:

1. the track order is reversed, the first track being at the bootom

It seems that's the way with most physical controllers too, I've got an Akai
LPD8,
and "bottom-left" counts from pad 1, upwards. See the following image of an
Akai 16 pad:
http://www.jmsinfo.com/images/Akai_MPD18_MIDI_USB_Drumpad.jpg

I'm not sure how your program works internally as to what the best solution
is to
solving this problem.

In my WIP project* *I've used LibLO for OSC, and create a function in my
Sampler class which
takes an *int* parameter as for which pad to play. This seems a pretty clean
solution to me,
however as I say, I havent looked at your sources as to what's the best
implementation.

HTH, -Harry
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


[LAD] OSC Practices

2010-06-01 Thread Olivier Guilyardi
Hi everyone,

a Jackbeat user is currently trying to use TouchOSC, an iPhone app, as a
controller, and there is a need to translate in/out OSC messages.

I have looked at TouchOSC messages, and the translation is nothing like
straightforward. There is a so-called BeatMachine[1] controller in TouchOSC,
which looks like a drum machine, but in the messages that it sends:

1. the track order is reversed, the first track being at the bootom
2. the indexes are one-based in TouchOSC, and zero-based in Jackbeat
3. the track/beat position is transmitted as a path element instead of a value

The fact that some translation is needed between OSC units is quite normal to
me, but I would like to try and follow some wide-spread practices, if any, maybe
refactoring the Jackbeat OSC dialect, to make such translation easier.

I originally looked at some Monome messages docs[2], and that's the reason for
2. and 3. above. The point 1. seems absolutely odd to me however.

Now, there's another thing: currently Jackbeat features quite a few OSC
methods/commands but little OSC events[3]. This forbids using search an external
controller as some kind of UI replacement. For instance, volume sliders can be
controlled, but no event is sent when they change. One of the reason for this
lack is that I was unsure about the right protocol to choose..

So, in TouchOSC, input and output messages seem to always be symmetrical, which
looks like a clever and intuitive design to me. For instance, a slider both
sends and receives messages at /1/fader1 (example). And you just can't setup a
different prefix for in and out.

Once again, this isn't the way Monome is doing it: it sends /40h/press, and
receives at /40h/led.

So I'm a bit confused. What would be ideal is to follow some kind of practices
and/or standard, so that, in many cases, translation is only a matter of
changing OSC prefixes. And if that's not realistic, then I would like to avoid
some of the inconsistencies listed above with tools as TouchOSC and such.

Is there any such standard or common/recommended practices?

Cheers,

[1] http://hexler.net/pub/touchosc/touchosc-manual-v1-1.pdf
[2] http://docs.monome.org/doku.php?id=tech:protocol:osc
[3] http://jackbeat.samalyse.org/wiki/BasicUsage#OSCInterface

--
  Olivier
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev


Re: [LAD] OSC: Divide & Conquer, or build a Stronghold?

2009-12-18 Thread Dave Phillips
Greetings,

I have no idea if this is useful:

http://www.niallmoody.com/otherprograms.htm

Check out Mouse2OSC.

Niall's made some other nice software. He graciously updated Mouse2OSC 
so I could test it with Common Music/GRACE. I haven't got around to 
those tests yet, but I did check it out with AVSynthesis. It worked 
perfectly.

Best,

dp

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] OSC: Divide & Conquer, or build a Stronghold?

2009-12-18 Thread Stephen Sinclair
On Fri, Dec 18, 2009 at 9:53 AM, nescivi  wrote:
> On Thursday 17 December 2009 18:41:31 Harry Van Haaren wrote:
>> Hey all,
>>
>> I've been keeping myself busy lately, mostly with Python and OSC,
>> and I'm using multiple clients/controllers to send messages to a
>> sampler with an OSC interface.
>>
>> From this experience it seems to me a good idea, to have a kind of
>>  "central"
>>
>> place where all Audio programs "Announce" thier OSC port & program name &
>> version,
>> so the linux-audio-desktop can be a little more "coherent" for lack of a
>> better word.. ;-)
>>
>> We could create a kind of "Master OSC Host" which would keep track of
>> which clients are running, and which ports they are using. This would be
>> easiest
>> to do if EACH client, would "register" itself on an agreed port.
>>
>> So if a client wants to read some information, they could query the
>> "Master OSC Host" with a standardised set of questions about the current
>> state of QTractor/Ardour/.
>
>
> I think the OSC protocol in and of itself is too general for this to make
> sense on a global level.
>
> It seems you have already in mind a specific subset of kinds of data to
> exchange between programs.
>
>
> There have already been several approaches for this on specific topics.
>
> Such as the Digital Orchestra Toolkit Mapping tools,
> http://idmil.org/software/mappingtools, for mapping data between digital
> instruments/controllers, and software synths. There they define how to
> announce your controller and how to announce your synth, and then you can
> create arbitrary mappings.
>
> Personally, I have worked on an osc-based data-exchange framework for
> exchanging data (such as sensor data, but basically any data) between
> different collaborators, creating light, sound, video or other media with
> their programs, that work on interactive performances or installations.
> See http://sensestage.hexagram.ca
>
> In the WONDER software (http://swonder.sourceforge.net) we created a central
> control host which transfers and translates OSC data between the different
> components of the software. Some of that concept could be generalized for
> programs to share any kind of osc messages with each other.
>
> There are also some attempts amongst livecoders to share clocks for playing
> together...
>
>
> To summarise, it could be an interesting project, but be aware that, since the
> OSC standard is so open - in principle it doesn't even specify the method of
> transport, though most often UDP (in most cases) or TCP/IP (fewer cases) is
> used, but there are also implementations that use a serial port transmission
> (very few cases) - (getting back to my sentence) and the implementation and
> use of it in various programs varies a lot, some are only taking incoming
> transmissions and don't send messages, if based on UDP and TCP/IP, some send
> from a fixed port, some don't, some can listen to multicast messages, others
> don't. You have to consider whether you want to require them to adhere to a
> specific namespace, or whether you want to work with their existing
> namespaces.
>
> That being said... a general purpose osc-mapping program could be really
> useful... something you can put between two programs (one sending, one
> receiving), that translates from one namespace to another, and possibly does
> the required translations.

Just to add...

I am one of the contributors for the Digital Orchestra Toolkit (hi
Marije!) and I am currently working on a C implementation, so this
might be of interest once it's ready.  (It's coming along well, should
be public in January.. but I can make sources public sooner if there's
any interest.)

This solution is somewhat domain-specific, designed for creating
arbitrary mappings between controllers (input devices) and
synthesizers.  So, not necessarily an answer to the proposal of this
thread, but perhaps interesting nonetheless.

Basically we found ourselves in a situation where we were making
Max/MSP patches to read input from digital gestural controllers,
usually by reading serial data from Arduinos, and we wished to perform
signal condition and connect these values to inputs to sensors.

We decided to try and design an approach which would _not_ require
maintaining some kind of central database, and that would work across
a network.

So the Digital Orchestra Mapper as we'll call it is basically a set of
standard messages which are communicated on a multicast port.  Each
device (either controller or synth) announces itself on this common
bus, and then we made a Max/MSP GUI which can be used to assign
connections between outputs and inputs for known devices.  These
connections may have arbitrary operations applied to them.  From the
controller's point of view it is simply outputting signals, but they
pass through a "router" which converts these signals into different
messages before actually sending them on the network.  There is one
router per connection, and the router is assigned to a specific
d

Re: [LAD] OSC: Divide & Conquer, or build a Stronghold?

2009-12-18 Thread nescivi
On Thursday 17 December 2009 18:41:31 Harry Van Haaren wrote:
> Hey all,
> 
> I've been keeping myself busy lately, mostly with Python and OSC,
> and I'm using multiple clients/controllers to send messages to a
> sampler with an OSC interface.
> 
> From this experience it seems to me a good idea, to have a kind of
>  "central"
> 
> place where all Audio programs "Announce" thier OSC port & program name &
> version,
> so the linux-audio-desktop can be a little more "coherent" for lack of a
> better word.. ;-)
> 
> We could create a kind of "Master OSC Host" which would keep track of
> which clients are running, and which ports they are using. This would be
> easiest
> to do if EACH client, would "register" itself on an agreed port.
> 
> So if a client wants to read some information, they could query the
> "Master OSC Host" with a standardised set of questions about the current
> state of QTractor/Ardour/.


I think the OSC protocol in and of itself is too general for this to make 
sense on a global level.

It seems you have already in mind a specific subset of kinds of data to 
exchange between programs.


There have already been several approaches for this on specific topics.

Such as the Digital Orchestra Toolkit Mapping tools, 
http://idmil.org/software/mappingtools, for mapping data between digital 
instruments/controllers, and software synths. There they define how to 
announce your controller and how to announce your synth, and then you can 
create arbitrary mappings.

Personally, I have worked on an osc-based data-exchange framework for 
exchanging data (such as sensor data, but basically any data) between 
different collaborators, creating light, sound, video or other media with 
their programs, that work on interactive performances or installations.
See http://sensestage.hexagram.ca

In the WONDER software (http://swonder.sourceforge.net) we created a central 
control host which transfers and translates OSC data between the different 
components of the software. Some of that concept could be generalized for 
programs to share any kind of osc messages with each other.

There are also some attempts amongst livecoders to share clocks for playing 
together...


To summarise, it could be an interesting project, but be aware that, since the 
OSC standard is so open - in principle it doesn't even specify the method of 
transport, though most often UDP (in most cases) or TCP/IP (fewer cases) is 
used, but there are also implementations that use a serial port transmission 
(very few cases) - (getting back to my sentence) and the implementation and 
use of it in various programs varies a lot, some are only taking incoming 
transmissions and don't send messages, if based on UDP and TCP/IP, some send 
from a fixed port, some don't, some can listen to multicast messages, others 
don't. You have to consider whether you want to require them to adhere to a 
specific namespace, or whether you want to work with their existing 
namespaces.

That being said... a general purpose osc-mapping program could be really 
useful... something you can put between two programs (one sending, one 
receiving), that translates from one namespace to another, and possibly does 
the required translations.

sincerely,
Marije
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] OSC: Divide & Conquer, or build a Stronghold?

2009-12-18 Thread Florian Faber
Harry,

> From this experience it seems to me a good idea, to have a kind of "central"
> place where all Audio programs "Announce" thier OSC port & program name
> & version,
> so the linux-audio-desktop can be a little more "coherent" for lack of a
> better word.. ;-)

You want service discovery. There is already something out there that
does that, it's called DNS-SD - and it is probably already running on
your system :)


Flo
-- 
Machines can do the work, so people have time to think.
public key DA43FEF4  x-hkp://wwwkeys.eu.pgp.net
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] OSC: Divide & Conquer, or build a Stronghold?

2009-12-17 Thread Paul Davis
On Thu, Dec 17, 2009 at 6:41 PM, Harry Van Haaren  wrote:
> This would mean that any program that wants to find out which Jack B:B:T or
> Frame were on
> or if there's been XRuns, wouldnt have to be a JACK client, because its been
> abstracted to
> the "Master OSC Host".

i don't many comments on this overall idea, but i do find the notion
that a program wants to know about the internal state of JACK without
being a JACK client, and yet, unlike a simple shell script, is willing
to participate in a 2 way IPC protocol to find out a little  odd.

also, please keep in mind that the basic semantics of OSC make
query:response interactions really rather tricky to implement in a
robust way. meaning that they will work in 98% of cases, and the other
2% will just either unfathomable and/or unfixable.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


[LAD] OSC: Divide & Conquer, or build a Stronghold?

2009-12-17 Thread Harry Van Haaren
Hey all,

I've been keeping myself busy lately, mostly with Python and OSC,
and I'm using multiple clients/controllers to send messages to a
sampler with an OSC interface.

>From this experience it seems to me a good idea, to have a kind of "central"

place where all Audio programs "Announce" thier OSC port & program name &
version,
so the linux-audio-desktop can be a little more "coherent" for lack of a
better word.. ;-)

We could create a kind of "Master OSC Host" which would keep track of
which clients are running, and which ports they are using. This would be
easiest
to do if EACH client, would "register" itself on an agreed port.

So if a client wants to read some information, they could query the
"Master OSC Host" with a standardised set of questions about the current
state of QTractor/Ardour/.

This would mean that any program that wants to find out which Jack B:B:T or
Frame were on
or if there's been XRuns, wouldnt have to be a JACK client, because its been
abstracted to
the "Master OSC Host".

I think this method would allow better inter program operability, as any
"useful" information
that one program could share, other could read.

This would be most effective, if we also requested that programs followed a
specific naming
convention for features that each program has.
EG:
Save :  //save_state
Load:  //load_state
etc

I'd like to get the communities feelings towards an initiative like this,
feedback/criticism/opinions welcomed!
-Harry Haaren
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev