maxhole in Max 7
Dear people,
Hi. I'm interested to do some simple things with maxhole, but haven't used it for a while. I'm running Max 7.3.2 on a Macbook, OS 10.12.3, Sierra.
In the past, I've simply set up a network on my Mac and others have joined, & it worked seamlessly. Now I get these errors:
> net.maxhole: io error.java.io.IOException: Network is unreachable
> net.maxhole: socket error. java.net.SocketException: Can't assign requested address
> Have you already joined that group?
The patch is simply sending out variable names followed by integers. I'll attach it here.
The firewall on my Mac is off. Any suggestions?
Thanks,
Doug
Dear Doug,
I'm in the same situation and could find any good and easy solution. After making some quick research on internet... it seems it's a java problem, but I'm too newby in those things to get it right.
The best thing I could do was to send some data from one computer (OS 10.7.5) to others, but I have to first open the maxPatch in this computer and then on the others. Not really reliable I would say.
I would also be very keen on some alternative
thanks
Robert
Replying to this thread to hopefully bring attention back to the issue. I've been networking multiple machines using Max for over 15 years. I would hate to return to the days of calling out IP addresses before the gig starts, but that seems to be the path we are on.
Losing this functionality for easy networking is a BIG problem for many tasks. I had a small project built to work between Max and Max for Live that ran into snags with this. It worked OK with computers in our lab when all the computers are setup the same. But as soon as I started working with my students' machines and their various configurations, we hit all kinds of snags with Java configurations.
Has anyone built an alternative to [mxj net.maxhole] for passing messages easily without configuration?
What about the Ableton Link technology? That seems really robust in terms of adapting to various networking configurations. Could a channel be opened up there to pass OSC messages?
-Nathan
More searching this morning. Wondering if MiraWeb could be a potential solution. Anyone using this successfully?
Regarding MiraWeb: some of my students recently used it in a (pre) production performance: on laptop with max and two connected ipads. They experienced loss of connennention and browser crashes during the shows but it reconnected very fast. Chrome seems to be the most stable browser with MiraWeb (safari and firefox had signifficanty more errors). That said, i still things it's a good technology, but it requires good (stress) testing of the setup.
Itf it is only about sending messeages between max-patches on different machines like maxhole you should be able to achive that with a well configured router, [udpsend] and sending broadcasting messages (eg. Ip: 255.255.255.255) to all computers in the network as well.
using multicast works great when the network consists of only 2-4 computers, but you wouldnt like to do this with 15 or more, mainly because you would be sending 15 times the data to the remote max patches)
unfortunately most network applications today will support ready-made local-dns- or computername-solutions such as bonjour, with the effect that traditional ways (such as using fixed adresses or scanning the network to find devices on startup) are getting more and more complicated when you use protocols which do not support this modern LAN stuff.
not sure if that is really always the best solution, but when i need to connect 15 max runtime computers i give them fixed IPs by setting fixed(!) DHCP-range adresses right via the router/switch settings.
this was my solution recently because i needed to connect to the internet from the 15 hosts too, and only this way you can have both at the same time.
i´d also recommend to set up your max stuff always in a manner that you can easily change the "built-in" IP adress list (f.e. by using a .txt file as prefs file for you client-side max patch), and have some network tools of your choice ready for analysis and repair for cases of emergency.
...i would also try to avoid maxhole and other net.send & co java stuff for simple networking things, because java only adds another dependency... and with maxhole you cant even use different ports for different machines (for the case of a multicast setup with different ports instead of "prepend host 3".
and yes, i know, jit.net. is TCP ... but in practice the latency for musical events isnt worse than using midi interfaces...
Ableton Link is awesome and works great but to my knowledge it can't send/receive messages.
There is this too: http://www.jaschanarveson.com/pages/code.html We're using it at Princeton and it's good.
I personally use udp.send and udp.receive with fixed IPs
Thanks everybody for the additional replies. A few responses:
1) I learned about the UDP broadcast option (255.255.255.255) through your replies. Thanks for that!
2) Roman - I agree that adding Java dependency needlessly complicates things. This is a project that would have 2-4 computers, so broadcast may be the right way to go.
3) Florent - That application looks similar to some of the tools I built for our former Stetson laptop group (http://www.nathanwolek.com/2010/04/mpg-carepackage/). It basically had a two step process where the IPs of each computer were registered on a central computer, then every message flowed through that one machine. I like the elegance of adding a prefix to the OSC messages.
4) Jan - Thanks for the report on MiraWeb. Good to know going in that it would need extensive testing.
For better clarity, I will explain that the project is to resurrect another part of the MPG care package mentioned in #3 above. I want to be able to synchronize scale and chord controls across the network between all machines using Ableton Live. Think of it as a pitch corollary to what Link does for tempo and beat synchronization. Here is a demo video:
https://youtu.be/l_Ya9nHSqVA
great project!!
could be cool to add a way to interpolate over time between different pitch structures from your pitchlink_caller; like "update in 30 seconds".
Finally getting around to some testing this morning. I can report that udpsend/udpreceive is working for my purposes. I have Max running on one machine sending message to multiple Max for Live devices on a second machine. This is happening across our campus WiFi guest network, which is notorious for having issues. So working here is a good sign that it will work elsewhere!