OSC Receiver and Sender

Posted: Mon Dec 18, 2017 12:41 pm
by w_ellis
I'll leave the original message here for posterity, but there are now two modules available, an OSC Sender and an OSC Receiver. Pick up the latest release from Github here and have fun! Here's some more detailed documentation on how to use the two modules.

=============

Hi all,

Inspired by the recent buzz of activity, I had a bit of a brain wave and cracked open Visual Studio for the first time in a while to create an OSC Receiver module for the SDK. It's super basic at the moment, but I wanted to get some feedback on what would be the most useful way to evolve it.

You can download it here: ScopeOSCReceiver.dll and at the moment it only has a 16 element output int array as an interface. It's listening on port 8000 and will receive messages with the format /<paramnumber>, e.g. /0 is the address for the first parameter, /1 for the second etc.

My planned next step will be to add a String input array to allow the addresses to be set through the module interface and an integer for the listening port. I'm not sure if it needs much else for now, but let me know what you think. I could add a console view to see messages as they arrive, but that would be quite a bit more work, so I'd do that later.

I'll also build an OSC sender, but that's actually a bit easier, so I thought I'd start with the trickier case.

I'd love to collaborate with others on building either a modular module to encapsulate this, or it could be incorporated into the controller managers I spotted in use by OS and RA. In particular, it would be great to get some help with an interface in the SDK to provide OSC address strings into an array, so I can test that bit. Essentially it would just need 16 string editors connected to an array, but my SDK skillz suck!

Let me know what you think!
Will


Re: OSC Receiver

Posted: Mon Dec 18, 2017 12:44 pm
by w_ellis
P.S. As a bit of additional background, we had a really tough time trying to get ScopeSync to handle Input + Output well, as the SDK doesn't really have a nice way of incorporating a DLL that is bi-directional. This idea of splitting into 2 modules could be an alternative approach to making some progress on that again.

Also, I'd like to thank DragonSF for a tip in one of the threads that allowed me to work with an output array successfully for the first time. It turns out that as a C noob, I hadn't been correctly allocating my memory, hence lots of access violations. Let's just say that ScopeFX isn't beginner-friendly ;)


Re: OSC Receiver

Posted: Mon Dec 18, 2017 2:38 pm
by jksuperstar
With an eye on the future, can you

assign midi or CV to OSC input.or.output?
At a top-level, auto detect and roll up all OSC parameters (in or out)?

That might help one day auto-detect all parameters in a synth, or even project, to auto/assisted assignment to controllers (like BCR2000, or Ableton Push via a M4L device, etc.) Or for DAW automation...a possible replacement for XTC mode.


Re: OSC Receiver

Posted: Mon Dec 18, 2017 10:04 pm
by DragonSF
I'm willing to cooperate, because I've got some experience from my EXT-MIDI converter. CV output is good, but MIDI out has problems.


Re: OSC Receiver

Posted: Tue Dec 19, 2017 1:10 am
by faxinadu
hey will, is this public domain? am i allowed to use this in a commercial device?

you just turned me on an idea :)


Re: OSC Receiver

Posted: Tue Dec 19, 2017 4:39 am
by w_ellis
faxinadu wrote: Tue Dec 19, 2017 1:10 am hey will, is this public domain? am i allowed to use this in a commercial device?
I'm planning to keep everything open source, so there shouldn't be a problem, but let's worry about that if there's any serious money to be made ;)

I'd have to check on the exact details of licensing and how it would work for using an open source dll in a commercial project, but here's an idea of the worst case: https://juce.com/get-juce (i.e. it might need a splash screen)


Re: OSC Receiver

Posted: Tue Dec 19, 2017 4:44 am
by w_ellis
jksuperstar wrote: Mon Dec 18, 2017 2:38 pm assign midi or CV to OSC input.or.output?
No plan to do anything about that, but those would be standard things that can be done in Scope SDK.

Compared to (Scope's version of CV), the control resolution would be the same, but CV runs over sync, which is properly real-time, whereas the OSC handling will be at async control rates, which are every 50-100ms. In testing that seems to be good enough for most cases, but not if you wanted to do audio-rate modulation (which isn't really what OSC is designed for).
jksuperstar wrote: Mon Dec 18, 2017 2:38 pm At a top-level, auto detect and roll up all OSC parameters (in or out)?
I'd want to understand the use case a bit better. This is mostly about being able to control Scope synths + effects using OSC, which has the advantage of full 32bit resolution and being able to run over a network (wired or wifi).


Re: OSC Receiver

Posted: Tue Dec 19, 2017 4:49 am
by w_ellis
DragonSF wrote: Mon Dec 18, 2017 10:04 pm I'm willing to cooperate, because I've got some experience from my EXT-MIDI converter. CV output is good, but MIDI out has problems.
Great, I'll get in touch over PM once I have something that should parse a String Array at input for OSC addresses. Feel free to have a poke around at the code, in case you spot anything I could improve (I'm sure there's plenty!) Most of the relevant stuff is here: https://github.com/bcmodular/scopeosc/t ... ver/Source


Re: OSC Receiver

Posted: Tue Dec 19, 2017 5:32 am
by faxinadu
separate output pads for each element would be cool instead of just the array


Re: OSC Receiver

Posted: Tue Dec 19, 2017 6:46 am
by w_ellis
faxinadu wrote: Tue Dec 19, 2017 5:32 am separate output pads for each element would be cool instead of just the array
The idea for now was to make it quite flexible, so we can tweak the number of outputs easily etc. I'm not an expert in SDK, but isn't it easy to hook up an array splitter?


Re: OSC Receiver

Posted: Tue Dec 19, 2017 6:47 am
by faxinadu
trying this out, gimme a bit, having a hard time on the java side im real noob :)


Re: OSC Receiver

Posted: Tue Dec 19, 2017 6:48 am
by faxinadu
so to send the value 12 to the first array slot i would need to:

outMsg = "/0 12";

gonna try now


Re: OSC Receiver

Posted: Tue Dec 19, 2017 6:50 am
by w_ellis
Exactly... easy to do using a udpsend module in Max For Live, or Reaper has OSC tools built in too. I'm sure it's easy to do in TouchOSC too, but it hurt my head when I tried to do it in a hurry the other night!


Re: OSC Receiver

