Ah yes, apologies. Posit is part of the “jasch objects” external. I grabbed that part of the patch (to get the absolute position of an object) from here: https://cycling74.com/forums/how-to-get-objects-absolute-position. Added attribution in my patch above too.

Also, it’s not that intuitive, but the “Scripting Name” of the object to grab should be set to “A”.

1 Like

This is really useful for me. Thanks. I want to be able to get the pixels from a small area around the cursor to be loaded into a jit.matrix, and updated as the cursor moves around. Your code is a help in thinking about that problem.

Here’s another module I’ve coded in Max! While everything else I’ve done so far is an attempt to emulate a previously existing module, this one is an original: a two-track looper and sampler called “petit chemin de fer des sons concrètes,” or, “little concrete sound railroad.”

It’s inspired by modules like the Keen Association “Jardin des Sons Concrets,” and by, of course, the Phonogene. The metaphor behind its interface was a happy accident brought about by the particular look of the time markers, and encouraged by Pierre Schaeffer’s “Étude aux chemins de fer.”

Each control section lays out both samples side by side, so that their respective speeds, lengths, and start points can be seen and manipulated in an intuitive manner. So far I’ve topped the samples out at ten seconds maximum, to keep the scale of the controls comfortable, but I’m thinking now I should really have a “multiply” switch to extend these times. As well as figuring out how to best control this module with the others in my virtual west-coasty system, which at this point has brown larger than my hardware synth!

19 Likes

Here is a screenshot of the whole system in progress, for those interested —still working out the kinks on the “scanner & panner,” which is an attempted hybrid of the Verbos Scan and Pan, and the Make Noise RxMx.

24 Likes

Lovely graphic design! I look forward to hearing it, or maybe even playing with it someday.

5 Likes

Posting my WIP max patch as incentive to pick development back up. It’s an image pixel -> midi sequencer. It’s not complete, but it works. I’m planning to tear it down to its barest and implement it as a 4bit grayscale cv sequencer for norns/crow, but as much as this is my first max patch, the port would be my first norns app.

Given the looks I get when I talk about sequencing pixels as notes I may be the only user of any version, but the heart wants what the heart wants.

6 Likes

It’s a nitpick and I’m embarassed to even say it because of how wonderful what you’ve created already feels, but “sons” is a masculin word and “concrètes” is the feminine adjective, so it would be “petit chemin de fer des sons concrets” in French for a grammatically correct version. This being said “concrètes” is a cute error, and it echoes its “Musique Concrète” héritage more clearly (which I assume is why you made the error in a first place).

Either way this looks wonderful, I can’t believe how much you’ve done in so little time (even taking into account that you spent ALL that time on it!), and I love the graphic design of the interface.

6 Likes

Haha, oh, thank you for that! And thank you for assuming that the error was deliberate. It wasn’t!

I’m halfway alright writing in French, but I always mess up adjective-gender correlations. I’ll certainly fix the mistake next time I’m working on it — which, as you can imagine, I’ve needed a bit of a break from after around a week of round-the-clock coding. Thank you for the correction, and for the encouragement!

3 Likes

Any Jitter experts here? Been a Max user for a few years but only just now giving Jitter a go.

I’m trying to send multiple channels of jit.catch through jit.unpack and then through multiple instances of jit.graph (to change the color of each channel) before going to a single pwindow, but I cannot get it working. I’m seeing the first jit.graph but not the subsequent ones (unless I move them over to the first instance). I’m guessing there’s some step I’m missing to merge multiple graphs into a single window.

Here’s a simplified version. Where am I going wrong?

was thinking jit.xfade could help but when i try it [jit.op @op +] seems best:


(plus jit.normalize to fit everything within proper ranges at the output of everything)

here’s the patch:


