Go Back   Cockos Incorporated Forums > Other Software Discussion > OSCII-bot forum

Reply
 
Thread Tools Display Modes
Old 11-14-2013, 06:31 PM   #1
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,716
Default Cockos OSCII-bot (formerly midi2osc)

Here's a little summary of a project I started for fun, which triggered some of the recent OSC updates:

http://1014.org/?article=511

Discuss here if you like
Justin is offline   Reply With Quote
Old 11-14-2013, 07:31 PM   #2
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

ooh if this is what I think it is (which it may not be) then that's very useful!
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 11-14-2013, 10:01 PM   #3
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,340
Default

Hi Justin,

Nice idea.., I would also like to see REAPER support just the opposite. So if you send REAPER an OSC message such as "/note/on/53" then that note will sound until "/note/off/53" is received. Maybe even something like this "/note/on/53,56,60" for doing chords?
Anton9 is offline   Reply With Quote
Old 11-15-2013, 02:49 AM   #4
adaragray
Human being with feelings
 
adaragray's Avatar
 
Join Date: Jan 2012
Location: Bananenrepublik Deutschland
Posts: 307
Default

Quote:
Originally Posted by musicbynumbers View Post
ooh if this is what I think it is (which it may not be) then that's very useful!
maybe one step closer to midi feedback?
__________________
www.shallmodule.com
adaragray is offline   Reply With Quote
Old 11-15-2013, 03:14 AM   #5
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 11,814
Default

That's what I was thinking.

I use this Novation Dicer DJ controller, which is basically just two button controllers with six layers of five buttons, sending simple midi messages out to trigger stuff in Reaper.

They also have multi-coloured LEDs which can be turned on and off in specific colours via midi messages.

If I can somehow define an OSC feedback message that sends out a the midi message for "GREEN ON for Master Dicer on button X" for each "Plugin in position X on currently selected track", I'll have an additional layer of feedback.

Studying the package now. I'll need to experiment with this once my projects are over though. Monday perhaps.
__________________
Using Latch Preview (Video) - Faderport 16 setup for CSI 1.1 , CSI 3.10
Website
"My ego comes pre-shrunk" - Randy Thom

Last edited by airon; 11-15-2013 at 03:21 AM.
airon is offline   Reply With Quote
Old 11-15-2013, 05:07 AM   #6
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by adaragray View Post
maybe one step closer to midi feedback?
Indeed. A way to send to send at least 7 bit resolution messages ESPECIALLY midi notes out of the midi editor to an OSC device for sequencing?
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 11-15-2013, 06:45 AM   #7
Lazarus
Human being with feelings
 
Join Date: Aug 2013
Posts: 1,355
Default

This looks really useful, thanks for sharing it.
Lazarus is offline   Reply With Quote
Old 11-15-2013, 07:09 AM   #8
adaragray
Human being with feelings
 
adaragray's Avatar
 
Join Date: Jan 2012
Location: Bananenrepublik Deutschland
Posts: 307
Default

since osc is better than midi in many ways, i don't expect the devs will implement regular midi feedback anyway.
I know it's already doable with puredata and such, but thats to complicated for my liking.
You can't teach an old cow to dance.
So i could immagine an idiot(like me)-proof osc2midi2-midi2osc patchbay
with osc/midi learn function.
I can totally live with a slim application that runs in background for doing this
__________________
www.shallmodule.com
adaragray is offline   Reply With Quote
Old 11-15-2013, 03:02 PM   #9
plamuk
Human being with feelings
 
Join Date: Feb 2007
Posts: 3,221
Default

would this be helpful in overcoming REAPER's limit of only 16 dedicated control channels? (as per this issue: http://forum.cockos.com/showthread.php?t=130974)
plamuk is offline   Reply With Quote
Old 11-15-2013, 03:12 PM   #10
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by nym View Post
would this be helpful in overcoming REAPER's limit of only 16 dedicated control channels? (as per this issue: http://forum.cockos.com/showthread.php?t=130974)
I've ran into that too. Would love a way to choose whether the actions menu takes into account the input device as well as midi channel
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 11-15-2013, 03:19 PM   #11
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,716
Default