Posted: Tue Dec 19, 2017 6:54 am
by faxinadu
ha yes the thing is i am trying in Android Studio :0


Re: OSC Receiver

Posted: Tue Dec 19, 2017 6:56 am
by faxinadu
i mean you don't even need osc tools as long as you transmit the message over the right ip to the right port yeah?


Re: OSC Receiver

Posted: Tue Dec 19, 2017 6:57 am
by w_ellis
As long as you're using UDP, not TCP, yes.


Re: OSC Receiver

Posted: Tue Dec 19, 2017 6:57 am
by faxinadu

Code: Select all

 private void runTcpClient() {
        try{
            Socket s = new Socket("192.168.1.13", 5555);
            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
            String outMsg = "";
            outMsg = "/0 12";
            out.write(outMsg);
            out.flush();
            out.close();
            s.close();
        }
i think something like this should do it, but im struggling to connect it to a button yet


Re: OSC Receiver

Posted: Tue Dec 19, 2017 6:58 am
by faxinadu
ahhh this is tcp i think


Re: OSC Receiver

Posted: Tue Dec 19, 2017 6:59 am
by faxinadu
ok so this:

http://www.roman10.net/2011/11/22/andro ... h-example/

Code: Select all

private void runUdpClient()  {
    String udpMsg = "hello world from UDP client " + UDP_SERVER_PORT;
    DatagramSocket ds = null;
    try {
        ds = new DatagramSocket();
        InetAddress serverAddr = InetAddress.getByName("127.0.0.1");
        DatagramPacket dp;
        dp = new DatagramPacket(udpMsg.getBytes(), udpMsg.length(), serverAddr, UDP_SERVER_PORT);
        ds.send(dp);
    } catch (SocketException e) {
        e.printStackTrace();
    }catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (ds != null) {
            ds.close();
        }
    }
}


Re: OSC Receiver

Posted: Tue Dec 19, 2017 7:03 am
by jksuperstar
[quote=w_ellis post_id=332668 time=1513687473
I'd want to understand the use case a bit better. This is mostly about being able to control Scope synths + effects using OSC, which has the advantage of full 32bit resolution and being able to run over a network (wired or wifi).
[/quote]

I was thinking of Copperlan, the way a remote end can present a list of available parameters to choose from. But maybe I need to know the limitations of OSC better first.


Re: OSC Receiver

Posted: Tue Dec 19, 2017 7:51 am
by w_ellis
faxinadu wrote: Tue Dec 19, 2017 6:59 am ok so this:
http://www.roman10.net/2011/11/22/andro ... h-example/
Yup, Datagram Sockets is what you want!


Re: OSC Receiver

Posted: Tue Dec 19, 2017 7:55 am
by w_ellis
jksuperstar wrote: Tue Dec 19, 2017 7:03 am I was thinking of Copperlan, the way a remote end can present a list of available parameters to choose from. But maybe I need to know the limitations of OSC better first.
Yeah, probably looking to walk before we can run :) I had a look into Copperlan a while back and from an implementation perspective it's a bit of a nightmare. Super complex and a lot of features that I imagine a tiny fraction of people would use.


Re: OSC Receiver

Posted: Tue Dec 19, 2017 8:16 am
by faxinadu

Code: Select all

package c.oceanswift.scope1;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       
        final Button button = findViewById(R.id.Randomizer);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                    String udpMsg = "/0 12";
                    DatagramSocket ds = null;
                    try {
                        ds = new DatagramSocket();
                        InetAddress serverAddr = InetAddress.getByName("192.168.1.13");
                        DatagramPacket dp;
                        dp = new DatagramPacket(udpMsg.getBytes(), udpMsg.length(), serverAddr, 8000);
                        ds.send(dp);
                    } catch (SocketException e) {
                        e.printStackTrace();
                    }catch (UnknownHostException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (Exception e) {
                        e.printStackTrace();
                    } finally {
                        if (ds != null) {
                            ds.close();
                        }
                    }
            }
        });
    }
    }
any hints why this isnt working? its a button on that is supposed to send on click


Re: OSC Receiver

Posted: Tue Dec 19, 2017 8:21 am
by w_ellis
Sometimes there can be issues with firewalls, especially when sending across LAN. You might need to add an exception to a firewall on the listening PC.

I'm assuming you don't have any errors from the app? You could also use something like Wireshark to listen for the messages.


Re: OSC Receiver

Posted: Tue Dec 19, 2017 8:23 am
by faxinadu
i don't have any compile errors but i have some debugger errors when clicking the button. its very much possible i have errors heh. yah im grabbing a sniffer, but imo my code is wrong


Re: OSC Receiver

Posted: Tue Dec 19, 2017 12:36 pm
by faxinadu
i think i got better java code now, but checking via the steps outlined in the link, it does not seem like anything is listening on port 8000 on my pc. i got the module open in sdk.

https://stackoverflow.com/questions/481 ... on-windows


Re: OSC Receiver

Posted: Tue Dec 19, 2017 12:44 pm
by w_ellis
The problem is that all those answers are talking about TCP. Listening on UDP is quite different. Mostly you just want to see if the messages are arriving on your machine now, which is where Wireshark comes in.


Re: OSC Receiver

Posted: Tue Dec 19, 2017 12:49 pm
by faxinadu
its showing udp answers too....

yeah im also with wireshark checking


Re: OSC Receiver

Posted: Tue Dec 19, 2017 1:14 pm
by faxinadu
aaaaa.png
aaaaa.png (180.33 KiB) Viewed 3982 times

so as far as i can see i am both transiting and receiving but nada on scope


Re: OSC Receiver

Posted: Tue Dec 19, 2017 1:32 pm
by w_ellis
Sorry, I only skimmed the page and saw all the stuff about TCP. It looks like you're doing the right thing with your app.

I'm actually just working on the OSC Sender, which I'll probably finish tomorrow. That will at least make it easy to check that stuff is working locally.

Btw. how are you checking that you're getting something on Scope? I generally just plug in one of Simon's Pipe modular modules and look at the values there. You have to be a bit careful with the readouts though, as the SDK often doesn't update them without explicitly refreshing.


Re: OSC Receiver

Posted: Tue Dec 19, 2017 1:32 pm
by w_ellis
Unfortunately have to go to bed now, as teething baby will be keeping us up all night, but hope to make more progress tomorrow!