----------begin_max5_patcher----------
858.3ocyXssbaBCD8Y6uBM7Zc8ftwk9j+O5zICFScTpQPA4DmlI4auRq.eII
FqIHOI1igYkErmygcWshmlNIXY0th1.zOP+DMYxSSmLAFxLvjN6IAkY6x2j0
BSK3NgZd8CB4ppGBlY++pspMEJ0i0E1ajYN2TloZD6BlgBBP+pah0Yp7aEx0
2zTjqrykjjLmOCwX34gyP33T3DWas+pjaKERsC.+iOLn0svnjtQEq.LVs7tu
iiBLi87zolCybjcxhGzWbOwTE6T6IsrpoLai3eE9j13XCeioliDx3IM2yjtp
FsP+6adjyzTpKbl3LmYek4bD7.lxw9kyTOy40MY02hVTVsp.gQKV1rdIJr66
hearHbN7SOhODFJiXBFvIPBOo6jGx.HeZJCnNdQaHPzBACgKzPuUc.+onMg8
piWRnRCA0fF6YsIziZS9i4aJdAEGO+rTtUrVlsY3v.NjTDSLGi9PkNvukno9
mmb9n3IIM4JvyD+ySJcb7jFcE3Yr+4oFUigm33vq.O8c6bak0Y4+Awbrnj6V
tDCf4LPb9Pq5weq3v+DaGvWE1sJSeCSdqv9W5tCsblFl30tC8cyg4Fj+Bh0G
P3Cp2Uj.S5NQFl6LW4tOa+6ukEplJDQS7rbk39gn9xL45geVyOTTDiS8TUwS
5nCtWAaDxWuid.NlwOUCZq11j2S.aYjYnCHZUQqRHyThJ4QygYmy6pxt5GlC
9g5A+X3C9B9Q232wfoTrptRHUs8O0fTSRns3TZpYSKf0Hg1qb640.rGz.xkz
.7fZfNU0rUsTXMKJ8f0X0.rCZ.1GhfdWgN3Ilmja5kbDYP4NAVG.mPru4.xd
qQBsTGz.xIv+UHiFAu.GLFCYAIj8ViDYINhLxYQVXLfEchoAYrj43ni9jD08
eiDmwNhS7Ye1x3GiS8F7SnG8gQ8CNibDmmMFz7dXOfyisFahnKKwfi7PserK
KxzCmw4IpqEWFnDKHzTaJU2FhAqQhMpqUXCuPHKkYeuKc.0XMVYarAoT10IF
0k0J3tj8vhsUi36sNAY110xpquunos61CfR2b5cUMFyjYfoPZMgF.CZJtWzO
e6DxZzcapzsZtsAHRvtH69ZCLMr2H2JfqdpQNztDZ7UlUVzp2Br8BL8GO84o
+GvaKYvn
-----------end_max5_patcher-----------
1 Like

I would look at using the OpenGL objects as an alternative to using jit.graph. There you can associate a bunch of points with a persistent object in the graphics world, or with a shader, and you will just see multiple objects at once like you’d expect.

Here’s a fun little thing I was working on today:

It’s part of a larger project I have in mind that uses “windows” and slightly antique graphical interfaces to do a number of sequencing and sound-generating things. This is the sequencer-to-be, “Typist”.

Type out some poetry; each letter and bit of punctuation sounds as MIDI notes. First button starts recording, second button stops recording, third button plays it.

The code

