monome: community
news
events
applications
projects
hardware
arduinome
help
trade
ioflow
movie
open
not signed in (sign in / register)
Vanilla 1.1.10 is a product of Lussumo. More Information: Documentation, Community Support.
-
- CommentAuthorloopparty
- CommentTimeNov 28th 2009 edited
Hi All,
I'm new to the Monome community and i'm not sure exactly what everyone else is using for OSC routing to multiple applications. However, this seemed to be the first thing that I wanted to do when I got my Monome 256. I found that 'Pages' did an okay job of this but I when I was using Molar I was getting latency that made it really difficult to press the buttons at the appropriate time. So to cut a long story short, I figured i'd write some software that routed OSC to multiple applications and combined pages/quadrants functionality into one application.
MonoRoute's features include:
* Standalone Java Application.
* Simple GUI that’s easy to use.
* Cross platform operation (Java 1.5 compatible)
* The routing of an unlimited number of OSC applications (assuming unlimited CPU power...).
* Save/Load function.
* Selectable hot keys for changing pages.
* 48h to 256 mapping (Quadrant style), with column/press translation.
To use the software you run MonomeSerial and MonoRoute at the same time. It's functionality is basically Pages and Quadrants rolled into one standalone application. Personally i'd probably like to see this functionality built directly into MonomeSerial. Which might be something for discussion over in the http://post.monome.org/comments.php?DiscussionID=6443&page=1#Item_0 thread. Perhaps you could look at this as a prototype for the functionality required in the next MonomeSerial...
Feel free to check out the beta over at my site http://www.loop-party.com/ and if you're in the mood download some of my music :)
--------- Release 0.9 beta3 ---------------------------------------------
New Features:
- AUTO CONFIGURATION SUPPORT! (http://vimeo.com/8644696)
- Tilt and ADC message support! (i'm not forgetting you 64ers)
- LED caching. For apps that only light LEDs once (ie. so LEDs don't disappear when moving away and then
back to an application)
Bug fixes:
- Start and Stop buttons had the same ridiculous still clickable bug as the menu items did. I guess, they don't made isEnabled like the old enable/disable.
------------------------------------------------------------------------------- -
-
CommentAuthorthesuperorganism
- CommentTimeNov 28th 2009
i think your music is pretty awesome -
-
-
CommentAuthorthree
- CommentTimeDec 3rd 2009 edited
interesting! i notice lag when i use Molar too. Im going to try this out tonight.
edit: and yea, wow, ur music is siiiiiick -
-
-
CommentAuthoregon77
- CommentTimeDec 3rd 2009
This is super rad!! I will give this a test tonight as well. Simplicity of setup is the core to satisfying people with these types of apps. I look forward to playing with it. And I'm looking forward to hearing your music. Seems to be guiding this thread so far. -
-
-
CommentAuthorscubasteved
- CommentTimeDec 3rd 2009
any ideas if this will work with an arduinome? -
-
- CommentAuthorloopparty
- CommentTimeDec 4th 2009 edited
Hey scubasteved, a very good question. Can you try it for me and report back? I don't know what differences there are with the OSC spec for arduinome... -
-
CommentAuthorscubasteved
- CommentTimeDec 4th 2009
yea i will give it a shot this weekend and report back if it works or not. Hope it does. -
-
-
CommentAuthoregon77
- CommentTimeDec 4th 2009
Had a little trouble getting this to work tonight. Unfortunately its a little too late in the evening to keep troubleshooting. I think I just need a little more time. At this point I think the problem is not enough monome apps support the changing of ports. This is something I have to start altering in the most popular apps for my own purposes.
Here's the rundown:
Monomeserial:
Host Address 127.0.0.1
Host Port 7000
Listen Port 7070
Prefix /mono
In MonoRoute
Monome Serial Listen 7000
Monome Serial Host 7070
Monome Serial Hostname 127.0.0.1
Monome Serial Prefix /mono
OSC Listen Port 8080
App page 1 - MLRV
OSC Prefix /mlr
OSC Hostname 127.0.0.1
OSC Dest Port 5000
Hot Key 1 - 15,7 Hot Key 2 - 0,7
I probably shouldn't have used MLRV because I have very little experience with it. I figured since it's the newest version it was more apt to have changeable ports. All I could find was a box labeled Open Sound Control and a single number box labeled port. I decided to set that port to 5000. Still I thought there should have been a Host port to set within the app which I guess I would set to 8080 to match the OSC Listen port on MonoRoute.
OSC App Page 2 - Tinntinnabulome
OSC Prefix /tin
OSC Hostname 127.0.0.1
OSC Dest port 6000
Hot Key 1 - 15,7 Hot Key 2 - 1,7
In tinntinn there is the ability to change ports but unfortunately when you scroll the number box it not only changes the Listen port but it also changes the host port. So I set the listen port to 6000 to match monoRoute which in turn forced the app to use 6060 as the host port. I guess the correct host port should be 8080 to match monoRoute's OSC listen port
OSC app page 3 - Midi_slide
OSC prefix /midi_slide
OSC Hostname 127.0.0.1
OSC Dest Port 8000
Hot key 1 - 15,7 Hot key 2 - 2,7
I used 8000 as the OSC Dest port because I knew midi_slide couldn't change ports but I also knew that it's host port would be 8080 because it is the default for this app.
So that is the gist of what I set up. I couldn't seem to get any feedback on the monome. I tried switching apps using the hot keys but didn't really see anything happening. Is there some kind of led verification that happens on the monome when you press start in monoRoute? Should the hot keys light up when I press them even if the apps don't seem to be communicating? If not, I think some kind of startup led pattern would be helpful just so you know things are working.
The other thing I would love to see is the ability to use you laptop keyboard keys as hot keys rather than monome buttons. I know it's nice to keep it all on the monome but it's so simple to press an arrow key or the number 1 on your laptop and leave the monome to display only app feedback.
So, loopparty, does it seem like I followed the right steps and entered the correct info for the most part? My gut feeling is not enough apps have the simple function of typing in the port numbers separately. It's something I believe I could fix pretty easily within each app so it's on the list of todo's now.
What is your usual setup for monoRoute? which apps I mean?
btw, I listened to your executive style EP on the drive home and it was real nice. Such a happy little group of songs. I appreciate the mix and I love all the soundbites interspersed in there. Kinda like the books except a little sillier. A nice array, I really like September. Good sounds.
This is long enough now. Thanks for the hard work. -
-
- CommentAuthorloopparty
- CommentTimeDec 4th 2009 edited
Hi Egon77, thanks for the great feedback!
Okay, I have used MonoRoute successfully with a range of Monome apps, like Molar, Boiiing, Cafe Press, ableton control. You have definitely hit on an annoying aspect of some max patches where you don't have the ability to change the ports in the patches interface a lot of the time.
Firstly, I'll just explain the packet flow so we're all on the same page (ouch, bad pun)...
SEE ATTACHED - RFC-MonoRoute.jpg
^ My best attempt at an RFC diagram.... I hope that makes some sense. I also explain the MonoRoute->MonomeSerial connections in the release notes.
When I was playing around with Boiiing I found a neat trick that allowed me to use 4 separate instances per page, which also didn't require a full version of Max/MSP to edit the max patch. Basically I opened the maxpat file with a text editor and searched for instances of "8000" (the listening port) and changed them to a different value (8001 for example).
eg.
"box" : {
"maxclass" : "newobj",
"text" : "udpreceive 8001", <----- BINGO
This turned out to be an easier process than loading Max and finding the setting and changing it anyway. What I also did was do a search on the OSC prefix, and change it as well. The OSC prefix in that case was in the main maxpat file and also the jr.mnm.boiing.js file. I did this in separate folders and then ran each of the patches, and bob's your uncle...
So, I guess this same principle could be used for any max patch, as I don't think any of the files are in binary or anything, and nearly every app uses the magic 8000 port as the server side socket side on the OSC app.
I chose the setting of 8080 on MonoRoute as the server socket (facing the OSC apps) because basically every OSC app made for Monome uses it. Also, as a bonus I made it be able to handle multiple app connections. So on all your outbound client connections from OSC App -> MonoRoute you can leave it as 8080.
I like some of your feature ideas too. I'll look into the following:
- Pressing Start could output something to the monome grid. I usually use Molar as my first OSC app, so it usually spits out it's text for me. If I was to make MonoRoute output something it would really only be proving that the MonoRoute -> MonomeSerial connection is working, and not validating your OSC apps connections.
- Using Keyboard for hotkeys. This is interesting, the only problem will be that MonoRoute would have to be the active focused application at the time to capture your keyboard presses. I'll have a look into this on and see how well it works practically.
- The hot keys currently don't light up when pressed. Basically, I hijack the key presses and don't send them to the OSC app because it causes the app to do stuff that you don't want it to. I'm not sure if it would be useful for this to light up or not... because it might actually be the OSC app sending the LED response which could confuse the user. I could try making the key blink when the user presses it or something like that.
Thanks for the feedback. Keep the ideas flowing :)
----------------EDIT-----------------------------------------
I just tried tintinnabulome it works fine. However, it has an interesting thing where it uses matched pairs of 'host ports'. This means if you change OSC side port from 8000 to something else it also automatically changes the Server side port to something different. This is easy to fix though, just open up the maxpat file in a text editor and change the server port in the pair you want to 8080... Like this:
"items" : [ 8080, 8000, ",", 7070, 7000, ",", 8080, 6000, ",", 5050, 5000, ",", 4040, 4000, ",", 3030, 3000, ",", 2020, 2000, ",", 1010, 1000 ],
Here I changed the 6000 port to now be matched with 8080.
I did notice a small bug whilst doing this, when I only have one 40h device on page mapped to a different corner and there is no other app in the top left, the top left buttons also control the mapped app. If there is an app assigned to the top left this doesn't happen... little bug, i'll fix it.
--------------------------------------------------------------- -
-
CommentAuthoregon77
- CommentTimeDec 4th 2009
Thanks for the detailed info loopparty. At work now but will be testing tonight. Thanks. -
-
- CommentAuthorloopparty
- CommentTimeDec 5th 2009
I just tried MonoRoute with Stretta's new Max for Live suite and it works well only one issue that i've found so far is that Obo doesn't refresh the LEDs when you return to it from another app. I asked Stretta if he could look into this so it refeshes each column as the steps hit it.
What is pretty cool is to map 4 polygome64s into each corner of a 256 and aim them to 4 different synths. Then press buttons in each quadrant. Crazy sounds.
The trick with these is that every instance of one of these apps that you open will be given a 3 digit number before it's prefix. This is how Stretta has divided them up for Auto Focus functionality.
The base prefixes are as follows:
Obo = obo
Press Cafe = press_cafe
Polygome64 = gome
Pitches = pitches
So if I drag the plugins into separate track in this order: obo, press cafe, polygome64, pitches
/001obo
/002press_cafe
/003gome
/004pitches
in all cases the OSC app port will be 8000.
Very nice. -
- CommentAuthorloopparty
- CommentTimeDec 6th 2009 edited
-
- CommentAuthorMelo D
- CommentTimeDec 6th 2009
looking forward to trying this out.
unfortunately, the new beta link is down ? -
- CommentAuthorphortran
- CommentTimeDec 6th 2009
hi loopparty,
one thing you might try re: obo not refreshing leds is to create a led cache that stores the state of other apps while they aren't in focus. i do this with pages, works well, then you just redraw the led cache when the pages are switched and go from there. -
- CommentAuthorloopparty
- CommentTimeDec 7th 2009
Sorry Melo D, I cocked up the link.... Try it now!
Excellent idea phortran! I shouldn't be trusting that the OSC application can fix it. I'll implement cache functionality in beta 3.
I don't know about anyone else but i'm excited about beta 3. I wish I didn't have to work my day job so I could finish it. :) -
- CommentAuthorphortran
- CommentTimeDec 7th 2009
awesome, i saw pretty good improvements when i implemented that.
another thing you might want to consider, if you aren't doing this already, is to have another layer of cache that simply looks at which leds are currently lit on the monome regardless of page state etc. then use this cache when intercepting led / led_col / led_row / etc. messages and determine if you really need to turn that led on or off based on the cache. this saves a -ton- of unneeded messages (ie. redrawing an entire page when most of the leds are off in the page state and are already off on the monome). this is especially important on 256es. -
-
CommentAuthorscubasteved
- CommentTimeDec 7th 2009
i tried to run this on my arduinome, no luck. Leds didnt light up, button presses did work. Switched to different app and nothing worked. :( -
-
- CommentAuthorloopparty
- CommentTimeDec 8th 2009
Hi scubasteved,
Yeah, the OSC protocol on arduinome might include RGB support and stuff that I haven't taken into account at this stage. My initial goal with this software is to make it work well with Monome. After this I can look into supporting other platforms. Thanks for trying it. -
-
CommentAuthorscubasteved
- CommentTimeDec 8th 2009
Cool, i figured as much.
Wish for once one of these switching programs would work with my arduinome. Been giving me headaches for a while now.
thanks for the response. -
-
- CommentAuthorloopparty
- CommentTimeDec 14th 2009
I just put up a quick tech demo for MonoRoute Beta 3 features. Check it out and see what you think:
http://vimeo.com/8151409 -
-
CommentAuthorHenderSounds
- CommentTimeDec 16th 2009
looks amazing! nice work...
when can we download and play? -
-
- CommentAuthorpapertiger
- CommentTimeDec 16th 2009
@loopparty
thanks so much for posting that video. going to give it another try since now I know how to set it up properly. =B
my 80h arrives tomorrow from repairs, so in the interim I'll just have to rock out to the song you were demoing in the video (it's stuck in my head!).
M -
- CommentAuthorMelo D
- CommentTimeDec 16th 2009
I'm excited for Beta 3, will I get to use it for my christmas party this weekend?!
: D -
- CommentAuthorle k
- CommentTimeDec 16th 2009
@loopparty
hope we will able to use it with launchpad+nonome .......:) -
-
CommentAuthorMyr
- CommentTimeDec 26th 2009
is there a way to get this to support 128 apps?
for example having a 16x8 ClipLauncher on the top half of a 256, then have two instances of polygome on the bottom half.
think that would be an awesome add, if not already possible.
thanks for the great work so far. -
-
- CommentAuthorRAH
- CommentTimeDec 30th 2009 edited
Hello.
I'm having a bit of trouble with monoroute to switch between applications (I'm also expiramenting with pages and also having problems running external apps).
If I understand this correctly..the settings should be as follows:
In MonomeSerial: 7000 and 7070.
In Monoroute: MonomeSerial Listen: 7000
MonomeSerial Host: 7070
MonomeSerial Prefix: /40h
OSC Listen Port: 8080
OSC Prefix: /press_cafe (or whatever prefix for the app you try)
OSC Destination Port: 8001 (or whatever port you edit in the app.)
I read loopparty's post earlier in this thread about changing ports on OSC apps..
---------------------------------------------------------
"Basically I opened the maxpat file with a text editor and searched for instances of "8000" (the listening port) and changed them to a different value (8001 for example).
eg.
"box" : {
"maxclass" : "newobj",
"text" : "udpreceive 8001", <----- BINGO"
-----------------------------------------------------------------
Alright, so I tried this with press_cafe and with boiingg and had no luck..I opened the maxpat in text edit, I searched out instances of 8000 and changed them to 8001 (appearing twice in the press_cafe txt and once in the boiingg txt). Then I saved the altered code with a .maxpat extension and opened that version. Specified the settings in Monoroute and Monomeserial as I outlined above, started monoroute, and no luck. The hot keys seem to work to switch apps, but these settings don't control the apps for me...
I'm totally new to this, so I'm sure I'm missing something, but I'm not sure what. Do I need the full version of Max/MSP to alter patches this way? (I'm currently just using MaxRuntime) Are there only certain port numbers that will work for certain apps? Some of the default prefixes listed on the help/release notes are different from what I know of the prefixes of the apps (i.e. press_cafe I thought had a prefix of /press_cafe and not /cafe as the help/release notes indicate)..could this be the problem? Just grasping here...
running OSX 5.8
I see that beta 3 is coming and will have an autofig feature..maybe that feature will solve alot of these problems for me.
Anyway, let me know if any of you can help. Thanks. -
- CommentAuthormism
- CommentTimeJan 2nd 2010
i was trying hard with no luck.
tried to get this working with molar and strettas apps, but i was not really
sure if i did everything the right way.
i hope that autoconfg. in beta 3 will help.
looking forward to try it again. any guess when the new version will be
ready for download ??
thanks for the time you put in developing so far.
mac osx 10.5.8 -
-
CommentAuthordarb
- CommentTimeApr 24th 2010
After installing Monoroute I received an error message from Monomeserial upon restart that port 8080 was being listened to by another application. This would in turn crash Monomeserial and prevent me from being able to configure Monoroute. I attempted to uninstall Monoroute (by simply deleting the folder and it's contents) and rely on the max patch Monoswitch as I did before; however now the lights on my 40h are non-responsive for whatever reason. Some of the applications are triggered by the buttons, others aren't.
Any help on this matter would be greatly appreciated! I'm running a mbp on OS version 10.5.8.
P.S. Loopparty: Mad props on your music. I've been listening to executive style the entire time I've been trying to troubleshoot this thing haha. -
-
-
CommentAuthorbar|none
- CommentTimeApr 24th 2010
Sounds like monomeserial and monoroute are set to listen on same port which is causing the issue. Try..
Monomeserial
7000
7070
/Mono
Monoroute
7070
7000
/Mono
OSC Listen Port 8080
There are screenshots on the site that show this
http://www.loop-party.com/
If you have issue still, you'll need to provide more info than you did above. Screenshots of the 2 setup screens are especially useful. -
-
-
CommentAuthordarb
- CommentTimeApr 24th 2010
It seems I have no prefix value box in Monoroute. I'll try a fresh installation and see if that helps.
I used the screenshots from Loopparty's page when Monoroute initially first wasn't working but realized that there were differences between our versions and gave up after filling in the field that I could identically. At this point I will settle for using the max patch if I can get the LEDs to light up again, the problem is they don't using any method I've tried (e.i. Monoroute, Monoswitch, and straight from MonomeSerial.) -
-
-
CommentAuthordarb
- CommentTimeApr 24th 2010
Okay, so I tried reinstalling with no luck. I read in the update that the prefix field has been removed in the newer versions but I'm having trouble finding it in older versions too.
Also, when I tried to set up Auto Configuration I followed directions as posted in the help link on Loopparty's page, but when it came time to copy AutoConfig.amxd file to the Ableton patches directory I couldn't find the required files anywhere. I expected Monoroute to be a package that contained AutoConfig.amxd in it's contents but I concluded that's not the case.
All of my settings are congruent with those in the screen shots, but to be certain I'll include a screen shot if my monoserial and monoroute windows with this post. -
-
-
CommentAuthorbar|none
- CommentTimeApr 24th 2010 edited
First glance it looks like the ports 7070 and 7000 in monoroute are reversed. Switch them.
Monoroute doesn't need AutoConfig.amxd, it's just a sample app. I think you are on the right path. -
-
-
CommentAuthordarb
- CommentTimeApr 24th 2010
Still nothing :/ Here's another screen shot. My biggest concern at this point is getting the LED's to respond to Max applications with or without Monoroute. I can't even get Flin or MLR to work straight from MonomeSerial.
By the way thanks for responding so quickly bar|none! Members like you make this a great community -
-
-
CommentAuthorbar|none
- CommentTimeApr 24th 2010 edited
I would really suggest using just one app right now. Like flin. Stop monoroute. Go back to monomeserial and change back to 8000/8080 and set prefix for flin.
In general with monoroute the hardest connection is between it and monomeserial. After that, you generally leave it alone. If you try it again try different port numbers like 7005/7075. Start with one app, verify it works before adding others.
Oh yeah, one more thing, what version of monomeserial. Make sure it's .20
I think later beta versions had issues. -
-
-
CommentAuthordarb
- CommentTimeApr 24th 2010
Okay, I was successful with ports set in MonomeSerial.20 to 8000 & 8080 respectively to run Flin, MLR and a few other patches. I then attempted to use Monoswitch as before, and have managed to send signals to Max but not receive LED information. Some of the lights will sporadically light with no response to pressing them. Test mode in MonomeSerial activates all of the LEDs, but again they are not responsive to touch. Clear LEDs seems to work as normally, it's just hard to test with the circumstances. I'm attempting to port to 7005 and 7075 in monoroute when I have the time, but right now I'm out the door. I'll report my findings when I do! -
-
-
CommentAuthorbar|none
- CommentTimeApr 24th 2010
Monoswitch? I will say that app switching technologies do not mix well. I would either use MonoRoute or something else but I would definitely not attempt to stack these in any way.
If you are using Monoroute with strettas apps, you want the versions that support autoconfig which I believe loopparty posted. -
-
- CommentAuthorloopparty
- CommentTimeApr 25th 2010
Hi Darb, sounds like bar|none got ya up and running. Was there a reason that you wanted to use monoswitch and monoroute at the same time? Technically, this would probably be possible but you're just going to add unnecessary latency to the messaging.
Glad you liked my music :)