Re: OSC Receiver

Posted: Tue Dec 19, 2017 1:51 pm
by faxinadu
yeah but once a value is sent, it is held in the array until a new one comes in yeah? its not momentary and reverts... so i should have seen my magic little 12 there by now ehhehe :) tried refreshing, clicking and declicking the module, going into the array with f2 and other wishful things... hmmm not sure what else to try, kinda stoked and shocked i even got the android part to work (lots of copy paste from online codes heeh).


Re: OSC Receiver

Posted: Tue Dec 19, 2017 2:15 pm
by faxinadu
ok i just verified your module works using some random android app called QuickOsc! so still something im doing isn't right


Re: OSC Receiver

Posted: Tue Dec 19, 2017 2:26 pm
by faxinadu
oscc.png
oscc.png (89.88 KiB) Viewed 3966 times
it seems the QuickOsc is working via OSC protocol while mine is over UDP... those are the differences i spotted


Re: OSC Receiver

Posted: Tue Dec 19, 2017 10:26 pm
by faxinadu
EDIT: fixed issue, i didn't notice the module inherits voices and it was getting 0 voices, sorry my bad, but yeah something to make sure when testing!

ok i have done some more testing and it seems the sdk module is not so reliable.

with the app that i confirmed works, and also seeing it transmit every button press over wireshark without problems, the sdk module seems to work only some of the time.

i have also forwarded the port via my router to the target pc as well as activated dmz host for good measure.

on same procedure ie open sdk, open the module and trasnmit to it sometimes it will connect and sometimes not.


Re: OSC Receiver

Posted: Tue Dec 19, 2017 11:00 pm
by faxinadu
eheh ok new issue - i can not get it to update anything real time.

osc module is connected to an array viewer that has selcount input and value output. a 0-1 normal scope button is connected to the value output.

quickosc is sending a 0 and a 1. the osc module is getting the info and it is passed to the splitter - but the information is not updating real time, only if and when i physically change the selcount to another sel and back, will it show the change.

i am not sure if its an issue from the osc module or the way to view arrays, but i anticipated this stuff i have been banging my head against the wall with some scope array issues lately, that is why i asked for 16 outputs instead of an array.


Re: OSC Receiver

Posted: Tue Dec 19, 2017 11:14 pm
by DragonSF
Scope arrays are a mess. Having 16 outputs instead of an array is (IMHO) the preferred way. And arrays are not updated automatically. You need to reload/reconnect the module to get an update.


Re: OSC Receiver

Posted: Tue Dec 19, 2017 11:20 pm
by DragonSF
w_ellis wrote: Tue Dec 19, 2017 4:49 am
DragonSF wrote: Mon Dec 18, 2017 10:04 pm I'm willing to cooperate, because I've got some experience from my EXT-MIDI converter. CV output is good, but MIDI out has problems.
Great, I'll get in touch over PM once I have something that should parse a String Array at input for OSC addresses. Feel free to have a poke around at the code, in case you spot anything I could improve (I'm sure there's plenty!) Most of the relevant stuff is here: https://github.com/bcmodular/scopeosc/t ... ver/Source
You shouldn't do this:
asyncOut[OUTPAD_PARAMS].itg = (int)malloc(4 * numParameters);
You have a memory leak here. I'd allocate the memory only once and re-use it. In your case, every per second you are allocating 640bytes=>1h about 2.5 MB of data, which you are not releasing. Scope does not free the data.

And I'm confused:
class ScopeOSCServer : private OSCReceiver

Are you trying to create a server or receiver?


Re: OSC Receiver

Posted: Tue Dec 19, 2017 11:22 pm
by faxinadu
DragonSF wrote: Tue Dec 19, 2017 11:14 pm Scope arrays are a mess. Having 16 outputs instead of an array is (IMHO) the preferred way.
for sure!

and anyways......... why just 16? any chance for 64? :)


Re: OSC Receiver

Posted: Tue Dec 19, 2017 11:25 pm
by DragonSF
faxinadu wrote: Tue Dec 19, 2017 11:22 pm
DragonSF wrote: Tue Dec 19, 2017 11:14 pm Scope arrays are a mess. Having 16 outputs instead of an array is (IMHO) the preferred way.
for sure!

and anyways......... why just 16? any chance for 64? :)
What ever you can handle! (Normally you have to write an interface code for each pin, but my dll generator takes care of this stuff).


Re: OSC Receiver

Posted: Tue Dec 19, 2017 11:34 pm
by faxinadu
Message sent using actual OSC protocol (works):
udp1.png
udp1.png (35.44 KiB) Viewed 7729 times
message sent over UDP protocol (no bueno):
udp2.png
udp2.png (38.34 KiB) Viewed 7729 times


Re: OSC Receiver

Posted: Tue Dec 19, 2017 11:47 pm
by faxinadu
i am gonna try with javaOsc today but
a) i suck, its literally my second day with java hehe
b) its not public domain and has attributions

but lets see..


Re: OSC Receiver

Posted: Wed Dec 20, 2017 1:21 am
by faxinadu
will are you SURE your module expects only /x yy ? i read more on the osc protocol and it seems sending just hat over udp is not enough. it expects more formating - at least this also seems to be the difference between what worked and what didn't here.


Re: OSC Receiver

Posted: Wed Dec 20, 2017 2:03 am
by w_ellis
faxinadu wrote: Wed Dec 20, 2017 1:21 am will are you SURE your module expects only /x yy ? i read more on the osc protocol and it seems sending just hat over udp is not enough. it expects more formating - at least this also seems to be the difference between what worked and what didn't here.
I'm using the Juce OSC library and don't know all the implementation details. All I know is that in Max For Live I just set up a updsend module and send /x yy and it works. There's a good chance that the Max For Live module is doing more than just pure UDP if that's the case.


Re: OSC Receiver

Posted: Wed Dec 20, 2017 2:04 am
by DragonSF
You can also make each module for 16 outs, but for different input values: module 0: v 0-15, module 1: v16-31 etc.


Re: OSC Receiver

Posted: Wed Dec 20, 2017 2:08 am
by w_ellis
DragonSF wrote: Tue Dec 19, 2017 11:20 pm You shouldn't do this:
asyncOut[OUTPAD_PARAMS].itg = (int)malloc(4 * numParameters);
You have a memory leak here. I'd allocate the memory only once and re-use it. In your case, every per second you are allocating 640bytes=>1h about 2.5 MB of data, which you are not releasing. Scope does not free the data.
Good spot, I am a C noob, so I actually just copied your code from here, but was probably missing context of what you were doing.