----------begin_max5_patcher----------
2521.3oc0bssjihiD84p9JH7ydbn6Wl21Of4s8sN5nCJa4poGavCf6sqch4e
e0EfBJyE4BYrWGQY6RFH0IyCoRkoD+8yOs5kreoJVE86QeI5om96me5IaSlF
dp5+eZ0w3es8Pbg8vVcTUTD+pZ0Z2uUp9UoscLptorykGTkkucR4ttqVE80p
eJYm8Xyd4G+FDRqOgzyGSR0mhU.n2azcgrsBqZ8Tb41umj952xUaKcWdNlsA
rNRZdCI2P0uS2.h9p4D9mme171ZOwVp5+n6ZW.seaPjkjVN.3vgAbLJwfKJL
.n6kykkYoChkWhSesev…qZ5g4wGUkp7uoRie4f8TA8AT3n.sn7M2455S5Wo
qFVG.0u1fMuPBLig3R15HHitgfo.DFPvZtDRn0LVck48PZ8OF+mpzrRUDCDo
UEM5hCIopsYmSKaaXOkqJTokwkIYoeq2i3B899CYwkqVW+k9s.ndoS3d0xng
UkBtbCy7BwvXBTBvbspj.1HLpWpfyHLhfPzMBDFkIAFDx1OiyS0DmV+xWPec
Ue5rV2WS4aLld.VfQbDjC08Jpl7iwBo.Cn.AgK6Z0uZtsTLF0FNF0tc2N7Td
LvQ4IBf1t.QXM+Fhf0P8C.tH9mpceKtrLOQe4Uu+shJSTkMxXINbVksut451
6h+yGqzaY62aXlF.VIpNG4grzWGzt14HOpIGsTGc9shumkW52ko1jhb+jkSV
+QnInvIInXzBPPYOpDTVEAkIHXNTRzDTg3wmeBCC+Ddu4mSQNAxEfbRdPImj
JxIEKk5.FXBVSLTOxjyPvLuwzRM7dQkObn9qGitfBTbjiEgiNfYFW6TBHvBp
fHjZhunZvTLT6thBgBc.NTfkHD3oJbrbbcSye8oePhdixizqNfLrNP5vF1E0
LBynbJDwXTKpalBQG5uV95yeDtuRa2scUvmm7LzbG2dPEmecSeTHByDrf.Fw
nR5a9DXwrnHCg1SGhe6JAqLvf0EHIlbSvWQY1oqCeRPXwmfagG+l.Os3xx2c
k.DFV.5FKiHmE.2lc7ndH3A.XTE9Khx1GEm9VjAiQkYQk4wa+ynjzSm0c24M
W3WN+xGhUvzI9w4hxj8IauH1.yOtM6PVtSY.1fV25MXKeZsT8rlXT1mkVVj7
ecxCuYzwab8rSYItNLr8Q2xTA5b3EI6TsgmQfMiN+uxShOLZPKlT8HvMuHBy
cpRr8FVmAmtfl5+evzhCfoEbuMsP1rLsCDHhIiUZzLSqX6bPggWQNn.WYDZH
hnkGM7xjAuaTx5vfvjrNljuQZdwoBFPG0pvlrNQOIqyLRt8EmSzGKVflSnsy
HDel71GhOkaGX2MHeUX73.6X7e+1ojhxIliMFZoql6t0SyTq2YXBgiHTSH1t
pRzYhlFmF6i2pF0wGAwITfT.vRDjxW6YSC4hD1qKRx3tH8ax4f97E9GYoway
FwYHwpWftO5nk9DluCpcSlEYQO4Ag0iASORC.y0GGEP02GgY801vIIoSofxR
6XS0BTvd2hYLfL8bQ4HJQBfRFPr1NNTGq3Ku15Z.q90p2.sSWy98cDFV6Wvf
R82D5oxPrzE6+x6igP+72wdc4vo2AFAfVyGYl0uwCxf1O4cmLHHb.UHPXJRR
f1Pb.r12Ny5sowoFUF62oTllfsjCjyBKsQbWoM1PmtLcy2FVCDd+YMxKskhZ
uG7FCFpimFx8wgB+dxLfz2me7LYFmhSUGlJD.WYRglvP9Pl0IBbcRVd2Dnms
kJui1syHCHq6.eZpsgMWG15tpjy0i8n+0YArSWZnoEL8n+8lkBWPYBq9GhDM
ezzkOlsqCcPGOoief3uOgrNDVMmqiCNKgzulZwSOkmcJKuFY5AeVv0QAgG3k
QQeStpJydTV.tA3SCT5sGnbg7A.n3E.nLvC.PgK.PwO…EKW.fBd.tGEu.Ni
Xb7C.PW.mQLB4A.nKfyHlKYk2Yft.NinUkP5tBTzB3LhRe.FGEs.NizybRGE
MmCPXtNBZldhb2cXu.tln5Xw4z6NRW.eS5Yg+.vjW.eSDxC.PgKfuIB7Q.nK
fuIrHfQDNz5V.xtxMnQf1eFLgK01tzgTsGFPAFbfqDagZ6YPpRwQH1eFyota
hEnraHmAj.aU2MTXqTqs.rinCLYHs0pnavseCi2q8kdsqjNpYY3SflUgO.Jo
LI1j6WIYCEQgbFUnGzAvLIwmAmk93y5cZIbNQCnyoAr6EpCQfHXDJBGQhnQr
HdjHRFA0MB02dEAwQPRDjFMhWLqRZ88+yA1QX8VHVz.EhUzuUR7YV9IDA6xH
eQB4Fyh1mJDDIPeHPiqKB3tvhIKAK1kEZWZCmIK1vaU6Rlb8AXFJv3uPdYwA
pp+sjO1Buu1G2EKZ3dpi.sU4j4Ba8Y7qI+JPT65MbwZVv3KrUUMW6YSCrlE7
JD5qYEe4WAMHepky.1Qnb9HgtvAnf6aEmXvIJ4zkq8.eZx+RNQDKcImXtaqc
4JOPUbZj6.BQYj7xXCc.hh+7F6OW8EAdargvE2Zapxq06o7wn.iTuHF1CxtR
L+vFt2hPS6cYKEYmy2VOTPkiQc7Q0hZmpnLIsQI9klgRiFx4iuxQVcQFUPlk
zdqCpwHCu8h1rBC5Szf4IZlOnFbSPsOh1rhatAnV3ink2MQKj2BEtg6BmPx1
mgCy9dI6i4hIQoSVvYKKrGxhIC.rXROjjY+r0RMGHZic8UOsFECCg0y7fWXZ
lBFFBqmUVKCtjdIp5NzLgkOlKgH.h5C7sA7fGBPIA9R+mqjDxESRhkRReHzg
anj7xM0GcnDpwXrWVu8cTG2ZxN6VSpnd8bg1PL6ADAVOGLNBwL6Ye2F2z7vb
AdwFoAObRM7ebDSWhMUjl7fL7nQTzoDEMXhhLknvASTSFpNLXhBMgnvxfIpo
Hz3vQKl5FWbvnExojTvXEhojTvHE7obvFLNwTdJPAiRLkiBTvXDS4m.ELFwT
tIPAiQLkWBX37RLkjBAiP30DqBEjlRRAgi60bEME2zvOmYzIdKpYOwFF2mY.
D.8GwaL0URtLyEe5zOU4EUGtUHqNF+CW9AsUdSGcVp6esorbUt5mI0GOy1Rb
91umTp1VdN2U.geU87GvlPx7zyIUAVpg2yUOWi9P1.697748G0QZ7rO97gxt
5ftasrlj2JZ1ngxpcBT6D5pNnL650t0voSggvq8roA2fQfMnlMhFtoOfaxYZ
iEXckINW2id+47TElOpAbRcNCZSIZzRlbIW1tviSpmp2vS8rmK6Swf030pSu
7KCB84rodFSqTn9qypzsp7lcslGZndNokREACtJJbDmF0Rwgjc0q4jqRyf+3
dxaJ8DC1tDn1an7oowzhs1AfXt6z8nI3mSK57SZKgkQMVbpZyraqz0y+yy+O
.3sCTpA
-----------end_max5_patcher-----------

