Needing help with basic set up

Apologies if this is all a bit confused - I may be a bit out of my depth here…

So, I’m evaluating B4M to see if I can use it as an imp.artnet replacement for my fairly simple setup with 14 4-chan LED lights. My max patch uses movement and touch sensors to play music while at the same time either controlling individual R/G/B values per lamp, or colour changes to individual lamps.

I’m testing it out using an Enttec USB DMX Pro, rather than my usual ODE mk3.
I’ve got 2 lamps set up for the test, using the RGBW profiles, set to ch1 and ch5; universe 1.
I’ve got the tag set to Sidebeams.

Beam1
(not sure if images will upload)

Poking around in the Help files, I’ve figured out that this is the way to send messages to the lamps (or am I wrong? - I couldn’t find a particularly clear explanation of available messages).

That’s 4 float number boxes into
4 message boxes - [blue $1] [green $1] [red $1] [dim $1]. Into
[beam.tag Sidebeams] into
[beam.ouput]

Looking in the Monitor Window, scrolling eg the red value up and down cause changes in values in all 4 channels on every light. What I’m expecting is that scrolling the value for each colour will change only that colour! (Then the next problem will be doing that per lamp rather than all lamps).
My ignorance may just be too great to sort this! But I’d hope that setting up to control a small rig would be pretty simple.

[edit] if I want to address each individual light separately (ie sending different varying RGB values to each lamp) do I need to use a different tag for each lamp?
… well the answer to that is yes, though I don’t know if that’s the best way to do it? Scrolling eg the red value is still causing the other colour values to change. It’s almost as if there’s some kind of relative change going on. Is there a setting somewhere that would do that?

Hmm. A degree of finger trouble. I’m using some older LED lights out for the testing, and they are either 3 or 5 channel, not the 4ch lights i currently use. So I switched to the RGB profile, and now I have individual direct control of the colours, and the [dim] messagge still seems to work as an overall “level” fader, even though it doesn’t show as outputting on ch4 in the Monitor. Ie the test patch above now does what I expected.
I’ve still got a different tag for each lamp. Is that the best way to do this?

Looking in the Setting up/Fixture Profiles tab at the Profiles for RGB & RGBW, there doesn’t seem to be any difference apart from the number of addresses. Though if I look at the actual files I can see that the RGB file has “fallback” and “mergeMode” parameters which the RGBW one doesn’t. Is that something to do with why I was getting changing values in each colour output (in Monitor) when scrolling a single number box???

And if I look in the .json file, with the RGB profiles loaded, I can see
Ranges - lower 255, name pan , upper 205
What does that signify?

hi, i just went through all this and while the moderators could definitely fill you in more than I, it looks like you need to make your own custom tag for your fixtures, i.e. replace “Sidebeams” in beam.tag with “mytest” or whatever. Then make sure in the fixture editor that you’ve entered that same tag name for the fixtures you want to speak to.

Does that make sense?

Hi,
yes, i think so. I replaced the Sidebeams tag in the first few items in the Fixture list, and that got it working. Though I had to give a different tag to each individual lamp as I want to address them separately, and as that seemed to be the only way to do it - ie none of the lamps are part of a group which responds similarly to a single instruction; I need each light to be separately addressable by the data stream in my max patch. So the first light is tagged lamp1, the 2nd lamp2, and (eventually) so on.
I’m used to sending a dmx list of 56 values (14 lights, 4 channels) at once and letting the lights sort it out!

Hi David,

Using a tag for each light individually is one way to do it but it can become cumbersome if you have a large amount of lights. Another solution is to send [beam.tag] a list of values. This distributes the values over the lights within the same tag. For example, red 0.1 0.5 1.0 0.75 will control the red of all your 14 lights in 4 groups. If you send a list of 14 values, it’ll control each light individually.

[beam.tag]'s help file has a tab called multiple values that has an example of how that works.