Re: OSC Receiver

Posted: Wed Dec 20, 2017 2:09 am
by w_ellis
DragonSF wrote: Tue Dec 19, 2017 11:20 pm And I'm confused:
class ScopeOSCServer : private OSCReceiver

Are you trying to create a server or receiver?
It used to be doing Send + Receive, but I specialised for this module. Probably needs renaming now!


Re: OSC Receiver

Posted: Wed Dec 20, 2017 2:13 am
by w_ellis
DragonSF wrote: Tue Dec 19, 2017 11:14 pm Scope arrays are a mess. Having 16 outputs instead of an array is (IMHO) the preferred way. And arrays are not updated automatically. You need to reload/reconnect the module to get an update.
We used array (inputs) a lot with ScopeSync and they work ok-ish. I'd assumed the main issue I had with output arrays was around memory allocation, but interested to hear your experiences.

I'm happy to set the module up with however many parameters, it's just a small piece of work in one place. Arrays would be fantastic if they could be made to work well, but certainly my experiences haven't been amazing either. In the short term, for proving concepts, I'd suggest having a small module and then we can extend later once things are working well.


Re: OSC Receiver

Posted: Wed Dec 20, 2017 2:18 am
by w_ellis
DragonSF wrote: Tue Dec 19, 2017 11:25 pm What ever you can handle! (Normally you have to write an interface code for each pin, but my dll generator takes care of this stuff).
Would love to know more about this :)


Re: OSC Receiver

Posted: Wed Dec 20, 2017 2:19 am
by w_ellis
faxinadu wrote: Tue Dec 19, 2017 10:26 pm ok i have done some more testing and it seems the sdk module is not so reliable.

with the app that i confirmed works, and also seeing it transmit every button press over wireshark without problems, the sdk module seems to work only some of the time.
I'll do some more testing tonight, but if you're able to share a screenshot of your SDK project, so I can see what modules you're using that would be really helpful, so I can set up the same test.


Re: OSC Receiver

Posted: Wed Dec 20, 2017 2:43 am
by faxinadu
gimme a couple more hours to fiddle here, taking a new route...


Re: OSC Receiver

Posted: Wed Dec 20, 2017 3:29 am
by DragonSF
w_ellis wrote: Wed Dec 20, 2017 2:08 am
DragonSF wrote: Tue Dec 19, 2017 11:20 pm You shouldn't do this:
asyncOut[OUTPAD_PARAMS].itg = (int)malloc(4 * numParameters);
You have a memory leak here. I'd allocate the memory only once and re-use it. In your case, every per second you are allocating 640bytes=>1h about 2.5 MB of data, which you are not releasing. Scope does not free the data.
Good spot, I am a C noob, so I actually just copied your code from here, but was probably missing context of what you were doing.
That code was from the early days, before I learned the idiosyncrasies of Scope. Allocating once in the constructor is enough (or checking, if itg is null, and then allocate. Scope will always use the same itg. Sorry for my old misleading info.
Regarding the dll generator: I7ll send you an updated version.


Re: OSC Receiver

Posted: Wed Dec 20, 2017 5:45 am
by faxinadu
YESSSSSSSSSSSSSSSSSSSSS

FINALLY

i have something that works ! <3 <3 <3 <3

please please please - no arrays and at least 64 pads. i would go more even so we are covered. 128 pads for 128 midi protocol ccs.


Re: OSC Receiver

Posted: Wed Dec 20, 2017 6:32 am
by faxinadu
feeling like this now:

http://www.youtube.com/watch?v=FzfSjNSt0Fc

suddenly im programing away :D


Re: OSC Receiver

Posted: Wed Dec 20, 2017 10:10 am
by faxinadu
going really good now :)
weeee.png
weeee.png (12.79 KiB) Viewed 7661 times


Re: OSC Receiver

Posted: Wed Dec 20, 2017 1:33 pm
by w_ellis
Awesome Faxi, great progress!

In the meantime, I created a new version of the module, with individual outputs as requested. I also added a listen port input. Please note that there is only one instance of the OSC Server for any loaded OSCReceiver modules, so if you set a different listen port for different instances, only one will work and it'll probably screw things up a bit! We'll probably have to have a think about how this should work ultimately, as it's definitely beneficial not to start up a load of instances of the Receiver, but if different devices use it we could run into problems.

Other important fact is that I changed the addresses to be 1-based, so they match the parameter numbers, so /1 will hit O1.

There's also a little testing app if people want to try (just the example that is included with Juce). It sends messages on port 8000 to /1. You can find it here


Re: OSC Receiver

Posted: Wed Dec 20, 2017 1:34 pm
by w_ellis
Might even be a good idea to read the OSC listen port from cset.ini actually, thinking about it. But let me know what you think.


Re: OSC Receiver

Posted: Wed Dec 20, 2017 1:36 pm
by w_ellis
P.S. 16 parameters is just while we test it out. Once we have things up and running, e.g. with naming the addresses and having a prefix per instance, either we can make bigger versions, or just have multiple modules running together.


Re: OSC Receiver

Posted: Wed Dec 20, 2017 1:47 pm
by faxinadu
RAd!!!!!!!!!!!!!!!!!!!!!!
scopopop.png
scopopop.png (20.29 KiB) Viewed 7647 times


Re: OSC Receiver

Posted: Wed Dec 20, 2017 2:34 pm
by petal
Cool stuff guys :)


Re: OSC Receiver

Posted: Wed Dec 20, 2017 3:07 pm
by DragonSF
w_ellis wrote: Wed Dec 20, 2017 1:36 pm P.S. 16 parameters is just while we test it out. Once we have things up and running, e.g. with naming the addresses and having a prefix per instance, either we can make bigger versions, or just have multiple modules running together.
My suggestion: only the first instance will be the OSC receiver. All other will get trheir data from the 1st. As all the instance pointers are stored in a static array, there shouldn't be a problem. Data is pushed from instance 1 to the appropiate instance (i.e. event on device 1-16 goes to 1st instance, 17-32 to 2nd and so on). SO you can have as many events as you like, but you don't need one monster module.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 12:05 am
by faxinadu
thats a good idea clause,i second that, good setup.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 1:53 am
by w_ellis
Yup, I've been thinking that through and it'll be pretty easy. I was thinking that the OSCReceiver module would have a "First Parameter Num" input and you set that to a number, so the first module would have 1 (parameters 1->16), second would be 17 (parameters 17->32) etc.