5 Likes

I love this idea, it reminds me a show I’ve played with TACIT Group from Korea where each of us would input text that was projected on a screen, and each letter and space would play either a note or a percussive sound. It was sort of an improvisational piece (we were 7 on stage) where rhythms and music sequences would emerge from random jokes or poetry or people commenting on each other’s writing etc.

1 Like

This is exactly what I had in mind for functionality! I want to make a second text “window” that uses text as a score, rather than recording incoming notes with the timing of them being played.

Can you remember what you were using for this, in terms of program/coding language?

It was all in Max actually, I’ll ask them if they’re open to sharing some of the code (not sure about it at all).

That would be great, thank you! Honestly even knowing that it’s possible is the encouragement I need.

Another idea for this: selecting a segment of text with the cursor loops that segment.

1 Like

You could have a js object that receive the text as input and manipulate it any way you want to output musical information (midi, bangs, anything really).

Oh that would be great. Over my head, coding-wise, but that’s the point of this to begin with!

@electret text to Morse code for rhythmic bursts? :astonished:

1 Like

ooh! If I can steal the idea I’d love to implement that this week :smiley:


Currently I’m finishing up a metropolis clone with some custom UI. Using the js painter override feature I’m doing this kind of things:

multislider1
Each gate type get a different display, but it’s still a multislider and behaviour is exactly the same as a regular one.

3 Likes