Quote:
Originally Posted by nym View Post
would this be helpful in overcoming REAPER's limit of only 16 dedicated control channels? (as per this issue: http://forum.cockos.com/showthread.php?t=130974)
Yep, you could convert them into OSC messages and bind/learn those as you like.
Justin is offline   Reply With Quote
Old 11-15-2013, 03:28 PM   #12
jnif
Human being with feelings
 
jnif's Avatar
 
Join Date: Dec 2008
Posts: 2,111
Default

Quote:
For this project the EEL2 syntax was extended slightly, via the use of a preprocessor, so that you can specify format strings for OSC. For example, you can tell REAPER to set a track's volume via:

oscfmt0 = trackindex;
oscsend(destination, { "/track/%.0f/volume" }, 0.5);

Internally, { xyz } is stored to a string table and inserted as a magic number which refers to that string table entry. It is cheap, but it works.
Any plans to support text strings in JS plugins?
It would be much more convenient than the current single character text support.

jnif
jnif is offline   Reply With Quote
Old 11-15-2013, 03:42 PM   #13
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,716
Default

Quote:
Originally Posted by jnif View Post
Any plans to support text strings in JS plugins?
It would be much more convenient than the current single character text support.

jnif
I've been thinking about it for a while, just want to make sure whatever solution we end up doing doesn't break everything or suck too bad (the latter is a bigger worry, since if people start writing JSFX using the syntax we'll be stuck with it).
Justin is offline   Reply With Quote
Old 11-17-2013, 07:46 AM   #14
adaragray
Human being with feelings
 
adaragray's Avatar
 
Join Date: Jan 2012
Location: Bananenrepublik Deutschland
Posts: 307
Default

did anyone try it yet and can give a little example? maybe for setting up bcr2000
__________________
www.shallmodule.com

Last edited by adaragray; 11-18-2013 at 10:38 AM.
adaragray is offline   Reply With Quote
Old 11-21-2013, 12:55 PM   #15
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,340
Default

Hey Justin,

Thank you so much for adding this;
+ OSC: added /vkb_midi/

However I'm having a little trouble getting it to work.

I understand that the parameters are RAW MIDI.., so 3C is middle C.
Is velocity supported?

Could you please give an example that would trigger a middle C.

Thank you
Anton9 is offline   Reply With Quote
Old 11-21-2013, 01:23 PM   #16
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,716
Default

Quote:
Originally Posted by Anton9 View Post
Hey Justin,

Thank you so much for adding this;
+ OSC: added /vkb_midi/

However I'm having a little trouble getting it to work.

I understand that the parameters are RAW MIDI.., so 3C is middle C.
Is velocity supported?

Could you please give an example that would trigger a middle C.

Thank you
The values must be decimal integer, not hex, so find the note value you want in the midi editor, for example C3 is 48, and sending /vkb_midi/note/48 with an integer or float value of 1-127 would do the trick. Example:
Code:
oscsend(dev, {"i/vkb_midi/note/48"}, 127);
or
Code:
oscfmt0 = 48;
oscsend(dev, {"i/vkb_midi/note/%.0f"}, 127);

Last edited by Justin; 11-21-2013 at 08:40 PM. Reason: Fixed typo wrong C3 value
Justin is offline   Reply With Quote
Old 11-21-2013, 01:30 PM   #17
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,785
Default

There's also MIDI note 0, is that not supported?
EvilDragon is offline   Reply With Quote
Old 11-21-2013, 01:53 PM   #18
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,340
Default

Ok so now I'm gettig some MIDI activity but when looking at the MIDI activity log of ReaControlMIDI it's showing that a Note Off is being received.

This is the command I'm sending.
("/vkb_midi/note/60", 127)
Anton9 is offline   Reply With Quote
Old 11-21-2013, 02:48 PM   #19
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

Quote:
Originally Posted by EvilDragon View Post
There's also MIDI note 0, is that not supported?
Didn't the modern church ban that one?
__________________
subproject FRs click here
note: don't search for my pseudonym on the web. The "musicbynumbers" you find is not me or the name I use for my own music.
musicbynumbers is offline   Reply With Quote
Old 11-21-2013, 05:02 PM   #20
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 3,645
Default

Quote:
Originally Posted by EvilDragon View Post
There's also MIDI note 0, is that not supported?
Well, this is not MIDI, and if C3 is 49, then I guess the lowest note (C-1) is 1, not 0 (and the highest note is 128).
Tale is offline   Reply With Quote
Old 11-21-2013, 08:39 PM   #21
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,716
Default

Sorry, I meant 48 not 49.
Justin is offline   Reply With Quote
Old 11-21-2013, 08:42 PM   #22
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,716
Default

Quote:
Originally Posted by Anton9 View Post
Ok so now I'm gettig some MIDI activity but when looking at the MIDI activity log of ReaControlMIDI it's showing that a Note Off is being received.

This is the command I'm sending.
("/vkb_midi/note/60", 127)
Oops, looks like a bug in the OSC vkb_midi impl. Will be fixed in the next build!
Justin is offline   Reply With Quote
Old 11-23-2013, 04:03 AM   #23
Anton9
Human being with feelings
 
Anton9's Avatar
 
Join Date: Jun 2009
Location: Earth
Posts: 1,340
Default

Justin,

Works now.., I'll be testing it in various situations over the next day or two, I'll also give the other VKB_MIDI_xxxx commands some testing and if I notice any issues I will PM you.

Thanks once again!
Anton9 is offline   Reply With Quote
Old 11-23-2013, 12:30 PM   #24
fwd0120
Human being with feelings
 
Join Date: Aug 2011
Posts: 296
Default

Saw this on your blog a yesterday. Great!
fwd0120 is offline   Reply With Quote
Old 11-24-2013, 11:43 AM   #25
David Else
Human being with feelings
 
Join Date: Mar 2012
Posts: 608
Default

Does this mean some clever person can make code to get my behringer bcf 20000 to actually get data feedback from plug-ins and update itself!? That would be a dream come true, its the biggest missing feature in Reaper for me.
__________________
----------> Debian Linux Distribution = Computing Joy & Freedom <----------
David Else is offline   Reply With Quote
Old 11-24-2013, 02:20 PM   #26
adaragray
Human being with feelings
 
adaragray's Avatar
 
Join Date: Jan 2012
Location: Bananenrepublik Deutschland
Posts: 307
Default

Quote:
Originally Posted by David Else View Post
Does this mean some clever person can make code to get my behringer bcf 20000 to actually get data feedback from plug-ins and update itself!? That would be a dream come true, its the biggest missing feature in Reaper for me.
i don't think so, would be to good to be true
__________________
www.shallmodule.com
adaragray is offline   Reply With Quote
Old 11-25-2013, 08:58 AM   #27
LugNut
Human being with feelings
 
Join Date: Jun 2013
Location: So Florida
Posts: 1,424
Default

Quote:
Originally Posted by David Else View Post
Does this mean some clever person can make code to get my behringer bcf 20000 to actually get data feedback from plug-ins and update itself!? That would be a dream come true, its the biggest missing feature in Reaper for me.
Hi,

I dont have a bcf2000,
but doesnt the bcf2000 work with klinke's csurf.dll? I could be wrong or i dont understand, but I could swear this setup had what u need?

http://forum.cockos.com/showthread.php?t=81818

I think nofish wrote a guide for this.


Guido
LugNut is offline   Reply With Quote
Old 11-25-2013, 01:17 PM   #28
David Else
Human being with feelings
 
Join Date: Mar 2012
Posts: 608
Default

Quote:
Originally Posted by LugNut View Post
Hi,

I dont have a bcf2000,
but doesnt the bcf2000 work with klinke's csurf.dll? I could be wrong or i dont understand, but I could swear this setup had what u need?

http://forum.cockos.com/showthread.php?t=81818

I think nofish wrote a guide for this.


Guido
I didn't know it was possible... i don't have the BCF2000 here to check it. If anyone knows, is it possible to (for example) map a plug-in's controls to the faders and every time it loads the faders spring into the correct positions!?
__________________
----------> Debian Linux Distribution = Computing Joy & Freedom <----------
David Else is offline   Reply With Quote
Old 11-25-2013, 04:12 PM   #29
LugNut
Human being with feelings
 
Join Date: Jun 2013
Location: So Florida
Posts: 1,424
Default

Quote:
Originally Posted by David Else View Post
I didn't know it was possible... i don't have the BCF2000 here to check it. If anyone knows, is it possible to (for example) map a plug-in's controls to the faders and every time it loads the faders spring into the correct positions!?
Yes. i think^^
LugNut is offline   Reply With Quote
Old 11-26-2013, 06:37 AM   #30
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

midi2osc open source: thank you for sharing such code examples, Justin!!
I really enjoyed the MIDI-in and OSC-out code bits, straight to the point, lovely
But the cherry on the pie is definitely the EEL2 extension example, most interesting, thanks!

Did a tiny midi2osc config too... I've seen little things.. but no time to elaborate :/

.. well, just one big thing I'd like to suggest for REAPER (I've missed the related 4.57pre-cycle train) :