I was also thinking about a standard OSC address format that we could use that avoids strings*. Something like /<device_instance>/<device_uid>/<param_group>/<param_num>, where device_instance is unique per device loaded by user (at least for a given device), device_uid would be an identifier for the device that's unique on the platform. param_group could mean that we actually always refer to parameters as 1->16 and use the group to reference multiple receivers? The First Parameter Num mentioned above would then become Parameter Groups instead.

* DragonSF - I'd love to know if you had good experiences with passing strings into DLLs, as my memory is of them creating instability.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 3:20 am
by DragonSF
For good reasons, I avoided strings as parameters so far. If possible, stay away from that.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 4:19 am
by faxinadu
i would send all the incoming osc data direct to the master module in scope just with /x y like you have it now, so it is the easiest integration in just getting the signal into scope. do the splitting once the osc info has reached scope.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 4:21 am
by faxinadu
or... if your module can have a parameter on each pad that states what incoming /x osc message that pad is listening to then that's it - in this case even 16 pads would be enough since each opened module in sdk can be configured to be unique. this would be imo the simplest, cleanest and most logical implementation.
I was also thinking about a standard OSC address format that we could use that avoids strings*. Something like /<device_instance>/<device_uid>/<param_group>/<param_num>, where device_instance is unique per device loaded by user (at least for a given device), device_uid would be an identifier for the device that's unique on the platform. param_group could mean that we actually always refer to parameters as 1->16 and use the group to reference multiple receivers? The First Parameter Num mentioned above would then become Parameter Groups instead.
imo this is way way over the top, keep it as simple and as functional as possible.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 4:39 am
by w_ellis
It's important that you think of* each OSCReceiver module running in Scope, across any devices, receiving all messages and needing to decide which ones it is interested in. We'll need to tell it what to listen for. If we just use the /xx syntax, it will be impossible to disambiguate between loaded instances of one device or even between different devices.

Of the suggestion I gave above, we could simplify by losing the param_group, but for very complex devices (e.g. mixers), you could end up with very high numbers for parameters.

* From an implementation-perspective it doesn't actually work like that, as only one thing listens to all messages, on behalf of all of the module instances.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 4:41 am
by faxinadu
maybe i missed something, can't you make the message a variable?


Re: OSC Receiver

Posted: Thu Dec 21, 2017 4:42 am
by faxinadu
each slot from 16 has a value pad and a message to listen to pad


Re: OSC Receiver

Posted: Thu Dec 21, 2017 4:43 am
by w_ellis
P.S. device_instance would need to be unique per loaded instance of a device, would probably need to be user-editable and would need to be stored in project configuration.

device_uid would be a value stored in a device and published so people could avoid using the same value. We could even agree a range of device_uids for each developer, so this wouldn't need to be negotiated very often.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 4:44 am
by w_ellis
faxinadu wrote: Thu Dec 21, 2017 4:41 am maybe i missed something, can't you make the message a variable?
We could definitely do that, but it significantly increases the patching effort inside the SDK and I'm not sure I see what value it adds (assuming we're not using human-readable strings - see DragonSF's comment above). I can imagine it becoming a nightmare to debug if a given parameter osc address was set wrong.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 4:48 am
by faxinadu
it adds value in the sense that i can just open the sdk module, lets say for ocean storm i would just assign the slots to listen to /storm1 to /storm16 and thats it. open another synth assign it whatever...

edit: ahhh ok i think i catch your drift... you don't wanna use strings in the message names thats the thing?
edit: ahhhhhhhhhh ok and yeah didn't take multiple instances into account hmmm.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 6:51 am
by faxinadu
will thought more about it, your way is probably the best option. i kinda dislike the idea of really long message addresses but i can't think of anything better than your proposal.

i restarted from scratch on my little app. better code. now i have text fields on the front panel for ip and port, works :)


Re: OSC Receiver

Posted: Thu Dec 21, 2017 6:54 am
by faxinadu
will can u please send me that module you mentioned that lets you see the array update in realtime? would make testing faster


Re: OSC Receiver

Posted: Thu Dec 21, 2017 7:10 am
by w_ellis
The version I uploaded yesterday doesn't use arrays anymore. Are you using that yet?

With the previous version, I was using the Pipe module from BC Modular and hooking it up to a Range Text, which seemed to work well.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 7:14 am
by w_ellis
faxinadu wrote: Thu Dec 21, 2017 6:51 am will thought more about it, your way is probably the best option. i kinda dislike the idea of really long message addresses but i can't think of anything better than your proposal.
I don't anticipate them being very long. An example would be /3/10010/3/5 - Third loaded instance of device 10010, parameter group 3, parameter 5. Not so different to MIDI - port/channel/cc
faxinadu wrote: Thu Dec 21, 2017 6:51 am i restarted from scratch on my little app. better code. now i have text fields on the front panel for ip and port, works :)
Awesome!


Re: OSC Receiver

Posted: Thu Dec 21, 2017 7:14 am
by faxinadu
oh i didnt notice damn! grabbing now man ty! do you wanna test my app? i just added also the ability to set the message for the knob :)
oscccc.png
oscccc.png (8.38 KiB) Viewed 7714 times


Re: OSC Receiver

Posted: Thu Dec 21, 2017 7:26 am
by faxinadu
cool works amazing the one with pads <3 nice nice :D


Re: OSC Receiver

Posted: Thu Dec 21, 2017 7:37 am
by w_ellis
Any thoughts on my earlier question about where to store the OSC port number? I could easily create a dedicated preferences file for it, which might be safest. I think it's misleading to have it as an input to the module, as it can only be one value across all devices.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 7:37 am
by w_ellis
I'm assuming that most people won't need to change it...


Re: OSC Receiver

Posted: Thu Dec 21, 2017 7:40 am
by faxinadu
actually i say keep it, might serve a function for the future!