This has been a very powerful and flexible workflow for us. If you’re mostly working with color, [beam.matrix] might also be of interest. That object lets you control Beam signals with Jitter matrices, so you can pixel map the output of Jitter objects to the color of your lights.

And if you prefer sending raw DMX lists - check out [beam.dmxio]. You can use it without specifying profiles and tags.

Hope this helps!

And to touch on your questions about the profile and patch files:

Looking in the Setting up/Fixture Profiles tab at the Profiles for RGB & RGBW, there doesn’t seem to be any difference apart from the number of addresses. Though if I look at the actual files I can see that the RGB file has “fallback” and “mergeMode” parameters which the RGBW one doesn’t. Is that something to do with why I was getting changing values in each colour output (in Monitor) when scrolling a single number box???

I don’t think these parameters make a difference in your situation.

“Fallback” is relevant for cases where a Beam signal stops controlling a specific light. For example because the tag changes or a patch coord was disconnected. pan and tilt are often set to last which means their values stay on the last value instead of returning to their default.

Merge Mode defines how two Beam signals are added together. For example when two patch coords are connected to the same inlet. We have some information about that here: Beam | Merge Modes

And if I look in the .json file, with the RGB profiles loaded, I can see
Ranges - lower 255, name pan , upper 205
What does that signify?

Ranges allow you to control how the Beam signal translates to DMX. In the example you gave, the signal range of [0...1] turns into [255...205] in DMX values. This can be useful if your lighting rig changes and you don’t want to make changes to your patch. We have some information on this in our Beam manual: Beam | Ranges

Yes, I thought individual tags might become cumbersome :slight_smile: .And I can see how I can use
[red $1 $2 $3 $4] [green $1 $2 $3 $4] [blue $1 $2 $3 $4] [dim $1 $2 $3 $4] to control the lights. I guess I’d have to put the LED pairs that are single colour (red or green or blue ) into one group, and maybe the multicoloured lights into either another group, or 4 separate groups (I haven’t thought that far yet).

I’m thinking, though, that won’t easily fit into the existing way I’m handling the lights, so I’ll take a closer look at [beam.dmxio] next. (Seems a pity to just use Beam for that though! I don’t suppose you’ve considered selling a basic Max object to handle dmx out without all of the bells and whistles? Sort of a replacement for art.impnet.controller? That would make things much easier for me going forward (ie with future installations in schools, and upgrading past ones, most of which use Enttec ODE).

Here’s a couple of images to illustrate my existing system. Generally, Sensor 1 is red (2 lights in group 1), 2 green (2 lights in group 2…etc), 3 blue, 4 red/green. But that can be changed in the patch, both which sensor controls which lights, and what colour it controls the brightness of. The third light in each group is usually controlled by one of the touch or pressure sensors, where each note is mapped to a different primary or secondary colour. Again, each input can be routed to any of the lights.

Ok, I’m going to chek out the direct dmxio now…

here’s the other image (aparently i can only post one at a time, and have to wait a while to add another post!)

Ok, so this is the way to do it with direct out? I need to send the changing values via a [dict] to get them formatted correctly for [beam.dmxio]? (There are only 2 3-channel lights in my testing setup)

(Deleted this image so that I can add a more complete one below. At his point it’s just the left hand side of the patch, with beam.dmxio output))

(This is working; I’m just wondering if this is the best/correct way)

I’ve figured out controlling the colour of a light using beam.matrix now. And added that into the patch above, with beam.matrix also connected directly to beam.output, and the beam.tag on the left input of beam.matrix set to tag lamp3. So it’s a mix of direct output and tagged output. Is that the right way?

3 lights