ACTION i/section/@/action f/section/@/action/@/cc
ACTION_SOFT f/section/@/action/@/cc/soft
ACTION_RELATIVE f/section/@/action/@/cc/relative

^^ or anything similar (as usual), oh! and section/@ == unique action section id here
Jeffos is offline   Reply With Quote
Old 11-26-2013, 06:38 AM   #31
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

Quote:
Originally Posted by adaragray View Post
did anyone try it yet and can give a little example?
Coincidentally, I've worked on a very similar MIDI<->OSC project just recently, so here's another midi2osc example (while I have (N)RPNs & stuff fresh in mind ):
Download: Generic midi2osc v1.0.

This one is a generic MIDI to OSC converter, it remaps any MIDI channel-based messages to OSC messages.
It also supports MIDI CC events with 14 bit resolution (optional):
  • CC pairs (CC#0 to #31)
  • Registered Parameter Number (RPN)
  • Non Registered Parameter Number (NRPN)
  • Should be compliant with MIDI specs: supports Reset RPN (0x3FFF), "All Controllers Off" (CC#121), etc..
Important! You must edit/tweak this file before you can use it: you at least have to define your own MIDI device input(s) and your own OSC server there.
=> Just open it in a text editor, everything is explained inside (as you'll see, there are other things you can customize -I made the code "tweak tolerant", well... to some extend).

Quote:
Originally Posted by nym View Post
would this be helpful in overcoming REAPER's limit of only 16 dedicated control channels? (as per this issue: http://forum.cockos.com/showthread.php?t=130974)
I don't think midi2osc will help you about that, but I'm not sure it's what you need actually...
To be honest, what you described in your thread sounds a bit convoluted to me (doable with a single MIDI channel?) but it seems "MIDI-input specific assignments" is what you are really after there (I mean CC#4 on Channel 7 from device1 triggers something different than CC#4 on Channel 7 from device2)
=> midi2osc + the generic config here should help about that! (the script tags OSC messages with MIDI device "IDs")

Quote:
Originally Posted by David Else View Post
Does this mean some clever person can make code to get my behringer bcf 20000 to actually get data feedback from plug-ins and update itself!?
no, sorry. you would need a proper control surface plugin, or "osc2midi" for that (not midi2osc).
Jeffos is offline   Reply With Quote
Old 11-26-2013, 10:25 AM   #32
adaragray
Human being with feelings
 
adaragray's Avatar
 
Join Date: Jan 2012
Location: Bananenrepublik Deutschland
Posts: 307
Default

Quote:
Originally Posted by Jeffos View Post



no, sorry. you would need a proper control surface plugin, or "osc2midi" for that (not midi2osc).
wouldn't that be cool? a reaper osc2midi2osc or midi2osc2midi translator
__________________
www.shallmodule.com
adaragray is offline   Reply With Quote
Old 11-26-2013, 04:28 PM   #33
LugNut
Human being with feelings
 
Join Date: Jun 2013
Location: So Florida
Posts: 1,424
Default

Hi,

Just so guys w bcfs get what they need...and stay outa here^^ kiddin'


Go here...

http://forum.cockos.com/showthread.php?t=33149

All things BCF200 related.

Carry on...
LugNut is offline   Reply With Quote
Old 11-27-2013, 08:18 AM   #34
adaragray
Human being with feelings
 
adaragray's Avatar
 
Join Date: Jan 2012
Location: Bananenrepublik Deutschland
Posts: 307
Default

its not just about the bcf/bcr stuff.
the translator would make it possible to use ANY Hardware controller with feedback

given the right config file
__________________
www.shallmodule.com
adaragray is offline   Reply With Quote
Old 11-29-2013, 03:04 AM   #35
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

adaragray, nothing new here... Such OSC<->MIDI tools already exist. Pure data is one of them, Banned even explained things thoroughly and shared a "feedback patch" here: http://forum.cockos.com/showthread.php?t=97255

Last edited by Jeffos; 11-29-2013 at 03:13 AM.
Jeffos is offline   Reply With Quote
Old 11-29-2013, 05:05 AM   #36
adaragray
Human being with feelings
 
adaragray's Avatar
 
Join Date: Jan 2012
Location: Bananenrepublik Deutschland
Posts: 307
Default

mm ok. pure data again.
pd alone uses 3% of my cpu
and can't wrap my head around it.
ill'd rather have it the more "rapid" way
Since i feel like beeing annoying with this
i stop asking and start to be happy with what i have.
__________________
www.shallmodule.com
adaragray is offline   Reply With Quote
Old 12-04-2013, 10:18 AM   #37
Xenakios
Human being with feelings
 
Xenakios's Avatar
 
Join Date: Feb 2007
Location: Oulu, Finland
Posts: 8,062
Default

Thanks for the tool Justin! While it's rather involved to set up, it allows for some nice shaping of MIDI data coming in from external devices. Request : implement OSC-to-OSC support too
__________________
I am no longer part of the REAPER community. Please don't contact me with any REAPER-related issues.
Xenakios is offline   Reply With Quote
Old 12-11-2013, 10:59 AM   #38
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,716
Default

Starting work on multiple-script support, as well as osc2midi and osc2osc and midi2midi support. Perhaps a rename is in order, perhaps osc_midi_megatool? Suggestions?
Justin is offline   Reply With Quote
Old 12-11-2013, 11:06 AM   #39
zappadave
Human being with feelings
 
zappadave's Avatar
 
Join Date: Jan 2008
Posts: 1,257
Default

Reaperdom or maybe Reapercom
__________________
Music is the best
เพลง ที่ดีที่สุดคือ
zappadave is offline   Reply With Quote
Old 12-11-2013, 11:20 AM   #40
SmajjL
Human being with feelings
 
Join Date: Nov 2013
Location: IKEA
Posts: 2,751
Default

swiss_osc_midi
(Based on the swiss army knife, for the record)
And "swiss" to me is multiple options.
And.. if it sounds a little bit schwa'ish, that's good right?
SmajjL is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 09:46 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.