btw i have the perfect device to try this on in a real world situation... but it is part of a commercial pack, do you allow me to try? of course i will send it to you for free :)
scopecad.png
scopecad.png (51.72 KiB) Viewed 7916 times


Re: OSC Receiver

Posted: Thu Dec 21, 2017 8:24 am
by faxinadu
w_ellis wrote: Thu Dec 21, 2017 7:37 am Any thoughts on my earlier question about where to store the OSC port number? I could easily create a dedicated preferences file for it, which might be safest. I think it's misleading to have it as an input to the module, as it can only be one value across all devices.
maybe keep it as a pad, but have it initialize to 8000


Re: OSC Receiver

Posted: Thu Dec 21, 2017 11:29 am
by faxinadu
will if we are keeping port as a parameter couldn't we just have each useage of it provide a port entry option for the user? so each device that embeds this will have to pull a text fader to the panel where the user sets the ports, and that's it no? takes care of multiple instances and everything i think.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 11:42 am
by faxinadu
aaaaaaaaaaaaaah lol sorry im getting too excited - port won't do on the broadcasting side, since it will be broadcasting on 1 port :P nevermind, just curious. so yes i get the reasons behind the setup now, i'm in if you go for what you described :)


Re: OSC Receiver

Posted: Thu Dec 21, 2017 11:44 am
by w_ellis
Try this new version out: Scope DLL

The main reasons not to allow individual ports per device/instance:
- Will create firewall pain every time a new port is used. At the moment users will need to enable the relevant port once ever.
- It's inefficient in the module to have multiple instances of the OSC Receiver object, as the architecture neatly supports multiple listeners on the same port. It would drive up memory usage to have one per device/instance

See how you get on with patching this version. I think it's pretty easy to use.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 11:45 am
by w_ellis
As an example, I passed 1, 10001 and 1 into the 3 inputs and was able to control values by passing messages with addresses /1/10001/1/x


Re: OSC Receiver

Posted: Thu Dec 21, 2017 11:47 am
by w_ellis
We can agree that Ocean Swift gets the Device UID range from 10000 to 19999 as an early adopter benefit :) (when you've build more than 10,000 devices we'll give you a new range!)


Re: OSC Receiver

Posted: Thu Dec 21, 2017 11:53 am
by w_ellis
Oh, and of course I'm happy for you to try this out in one of your devices. We'll need to do some digging about licensing, but I'm sure there's ways to sort it out.


Re: OSC Receiver

Posted: Thu Dec 21, 2017 12:08 pm
by faxinadu
awesome give me 10 minutes ill post here my test tool and a conversion module for scope that takes the integers and converts them to int32 (what scope knobs usually like) :)


Re: OSC Receiver

Posted: Thu Dec 21, 2017 1:35 pm
by w_ellis
I've just finished the first version of the Sender, which you can find here: Scope DLL

Seems to work inside the SDK. Will be interested if anyone gets time to point the sender outside, especially to a different PC. Note that you can set a different Port + Host per instance of the sender, as there's no problem with having many instances of that (compared to listen ports for receiving).

Here's an animated gif showing it in action!
OSC-Testing.gif
OSC-Testing.gif (115.85 KiB) Viewed 7867 times
Let me know if it's not clear what all the parameters mean. I'll probably not be able to do much coding until early Jan, when I get back from Munich.


Re: OSC Receiver and Sender

Posted: Thu Dec 21, 2017 1:37 pm
by w_ellis
P.S. I spoke with Faxi over WhatsApp and clarified that you can pass full int32 values over the OSC messages, so no need to scale them. I think that's the best use of the protocol and then scale for display at either end.


Re: OSC Receiver and Sender

Posted: Thu Dec 21, 2017 1:53 pm
by faxinadu
--
Attachments
oscosv2.png
oscosv2.png (9.06 KiB) Viewed 7864 times


Re: OSC Receiver

Posted: Thu Dec 21, 2017 3:24 pm
by DragonSF
w_ellis wrote: Thu Dec 21, 2017 7:37 am Any thoughts on my earlier question about where to store the OSC port number? I could easily create a dedicated preferences file for it, which might be safest. I think it's misleading to have it as an input to the module, as it can only be one value across all devices.
.I'd put the relevant data in an ini-file (own or cset). And don't forget to do initiate another module as receiver, if the 1st one is deleted.


Re: OSC Receiver and Sender

Posted: Thu Dec 21, 2017 4:33 pm
by faxinadu
for the sender can there be a generic version with no ids? so with scope one could control anything that accepts osc.


Re: OSC Receiver and Sender

Posted: Thu Dec 21, 2017 4:44 pm
by faxinadu
confirmed sender works here on same pc, tomorrow will test more


Re: OSC Receiver and Sender

Posted: Thu Dec 21, 2017 10:05 pm
by w_ellis
faxinadu wrote: Thu Dec 21, 2017 4:33 pm for the sender can there be a generic version with no ids? so with scope one could control anything that accepts osc.
Not totally sure what you're looking to achieve, but perhaps you could try using broadcast addresses? See here for details: https://docs.microsoft.com/en-us/dotnet ... p-services


Re: OSC Receiver

Posted: Thu Dec 21, 2017 10:08 pm
by w_ellis
DragonSF wrote: Thu Dec 21, 2017 3:24 pmAnd don't forget to do initiate another module as receiver, if the 1st one is deleted.
Yeah, the ScopeOSCReceiver is used as a reference counted object shared between all instances of the loaded dll, which will be created if it doesn't already exist


Re: OSC Receiver and Sender

Posted: Sat Dec 23, 2017 9:29 am
by faxinadu
Big progress on android app, core technology is set up and working!
25991081_10215812752616830_1446300807_o.jpg
25991081_10215812752616830_1446300807_o.jpg (564.43 KiB) Viewed 7760 times
25855898_10215812751696807_268279398_o.jpg
25855898_10215812751696807_268279398_o.jpg (523.02 KiB) Viewed 7760 times


Re: OSC Receiver and Sender

Posted: Sat Dec 23, 2017 11:18 am
by dawman
Impressive.
Look forward to more controls for real time parameter modulation.


Re: OSC Receiver and Sender

Posted: Tue Dec 26, 2017 10:56 pm
by faxinadu
https://play.google.com/store/apps/deta ... t.scopeosc

the scope side update is almost ready too :)


Re: OSC Receiver