Ha! No, that doesn’t work (I tried direct output with only 4 values (for lamp1) and setting the tag on the beam.matrix to lamp 2. So mixing beam.dmxio with other beam object outputs deosn’t work?
I thought about beam.join, but isn’t that for tagged outputs?

… but I can stick with the dmxio method, as I can use the swatch controlled via the hsl message to send values for the third (multicolour) lamp.

Hi David,

Your [beam.dmxio] patch looks good but can be cleaned up a bit. An example is here below:

Note that [beam.dmxio] does not need a [beam.output]. The values from [beam.dmxio] are applied after all other processing so it overrides the whatever [beam.output] receives.

Creating a rough example of what a patch for your setup could look like, here’s an example of using jit.matrix’s setcell message to set the individual pixels of a 14x1 matrix. [beam.matrix] then reads the matrix and will use one pixel for every light. I’m using a swatch object to choose the color for the pixel and a “sensor 1” float value to scale the brightness of pixel 1 and 2, while each pixel can still have a separate color. You’ll have to duplicate some parts of the patch a few times, but encapsulation or other patching tricks can probably make it nicer.

I also added a [beam.op] object before [beam.output] as an example of how you can then still add “post processing” that applies to all lights. In this case, clicking the toggle would turn all lights off, as a sort of “blackout” function. The benefit of using [beam.op] is that you don’t need to add that functionality somewhere else in your patch.

As for your last comment: [beam.join] is indeed for merging signals, so that won’t work with [beam.dmxio]. Unfortunately, I don’t think we currently have a good way to mix [beam.output] and [beam.dmxio] when controlling lights in the same universe. This is something we can probably improve. Curious if @Luka has any thoughts about this.

Fantastic. Thanks for the patient help on this, especially dict, which I’m not very familiar with as I never found a use for it in the ways I work.
The (video? Image?) of the example patch at the bottom just displays a rototating busy cursor when I click on it???

You’re very welcome! Dict can indeed feel a bit uncomfortable if you’re more used to lists, but it can be really powerful and has seen some improvements. For [beam.dmxio] we decided to use dict since it allows you to control multiple universes in one go. [beam.sig] also uses dict and now I think of it, can also be an option for your setup. I’ll try to come up with an example.

Here’s a screenshot of the video I posted in my previous message. Hopefully the video will suddenly start working in a bit…

Cool. Thanks for that. About to prep supper, so I’ll try that later or tomorrow. And I think I’ll go ahead and purchase Beam, and then later sort out how I go about getting additional licenses for educational installations (which I’ll need to do if I’m going to incorporate Beam into this particular patcher).

Here’s an example of using [beam.sig]. This might actually be an interesting approach for you. [beam.sig] can turn dictionaries into Beam signals, and from that moment on you can use all other Beam objects ([beam.join], [beam.matrix], etc) with it. You can use Max’s dict objects to create the dictionary in the format you need (or you can even use the JavaScript object if you’re into that!)

In this screenshot, I’m creating a dictionary with the keys one and two, and each containing red, green, and blue values. [beam.sig] turns this into a signal that we can connect to [beam.output] and the monitor shows the DMX values sent out of Beam.

The big trick I did to make this work is had to edit the fixture patch a bit. Normally, each light gets an internal id assigned which you then use in [beam.sig] so that Beam can apply the values to the correct light. By editing the fixture patch .json manually, we can set this id ourselves and give the lights more readable names, like one and `two.

In this screenshot you can see part of the fixture patch. I added an "id" key and the value I set there is the one I used in the dictionary for [beam.sig].

The patch itself is here - note that I only added ids for the first three lights.
MyPatch.json (3.1 KB)

Let us know if we can help you further! We’re happy to sort out the additional licenses. For that it’s best to write to firstcontact@showsync.com.

Being still in an early bird release right now, it’s also very helpful for us to have these insights in how you’re trying to use Beam in your existing patches. This will help us identify missing features or find out where we can improve our documentation. Many thanks for trying out the software and being so involved!

Thanks again. Here’s a page showing a few images of the system I install. This is the older version (which I probably won’t update to Beam) using infrared sensors. I’ve changed my workshop system and the last school installation to use low powered lasers, which are _much more precise to play.

and more images in the workshops page

1 Like

So, something like this? (You obvs won’t get any output unless I also send you the fixture json, which I can do if you like). This is just the beginning - when a touchboard is routed to a specific light, it needs to mute and zero any previous settings from a ToF sensor sent to that lamp (and vice versa), otherwise those values remain active. But that’ll all be in earlier parts of the patch.



----------begin_max5_patcher—————

5738.3oc6cs0aiiik94p9UHXTOr6fzd4UQw9gAcOyhdv9z9vLKlGZzHPwV1Q

UaKYHImJUOX9uu7lTnh0E5HQGmJEPiTsnjIOmOd347wK5n+0G+vh6xeLobQv

OF7qAe3C+qO9gOnJRVvGLW+gE6ieb0t3R0isXU998IYUKtQeupjGqTkGWETc

eRv9b4cCJE+Svc4wEqKChyVG7Ox+kfxjrx7Bw0EIA4YpmtLV7Xq2+Xvp6iyx

R1UtL3edeRVPxV0s2jVTVoqlfzRQErKYUUx5fp7fU4YUE46B1Eu+P.9lfzpf

rjDQqIt29iUIpV8ORJx0sS51r3cAaJx2qtFKpv8G2UkVtKccRwxf+Cwuee7u

mTpjxDUsj7etL3ebunc+R9wcqCtKI3PbQUP9FUUjlkVkJpSsV8C+4fxCIqR2

jtJXW516qBJxOVklscYPMRsKMKYU9wLEbAQlRyNtW7f6RpTnKvTZ5ZElle2m

+ABttBNDWs5dQUdag.EzcYjvnkjPBJhxfp+x32DDhgKA2D.o.0+DxVBB9smZ

tzr5VCJK6e+wOJ+yMSr62pCdgypFb.UCi4RwGyXVJCBbIzkp7iqt++Zyt77B

iMr6pDX.UBgwJcg3MMJK4KBo3DEZWd758IkkAfkztUE3opBlT+n5mq5qGRz5

whEMRbW1j.vRFMBEQHXDkvHDXsNGoUYzEPkOD+6AaB13t1ReYZKlDcp1xoR8

j.GVaQu.sUXTJpiZQ8g3hLgGTMNbb+cIE+J425Vkq82rIuXerR1C6.DB6GDt

IXwcwYaeBLDZR5dgrHGHrDzfPEBApJo31jr361kXi1BEo9G.s9AtAoD9R5MA

zwLfLEVF+Px5aiqpJRuSDL3o+uRC1Z.WIDt6XR9l5hqK2VSLd50BGrtg65QN

Uoe1S8PZY5.Ofnyc6y6PQ0cnsdx8BvrEP15tk2mWT8rJpqZot+EqukxVr9el

aCS5jLLYWHCSgqqyzy16VCS7fFlM.4qsgoLtW71jSBPbe4tfOAECfB9Dx8nD

QNDkXifZZY5enASbiEnr3FU+mKjcbmoOPHNRZkwBU1Z34LtxrRb.+xBkFwWZ

Xwp+KBITY90NuAzKj2.qCkE.7EuAqI6TKuqDyPJU7mDrVh.KwDHjERX.ZTDB

K7pAVR3.HODvhHXHlgkEwrKAIdJnkfJqzuJqT0n2Ac3WODo9oJSpDJow8wuF

nm7hUUaA5ng4oXC7m50ud7nFMVkuKuntEizpjQoijZayUJElHKBvi.XNBRCi

BQrN..EphpqTnccxTUZj42Rnx5xTo1fOockt897xp6hUxIq1HTNC30wUw1Fl

cXnQwJ2ED.RFmJDofUDcNGJ8MlwE66FWtZb045O7cSMmM03e2TyYSMI4a3Ez

TazYzfmxLZPzqhoZ2AKDJ4c5DZfuMlocODWuKId+xxzsNybEA60BTVW2pWy7

AIwB4pIjDBTqtGkM+rz+FyeO3696c0eOFC7Mu09lBXvghjC2JGD72OiwSv9C

lKP1pz7r3hu5xvIJSs7wB+wiLdhXWUIEO2g6lzcIOjTTJZYa2fKhObvp319h

2G+YsYUTiSLQKpKh1TTQhz8p92+zx7DWHTnJg1brP6N7wPxS9B2mKrZyNl1z

Yo5oLhjpOQ5Fs7P7J8OV10UeaqsPgnfHiwAjxTqO.kF8DHI502tKe0umr1ZT

inS4PRVZlnmsLIqJtxH8M2dcxlXgulaas3Mnkcd+MFYrya14R7HFJTjtNOSJ

Ds5KjEW2bBC.pVqrUF0SjEeniervpS.L8byRgRdrTL3yJRHp9lU446Zeqle2

tjMUlaeHMK6YnXU9g9uYgbiO6+12kKt49gpa0cJu8Xl9t2JrJptUxvn8yEua

mYna6p+wXAMo3pjpTcW.BzbSsaz6KWUjuaWK8UemG53NqEV4qR9R55p6aw7R

dGwimdn1HZQSu75zsIkUsKqJdaY6RJq9pFzsJ53clQw2Vkr+vNgVz9ADiORK

qDzM9Ro4AqMzrAfm1Je6Q019AaU9P9Ca6STzkDuRsxXMqMVGdEwV2wxyHMz9

mbh2QAQaAM4aN4+4I9e83tjAXxXCvP01pFdB8idhRXQ.qNZwLiVR+8KU.VQx

5eLXaQRR1OFbmf+6OF7SB9wa2J7+F7Cv9QRXOHIaPjri3L8BdgQJd9HkSNw+

DNN5guLn2zr0h7jsFAKgqnqMSMIUkjr0ABVnA+B57Mn3CBWtXFQUlQDnBd3W

m.y4ORKDNQfgxIVNmth.Fu4bJDMaNmpAOzqiyIUsd95OdhlLFeLHkEilgKFL

jNCrtQ8gYxl0fR.yVmnW.iq.DhLQDJBA8IBQdCDfCC8S.NwL30GWv2Mjovym

+JBQiWeiQlBi8isFEn.nqZxT+23y2fZpt2H5U2vPlhCuNAlymkYygq7kBLX8

ZKabNcEAL9y4T3r4bpF7dSQlBylJ+aPywjxGTEfu9HTzTQnHhOQHzag.bb+D

fCAhdmQlp4EeX59qflM93aLxTDOQbGQHW+jodAFTnI5dCFEd8Sl5ud9rLISc

YF.5WOk2QjoHjYy4TM38lhLEYp7uM9X7DUA9qO.EN0InXrG7DWJvag3aLuDe

iyfu2nREMWdq3l0S3aMlTdh0N.vt5YR8WeA6wGXZN23D9a.hTufMSehLLinQ

uy3QQwykmoZr6MEMJ5TWeWiCFOwRf85CPSkmIvL0e+.PQuAhsg7yVtDZN.s5

2jx2CrnPy1b9BwlCuA+aJVTHperzzGhYy6x5UJKp+x4urKnINEwPh9MpQD3S

xhBbchKmO6RzD2nFplcowyzUDt3OOSy176pwNL+MDKJzDOxgFGLDfW3HPe82

WuINcMFKzi3S3afHaPhWhrQzgzdGwgBRmKOUlz312Zbnf94MafnyYCW4bndA

1SSjq.lEc8yg5mOetkvIFRDEwr7L8d3rlilsiaPM181hC0De6DHXexQ3J.el

3R6R04qROgOuENl49Yy7LqU96HJT746LlC9VjAkmd0P47qSBTxN79wHROzCv

NyC+FSlj3FWbxo8qQTVRhKnigQHqany6K52.8NR5KsgmOrHY+cseauGKMWbR

ZXI9vglGo4IZ5rtj76N+0HChm5Y1xjS.0DeuhH3UEbWvt9wCTO3wHqAjJ6Gc

Flv5SaKhOtI7qw7AdAySBMwMRiBdmMe.37scOFr6M07AfSbMCMwK8De2W+2U

B3D8+hzKekmvm47MkPqa8CPfd.nV6IQuiJH5sQ1ED.NUKjmRANxubF8jXSTR

p79cCMk4GKVU2KWm.MBZK0qSJqRyZxHP+5SIFgm8f6SWeHOMqprdtLbygh0b

bp4zlKC9Mm5ROaom6nzqBvNp3qkWsVP0AOkW3IgWld.bR3kodg.uIEv4DB0I

9NSd6JROOi1Wc4fWhqV1gipWQ0eAYzJDCxZtzWRO1UoOxiFGc.M8HErQwvZP

yLSTiyB0k9T5gtJ8vgkd8DNpkdFWkE97tzibU5QCK8gTaoOhC8N1G4nzq7BN

rzGAzhq9EXs0k9T5gtJ8iX4X9fMYjdlN+M5coG3pzOxnVJ1V5qcv6QoG6ZXQ

LYTomPC0oGEs4OgxZtzWROYFCmVKu5CvfwEzyt5RENE6Zn.4Zy4s.R0U9r.u

3vPsS7HK.s8Ulo6ZfWn+r5kutvNoXjwGyB0IKpZqdHm5aqdBZF6Vpk2qAqdh

qCmIXOZ0SvyI7BHWOV8tFohBFSu3V91kev4h7sMOELecJ0h60fIO04Ydf74L

OlQOJxYdRufV0TWCRQFeVS.Sh+SOySdDn4JeI7N6wi6SOdttrTc3A44isLXl

dtOF2D9bpODliSdfDM5jG.0NqMaeKMz2SbivbbhajnQm3F.EYK8PJw6XO20I

MiGW5CIMyT6l1W5SoG5pzOhkCAXI87vPeOuMhqqEaGAXNQ3ggVBuw+sWEdWW

ETx3S5DQw11M07s7szCcU5G1tQtyNVROBf8tgCzUONjQGyhAPao29ReMiTW8

3nlg2vROJjZ6uDyg91eI1UONJoeDKGBzV5QbruiUgc0kCAL9nVHqUrJt+iU4

LMQet+ODmWWGGVPELzhrZCj5Q1pXWm.IFNpzS4Xaomv3dW5ckkK1mqt.10Xe

3wW5oZPyLJxr9qd0Gfqw9viuT8T.1V5oTp28f4ZrO73aSBE0xCVHE6crG6pz

GNtzG1h0j8k9T5gtJ8iX4f41ROwrea9V5AtJ8i34CRawZJLz2XOz8Ex2m6uM

Jb9VkoPxSKM2kXc5Pr4S1ol0e7RsBYvY7b6f3gWVYeFwcbD6xZy35h6gBG2b

WaxPUG.tZieJxextqT8pGX3mdem8awFuyOzBAqME7IB57NV3yk1E4JBhFcoc

q+dmoSORFmXpq7orCcU1Gjx.yLWIsrGVOkIOK6HWk8AIqwnTKY29JeI6tRzD

M5RDwfbqvEQDpuiWfbklIZzEmKjSsjcV82XEOK6.Wk8giWvfVxdczCeJ6txw

.40Crhq9bQitp3L8WVNHineG9fMW4KDz48fczdeJBaI6D.26xtyGq4PexVv4

SCFcLDzfYlwO0bG7IOWhi9sfzw7aQvXKYmT+4LvyxNxUYev3E0mAOyzKhvdG

2c8b+hFcCEHlUzTGm19JeJ6PWk8gsYB4VxNtNKy6YYG3prO7XUhM+HyDT8pr

ib+Xm5yncPzYe9L8jb359ZAwTuKGfWe4.OmmfPyqF+E6E4wYQeTZHxOCQVSX

j66wkt5NDNN2eDFYI5v5zEsekcjyx9fwgPzPa+gTu6Oz0yvDeTIGArYcQ7Nq

KWO6X7Q2RhVKKJp9CefekbfiR9HuyIHKIGR79J55tO5wO4RVqC5MMdJ83Z5A

cc9kdcZNtFcYz0DEomWiYdhFKg9mmnoPgN7QWRBKFcPJbqJROTKbMuB1KVmt

UH2sKa6t76h2ofjjhr38IsucU7V8KZ9hO9jvo9qFYUso06ptVFZ+Npu+3tpz

xcoqSJL06hUwYqSE+IAqAFvRLABYgDFfFEgvBXArjvAhg4.VDACwLrrHlcIH

I38z6jtpR+prRsx+PcmfRVTl9Gsdpxjp8oYBotVb.sqZqWc952b9NRq.1ovj

gR1MKzfwp7c4E0MXjViL5bjTYatRouDYQ.dD.yQPZXTHh0g9q.UTckBsqSlp

RiL+VBUVWlJ0F6Isqzs2mWVcWrRNYv5VJOqZcbUr0K9emoQgPzRRHAEQYP0e

Yb4pinr5MIndD0psNMEk7t1Ri9cKMWszjmmMiM1kwRS33sR3dsytd3ockvlu

he8j8ibpyrqTjplobXj9CqBo9uyml1J897Tp84tj38KKE1UKFz7uEF.GzfNM

qxFFNUU0onGFxrD6OOQ83WU8yhv3AH26va9Ty1QGtn9tsLcaV7tAUXlXFDDL

mGwfQnPHCxkFyJ8lAGV6Qu.seytbQcTK0OD+Da.Qw2kT7qPzuMbm8l7h8wJg

OrKDY3HmsGFHzkz8BoQZ8uDLvXiZrWnJ0+.3xAFvHofcJppG9PAiXS0hGVCA

rAnh8P7tiI4aZHZVSyzRUDJZUpzRP4G6I1im9Hmp0O6odHsLcfGPz+t8j9T5

usniGcuI.UCT15tk2mWT8rZpqZotG1jvrLLaeQbHGZnY9gfeR0nAqS2G7ShK

+SA+j.4ERu6iWgT+Ld03X1jx55e.64QwO+fQ19SOkKqz.eSBPau0cdnw9pYl

FydufXjeQ5i08DEIq0o6MU1d6L5FHSta.yZSE.gtI.GpcXBnyZ2fMhKzXoaL

kRq7mI0aeA1hokE72JJax7WtfrX+frPd2eN7Fx04n.qP+TRtVGmcLTkRBE07

pjc6Bnh4rq8VHB0H+uywsAX.R5CAkDIuMKmEg.yp.Qa9BC1OXFMeHgIY9BL5

d2JNtKEOrWEerr3am4aNTzRFMBEQHXw7HX3HhNgVJy+orKFUO67apCLZArgY

0eyKwJ.FpWfvSRuoSWqGkh2zX3AtJX3Q4JqFl5uuGozQdSSoSNDbyYLDjO5P

PG79nMYzmf.eLvqGc8gjGOTD7oMPAi0OsAE7Skqh2EWrOecR.7LBsClwfPP8

dBAY34eJlkeQJDt24BGdECNoicf0AKt5XQy50On+iNQEhYyTUz3w8BJ3W.n7

4zpkG9RZ157ubFl88ylSTe2pIi2N9S4WyVMxxnQf5SwH2b.OTrkYgWfQBRPv

LCBbfpeEiBfj9FEzIjPNaHom0rV0Ea1OZ9UK2Czz3dXTTTD5B6zqE4azjHeC

eY98fT9oyT+0m7cu5NoKcGb17ucJTHBAOEafQlj7.7Jcz.mOsACcZQ7ZRDGN

Eh37qiUZkG1ZJcDBrNN56PV4QuiHkyYy.m7NMeX87k+3JmgNObFCTcEQPmSd

E3m2In3Q94i6qdRNqYWJm0fkr9A0H9oKsqNel8dbETvC5rtAHescVuOorLda

xINstubWvmfRN0ex8crNxkUxdSdVU8IZAhar.kE2n5+bgrm671EAHAWOUSYZ

McNco0GHI7MsN3+4+81ujVc+s+e+8+xxOWdFGnCD4k4QWd5EjmIEp90aCile

e32YNLeMdrRS9hZPP5tzpuZqO4a1H2dkmNHRVegWD3ypeOY85h3skqJx2sy1

a8pcoq98p6KxOt8d6x0iEu+zef9FOb5MzsRsIUco2sUFfsUI4ExC0kUIc2E0

XEp1lrz7j0oU4EKE.zg3lMKqqO40ma+nNYhPgpoHT+MXOjMqmwnu2QV2QpQh

w5KgSpuDqcA4mtxy63hgg94zhwzukE+.4BeXwjeN1B9aE+R5iBVdBBANuJG8

uFWi7QvrSsWm1hzZ+Xap3YdR.N4Cd4ferKG7Cc4KhJfTxNlViVxqzEK.oGNi

iegSCfNKStNYqyL4t+Q4VN2mTniUGN1yYl.zAbDtXnH4Ko8nWL57qV8QioHI

ds6rVhdYdHinpkA+GvO4mzMNKpmn8GzMsx972ACiJORFPru2bEnUJj7Db04l

Jzglx98X7k2RTWZon4nkXtpSvo1RDWZI1bnSXGZI1bfdLWL9pS7hSSmPNzRQ

ygsGh5pNM0VRc5XFerKfNKsUnysEYVZKnSsEcVZKjSsU3jaKpSX3bXafbp6h

qQvl09pcNWQmEBn5S1IFvWFAXgbDV+WDzbuoJoLWkTReRJgwVxe9qAkQtQQ7

kXRHjhiz+ENWxM2U4F2qbCAKQvdj6vnkQQVBNMZdja0FaZIS8YEJi3ylk1B4

TaENKsEzo1hNKsEvo1Z5dCgWLuFbtyp0jG93jVUme4mFB5hVglEkB3pOATe9

Dv5LAbsW.RzRRsGW4eAgyiW.pqBJnOAEAHc37homvoNwJptZhBZjqBJrWAkA

6O5.RF43ofCDJddv2HW.XNYNXlAwNMCt4osHNOpc5woHNqWO022r3mvI13Hm

BlLKfJ.4jWWxkCTA3AG4qScfX81Wh45E2s0UH8mdDBB1b0ocQfoGqZ7dHvbD

VzEmP74Xp2bWHCyCmqVB5RKM0vubWlJBeNbYvIWJzC6D6kYYhbQWpVBRbJPB

ANKskS.3bzUAwNQpENKqRhiql5brdfPmhZLKcVP5EqyB5jcADLKskaShiMKw

c4WN8B3TjQHXNLBANYvC3y1xcNdD+YwN7kYvq2Ml3CGdHonz7zp1Xw93OqSP

LQ27Q8wLSeIUcYQh7XGned0QeZQbwp6SqRVI2NW0tK8Xn9.wrPte+EYGSMjb

U4tpEpswRti9kGhWY1V+7GW7w+8G++Y24AMB

-----------end_max5_patcher—————

What a beautiful project, David! Thanks a lot for sharing!

I have some trouble getting your patch into Max. It looks like Max doesn’t recognize the data as a compressed patch. Maybe our forum corrupts the text in some way. Could you share the .maxpat instead?

no problem. Do I just drag/drop the maxpat into a reply? Or, ah… use the upload button?

I don’t think it was possible for users to upload maxpat files until now. Could you please try again?

1 Like