Posted: Wed Dec 27, 2017 12:38 pm
by sunmachine
w_ellis wrote: Tue Dec 19, 2017 4:39 am I'd have to check on the exact details of licensing and how it would work for using an open source dll in a commercial project, but here's an idea of the worst case: https://juce.com/get-juce (i.e. it might need a splash screen)
I found the following regarding the splash screen:
The splash screen only affects an exciting new free tier - If you want to release a closed source JUCE-based product, and your revenue/funding is less that $50k, you can do so for free using the Personal license, but you will need to display a splash screen.
Source: https://forum.juce.com/t/splash-screen- ... e/21908/43
Directly in the information section next to the option for turning off the splash screen, it says that the splash screen can be disabled if the app is released under GPL v3
Source: https://forum.juce.com/t/how-to-turn-of ... ects/22329

Based on that, my understanding is as follows. Please correct me if I'm wrong!

1. As per the quotes above, the splash screen is only needed for closed software and when the developer's revenue is less than $50k. If the software is open source under GPL 3, the splash screen is not needed.

2. So, since the ScopeOSC package is released under GPL 3, there's no need for the splash screen.

3. Every SCOPE device that includes the OSC package has also to be released under GPL (and thus has to be open source).

There's also something noteworthy in the Juce 5 License Agreement by the way (highlighting done by me):
We may collect and process information about you and your use of our Program, some of which may amount to personal data. ROLI may also collect IP addresses associated with your end-users’ use of your Application solely for ROLI’s internal operations in providing you the JUCE Program. Personal data will be collected and processed in accordance with our Privacy Policy. Users of free versions of JUCE, such as JUCE Personal or JUCE Education, may not opt out of the tracking of IP addresses associated with the use of your Application by end-users. You agree to inform the end-users of your Applications about our collection of their IP addresses, if applicable, and have your end-users agree to such collection.
Source: https://juce.com/juce-5-license


Re: OSC Receiver and Sender

Posted: Wed Dec 27, 2017 12:56 pm
by w_ellis
I think it doesn't apply in quite the same way to DLLs, based on my reading of various threads on this topic. Essentially, as long as the closed source project does not Distribute the DLLs, then it does not need to become open source to make use of them. People will need to download and install the ScopeOSC modules separately. I've already created a release for these here.

Re. the data collection, I just need to disable that in the build of the DLLs, as confirmed by ROLi here. See this comment:

"Another option to opt out, if you’re so inclined, is to use JUCE under the GPL license. As long as you release the code alongside the application, you can do what you want with it."

If all else fails, they're not very complicated to reimplement without the JUCE dependencies, but it's certainly nicer to use if I can.


Re: OSC Receiver and Sender

Posted: Wed Dec 27, 2017 1:32 pm
by sunmachine
Ok, great! Thanks for the clarification! All this licensing stuff is quite complicated. At least for me... :roll:
So did you intentionally include the older version 2 of the GPL here?
https://github.com/bcmodular/scopeosc/b ... icense.txt


Re: OSC Receiver and Sender

Posted: Thu Dec 28, 2017 11:06 pm
by w_ellis
Yeah, still have a little bit of tidying up to do with licenses through the source code, but was planning to go with v2 for now, as that's what we're using in ScopeSync and what Juce demands. We could use v3 alternatively, but doesn't seem like it'll make too much difference. I'm still re-reading the material though, as it's really complicated!


Re: OSC Receiver and Sender

Posted: Fri Dec 29, 2017 1:40 pm
by faxinadu
gonna try to release the server device tomorrow :)

meanwhile if anyone feels like it:

https://play.google.com/store/apps/deta ... oscaeolian


Re: OSC Receiver and Sender

Posted: Sun Dec 31, 2017 3:10 am
by sunmachine
Looks like the OSC dlls need the msvcp120.dll which was not on my Windows XP system.
The installer installed the 2010 C++ redistributable, but msvcp120.dll comes with 2013.
So installing the following vcredist_x86.exe fixed it: https://www.microsoft.com/en-US/downloa ... x?id=40784


Re: OSC Receiver and Sender

Posted: Sun Dec 31, 2017 3:30 am
by w_ellis
Ah, yes, that's why I always used to build the ScopeSync DLLs on VC++2010. I think there might be a problem for people on really old versions of Windows. I'll check with Simon, as I think he had the problem at one stage. I'll just rebundle with the 2013 version for now to fix it for most people.


Re: OSC Receiver and Sender

Posted: Sun Dec 31, 2017 3:57 am
by sunmachine
My Windows PCs are offline and I'm only using them for music stuff, so I don't have installed many applications and usually don't do Windows updates.
I'll try to install it on my Windows 7 box later today.


Re: OSC Receiver and Sender

Posted: Sun Dec 31, 2017 8:07 am
by w_ellis
I've updated the setup.exe to include the 2013 Redistributable instead now. I'll wait to hear if this causes anyone any issues!

The latest version can be downloaded here


Re: OSC Receiver and Sender

Posted: Mon Jan 01, 2018 10:30 am
by sunmachine
Installation on my Windows 7, 64-bit system worked fine!


Re: OSC Receiver and Sender

Posted: Wed Jan 03, 2018 1:33 pm
by w_ellis
New versions of the OSC Sender and Receiver available for testing here: https://github.com/bcmodular/scopeosc/t ... ipt/Output

Sender:
- Added Snapshot (Snap) - change value of this inpad to force an OSC message to be sent for all values
- Added Sending Messages (Send) - 0 = don't send, > 0 = send (doesn't catch up, so you can use snapshot after re-enabling if needed)

Receiver:
- Added Listening to Messages (List) - 0 = don't listen, > 0 = listen

When using in SDK, be careful about loading new version in old project, as the new pads mean that there could be weirdness. Recommend deleting old modules first and then loading new ones. Then save project, close SDK and re-open, just to be on the safe side.

I'm not planning other changes to the pads now, so hopefully there won't be other breaking changes, but if I do, I might version the DLLs instead. Let me know what you think.


Re: OSC Receiver and Sender

Posted: Thu Jan 04, 2018 6:43 am
by faxinadu
confirmed to work, also it does not break connections on devices using older versions, so all good :)


Re: OSC Receiver and Sender

Posted: Thu Jan 04, 2018 6:53 am
by w_ellis
Good to know!

The only further change I have planned before looking into integrating these into ScopeSync is to load a config for listening port from a file. If there are any other needs that people have (or bugs!), please feel free to raise them here: https://github.com/bcmodular/scopeosc/issues


Re: OSC Receiver and Sender

Posted: Thu Jan 04, 2018 1:09 pm
by w_ellis
Now reads listener port from C:\Users\xxx\AppData\Roaming\ScopeOSCReceiver\ScopeOSC.settings (or equivalent for different versions of Windows). File is created on first load of OSCReceiver module and will only be re-read at startup, so changing setting will require Scope to be restarted. I'm assuming that this won't be an issue for people as they won't need to change it very often.

https://github.com/bcmodular/scopeosc/t ... ipt/Output

N.B. Defaults to 8000 still.


Re: OSC Receiver and Sender

Posted: Thu Jan 25, 2018 3:53 am
by JoPo
Hi !

After those 7 thread page and code discussion, I'd really like to know how OSC is working on Scope !
I downloaded the setup file, installed it but I don't know what to do next !

I must say that I don't know what to do with all the 7 pages of this thread : I'm not a OSC developer. I just found 2 receiver & sender DLL files but I don't know how to transform them on usable scope devices with some GUI I would deal with ! :D I don't find either any useful info for a guy like me on the github OSC pages... :roll:

Thanks for help ! :)


Re: OSC Receiver and Sender

Posted: Thu Jan 25, 2018 4:08 am
by w_ellis
Hi JoPo,

This definitely isn't the thread for you if you're not using the SDK! faxinadu has integrated these modules into some devices that he announced elsewhere in the forum and I'm beavering away in the background to hook them into the updated version of ScopeSync that's been a couple of years in the brewing. In the time-honoured tradition here, it'll be done soon :)

Thanks,
Will


Re: OSC Receiver and Sender

Posted: Thu Jan 25, 2018 5:58 am
by JoPo
Ah ! Ok. Thanks a lot, Will ! :)


Re: OSC Receiver and Sender

Posted: Sat Jan 27, 2018 3:16 am
by faxinadu
to be honest i was sure people would be going crazy about it and all over this. but somehow it seems its only interesting for a few of us. :/


Re: OSC Receiver and Sender

Posted: Sat Jan 27, 2018 5:42 am
by JoPo
faxinadu wrote: Sat Jan 27, 2018 3:16 am to be honest i was sure people would be going crazy about it and all over this. but somehow it seems its only interesting for a few of us. :/
Wait a bit ! I think that if any of you release some OSC Scope devices, other people would be interested. For instance, the amazing Falcon and many new very good vst's have OSC features. I could modulate things in Falcon from Scope. A device that convert audio signals into OSC signals and in the other way, would be awesome !

How are OSC signals time accurate ? Are they as bad as midi ? What is the resolution in frequency and in bits ? I have no idea : I never used OSC. I affraid that if OSC signals are carried by wifi or ethernet, the timing could not be as good as needed for some precise rythmic applications but in fact, I don't know.


Re: OSC Receiver and Sender

Posted: Sat Jan 27, 2018 8:26 am
by faxinadu
See announcments forum


Re: OSC Receiver and Sender

Posted: Sun Jan 28, 2018 1:28 am
by JoPo
But is OSC obligatorily usable with tablet or smartphone ? I really hate touch screen devices ! I'm reading a ebook for experimenting and it is awful !! It's heavy but I must hold it in my hands, so it zooms sundenly, jumps to 3 pages after but I need to hold it, there is no place for my fingers, sometimes they just touch the screen and...f..g sh...it. :evil: The screen is ful of finger traces. Une vraie merde.

I'd like to use it just to replace midi at least for modulating signals. AND WITHOUT TABLET !


Re: OSC Receiver and Sender

Posted: Sun Jan 28, 2018 3:45 am
by faxinadu
you can use it with anything, it is a server :) but i also think u should give the android control another chance, i too had some controllers on phone/tablet like 5-6 years ago, and the interfaces themselves have come a long long way. as long as its not extreme low end crappy tablet or something then it is both very responsive, very stable and fun. i still say try it, but again it is a server and a client and works with anything.


Re: OSC Receiver and Sender

Posted: Sun Jan 28, 2018 4:01 am
by w_ellis
Most of the DAWs have good OSC support now. To answer your question from above, I wouldn't recommend for very timing critical needs, but it should work very well for parameter automation. Unfortunately there's always some level of delay due to scope's async implementation, but it's fairly small (a few tens of milliseconds).

Wifi itself and even internet in general can have excellent latency, just depends on setup. First person shooter games are very demanding on latency too 😁


Re: OSC Receiver and Sender

Posted: Sun Jan 28, 2018 7:31 am
by faxinadu
i can vouch for the way my own apps behave with osc using will's scope osc core and using my own java built pc side osc core - faster or as fast as midi


Re: OSC Receiver and Sender

Posted: Sun Jan 28, 2018 1:01 pm
by JoPo
So... With your devices... Can I just send & receive modulation signals between Scope and some vst's that support OSC without need of android ?


Re: OSC Receiver and Sender

Posted: Mon Jan 29, 2018 12:17 am
by faxinadu
Yes exactly.


Re: OSC Receiver and Sender

Posted: Mon Jan 29, 2018 9:06 am
by JoPo
Eh eh... Thanks ! Now, I'm very interested ! 8)


Re: OSC Receiver and Sender

Posted: Mon Mar 12, 2018 12:51 pm
by w_ellis
I've added some documentation describing the use of these two modules here: https://github.com/bcmodular/scopesync/ ... DK-Modules. There's also a new release with minor performance and stability improvements. Download it from here: https://github.com/bcmodular/scopeosc/releases


Re: OSC Receiver and Sender

Posted: Tue Apr 10, 2018 11:42 am
by w_ellis
New release (0.1.2-beta) of ScopeOSC modules available now here: https://github.com/bcmodular/scopeosc/releases. This doesn't affect the main functionality, but will be required for the upcoming ScopeSync 0.6.0 release, which is slowly but surely on its way!

Documentation Wiki is also updated to reflect the changes: https://github.com/bcmodular/scopeosc/wiki and has been moved from the ScopeSync Wiki, which is now closed down, as I will be putting together documentation for the new release at http://www.scopesync.co.uk