Here’s a little work in progress all Max composition.

I’ve been building this simple player that triggers fragments of audio files, in sync, and with a tape style play mechanic. There is some simple mixing and then audio goes out to the modular (sisters > magneto > in + morhpagene > in) and back in to Max.

Nice thing is that you can change the sounds easily, and it then becomes a different track through the same organisational system…

10 Likes

nice !! I’ve been meaning 2 build something similar to the sample player. plz share in library

Good idea, will definitely do this. It’s a bit rough around the edges, but simple enough to adapt into other things…

Do you think the best way to just share a .zip of the project?

Here it is as help patch of sorts:

https://drive.google.com/file/d/1h1bhBtRE7h7z06AQbpNTS6UyZC0QhCn1/view?usp=sharing

Perhaps someone could check it works? I’m curious to know if the sound loads up in the buffer?

Thanks

Maybe in comparison to other audio platforms this is true, but I have to chime in here, if only to provide a sanity check and moral support for other people banging their heads against the wall.

In my experience, Max’s documentation is fantastic until it falls off a cliff. There are plenty of objects with parameters or arguments that are left completely unaddressed, or under-addressed in the help and reference.

I don’t mean to discount the hard work people are putting in to improve the documentation, but if you asked me the single best thing Max could do to improve itself, it would be to make the documentation exhaustively thorough.

All that said, I’m really, really enjoying the flexibility that the Audio Routes examples provide. It’s dramatically simplified a few patches for me and for that I’m very grateful.

2 Likes

Hi! I was wondering if anyone might be able to confirm some weird behavior when it comes to the “Parameter Mode Enable” property for certain objects in Max For Live (Live 10 running Max 8.0.1). I’ve tried on two different Macs running El Capitan (I know) and they both have the same issue.

If you have a moment, can you please try the following:

(1) Create a new MIDI Effect Device.
(2) Add a number object.
(3) Open the inspector for that object and enable the “Parameter Mode Enable” property.
(4) Now disable the “Parameter Mode Enable” property.

As soon as I disable the property, Max will immediately crash on my Macbook Pro, or it will become unresponsive on my Mac Mini. It will also die if I enable that property on more than one object in the patch.

This isn’t just occurring for Number objects. I first ran into this issue when I was trying to store dictionary data within a Live set via pattrstorage.

I checked the Cycling74 forum and I can’t see any mention of this being a confirmed bug…unless I missed something obvious (which is entirely likely).

For the record - I made a similar post on the Cycling 74 forum this morning and did end up getting a reply from someone else who had reported the issue just last week. I guess it’s a bug.

1 Like

Do you know if it’s possible to assign a sample to a cell of a “drum rack” using M4L ?


Here’s what I’m trying to achieve:
I want to populate the 128 available cells of a “drum rack” with samples randomly picked from one folder and its sub-folders.

Alternate solutions not using M4L:
Create an Automator script that will create folders of 128 samples (list n samples recursively from folder X, and sub folders, randomly select 128 .wav or .aiff from this list, copy these samples to a new folder, and manually load these samples into a drum rack) but this solution is not very effective in terms of storage disk usage).


Additional thoughts ^^
It’d be great if the Drum Rack used a JSON file or something as a “Map of samples” but if it does, it’s hidden somewhere in the .als file and it’s not editable, or is it possible to edit a drum rack preset (Stored in an .adg ?) or even to create it programmatically ?

Edit => OK, I’ve found this file (uncompress the .adg file of a drum rack preset, it’s a XML) but it’s not really editable… 39000 lines that would need to be re-encoded after etc…

1 Like

I briefly looked into this with one of my student two weeks ago but we havent found a simple way, it doesn’t seem to be possible using M4L as it’s not accessible in the API/LOM (similar topic in the cycling74 forums).
.

2 Likes

Thank you, ah yes this post on the Cycling 74 forum is similar, I was hoping there’d be a “new” solution introduced in Live 10/Max 8. I guess I’ll just generate some folders of random samples with Automator and load them manually. Or… folders of symlinks or aliases, I’m wondering if that would work on Mac (I’ve read that Live doesn’t like “aliases” and there’s a solution called junction on Win but I haven’t tried on MacOS yet). We’ll see :wink:

Hey and Merry Christmas everyone!

I have a problem with OSC communication between Max/MSP and ORCA.

I am sending a string message over OSC on address “/b” which I am receiving in Max, However, the string is encoded in Base(36) table, which is what ORCA uses. This means that the “HelloWorld” message I am sending is received in Max as “17 14 21 21 24 32 24 27 21 13”. do any of you know how to convert these numbers to a string in Max that says “HelloWorld”?

So far I have tried using a JS function called .toString(36) which should be able to translate the encoded message. However, I don’t know if this is an efficient way to approach this problem. I thought Max would have a Base(36) table converter like the ASCII or UTF-8 converters, this is however not the case. I hope you guys can help me, Merry Christmas to all of you!


https://stackoverflow.com/questions/28512362/how-do-i-convert-string-to-base36-in-javascript/28512522#28512522

https://github.com/hundredrabbits/Orca

1 Like

I am not in front of my computer but have you checked [itoa]?

1 Like

I had some help from Italo Lombardo and Rajan Craveri solving this. A simple solution was using itoa combined with vexpr as shown here

A more complex way using the coll + atoi + zl and iter objects. The code below contains both an encoder and decoder of the base36 tabel encryption used for #equipment ORCA

Max Patcher

----------begin_max5_patcher----------
1498.3ocyZ11aaaCDG+01eJDHvdmafHojH0d0RhcSyVZxV61515JBTrERUmr
jgjbZ5J528IRJ47zQmS1ZIFvvshl2c7uteT43Y+0gCHWjecbIw46cduyfAec
3fA5gTCLn45Aj4QWOMMpTOMRV7myu3SjQlOpJ95J8vQU4IsCtHpZ5GSxt77h
3oUFeKog6I7G4H81ycjimq5cFaOWmOzXS1x4IYowU5fvaFLYl120w6ETF4lY
lurpcpzlQMCU8kEwl.RRSJqi8GTe52FNT81HjJbdbYYzkwOPhTgC0ygQ0u7b
3L06Lg5RJeMZOHPrGqV6LASIap4erqdFf5c6n52LkaI29uoNWVjubw5xuLWi
F4TsFYtcVi9vRjYUhi5YYV4j5jhfgoLVqF8WmFoOTiAO2ZrNUlFmsFQFxn5D
I0WnDIWz47n34ViIUwEXRiFEx7WuBAxhxmjMi1dLzqlbxIm8tydyIiQHReoR
cg7NmE8dNefyz7zTmImd3YiO9zivjJC0oxvtmJ4vxzasv5nUPayzTq2ymEUE
0H0Fsp9fkY50JOXTyPsS685ItZp0ex+D+EcrkiVMzUQoKaBsq4F7f1auv1FB
ZKEis9tf1xPYKEzVNJaYf15gxVNns9nr0Cz1.T15CZq.ksAf1JQYq.z1PL1F
.ulon.q.3EMEEYE.uponPq.3sCTTrUfk8CnfKA7FBJJ5R.uifhBuDvaInn3K
A7dBJJ.S.uofhhvDvDFCEgIfILFJBS.SXLTDl.lvXnHLALgwPQXRKOxEEgIg
ILFJBSBSXLTDlDlvXnfDo21XLLgwQQXRXBiihvjvDFGEgIgILNJBSBSXbTDV
HLgwuMg07eq8hoZlxnqhmcdc0Q00YcdTUUQxEKqLMI3101DO+hXcgTzFy2f5
+llOedbcER2u.vWe73icNMWEU6U+4w0Gxjy08THHTW7maWNMlkdJ31iUquuq
yj5WT0q8oNGvTuOlotbr6ZDGWxzmCi6pUGU524R3C10aZfum71MFwm18dFH2
ANPcYZxzXG5ZDJ0yu4bJ5ii428boO+ISna04NETsPan1M3bm9rmSnsH9x3qW
372D0qenb4EkUIU0O7y46bQjdaavmmrymC02xdUeTGDczS+dWpWPSC+DaZC+
7365c7qMwZ11tIM7yisy2wOlmo8zTNeC63mGcGukeqd9qQhaPK+3gOq87aS+
pGZEdf2l9MO349r2HvC1+sS3AXRuFYJ1fzqb2qOfvUtWqLxKHXJ82RCHPauk
SHh1d3CIxQaO74D8PaO7QE8QaO7oECPaO7AFEnsG9LiRz1CerwP77CL.R1Ww
766hyGvPH4.kON.oOfAQxgJebHRe.CijwJeLFoOfARxDkOlfzGvPI4kJe7Rj
9.FLIGo7wQH8ALbRdUWxsv.J43tjaggTxOpysTbOmxBm9S5bKReXgSOQmaQ5
CKb5q04Vj9vBmdpN2hzGV3zyz4Vj9vBm9y5bKReXgS+EctkgyGV3z2nysH8g
EN8s5bKReXgS+UctEmO3V3zeSmaQ5CKb5uqysH8gEN8c5bKReXgS+CctkiyG
V3z+TeOEoOrvo+k9d5c7w+Cc4TW2GIMI69+Bpz0npF+tU7VlurXZ6Rr4GRfy
MEoNKtrJIKpJIO6VygalCXM0Xii.Qb7qmCcKiS.h3H6A8DXVqqMNhdHN9XRP
p1rt024T826Qkz8VNySlsHOIqpr86ny7K2gwBMMYTXZJk5x9X08X2G75CRU0
GrGGUY8wcbDAh1GoVOL27Z081EIFBHR0rl9IRO5StB6iHQwb2SdGgeuMFL+.
yNAWc+67kg2b4JaxKlEWX+K+oWWtd2cy9pPS2tPiYqSaha6hDlsN8QfZIn0i
Y8weQgi4I898wS33H+awaabnX1hF7f.YpoIZwhqhKJalrNFj4QeJuXUiIp2j
kYtTWRJoH9pj14aFIpX5GSppqtZYgdcQtNv7iJjLOuF3yVlzv75RxH5dAlEM
OtbQjQH5VFN7aC+O.fJBIaB
-----------end_max5_patcher-----------
3 Likes

Here’s a little sequencer I made yesterday. It uses the Collatz conjecture to ‘calculate’ note triggers …

https://www.maxforlive.com/library/device/5903/collatz-sequencer

… having a lot of fun with it and hope you will too!

Happy holidays!

18 Likes

Hi :wave:
Is it OK to ask questions about Jitter here or is it strictly Max/MSP ? I’m hesitant about starting a new thread dedicated to Jitter related questions but maybe I should… Do you think questions about Jitter (beginner and advanced) should be posted in this thread or do they deserve their own thread? Unless there is already one on Lines and I couldn’t find it ? The community is generally quicker to respond here than on the Cycling74 forum, that’s why I’m asking here before asking beginner questions on the Cycling74 forum…

Thanks :wink:

5 Likes

I think jitter questions are fine here.

1 Like

Also if you (or anyone in the future reading this post) do not feel comfortable publicly asking jitter beginner questions, these days I primarily use Max for Jitter and would be happy to answer questions over DMs :wave:

4 Likes

Thanks @_mark and @ellips_s , I really appreciate

Fortunately, I’ve found a solution today in order to achieve what I wanted to do with Jitter (I’ve read the various object references again and re-watched the excellent tutorials by Armando Gonzales and Federico Foderaro)

(patch posted below).

I was struggling with jit.gl.multiple and I didn’t understand how to assign some individual parameters to a gridshape duplicated by jit.gl.multiple. Now that I understand the concept of jit.matrix and (when to use them) a bit more, that opens up more possibilities. Even after reading the tutorials and watching some great tutorials on Youtube, some things were not really clear, possibly because there are often many ways to achieve the same thing and each tutorial demonstrates a different method.
I’m still experimenting with jit.gen though…

For info, here’s the very basic thing I was trying to do: Creating a grid of shapes, assigning a variable alpha channel to each cell/gridshape :slight_smile:

Code

----------begin_max5_patcher----------
1472.3oc4Zs0bqZCD9YmeEZ3wNtdj3ls6St+NNSGOxfBQoxRTPj3bNy4+d0E
f.1.gXvm3N8E73UW1c+1aRr7iGV3bPbhj6.9Cv2.KV7iGVrvPRSXQ4+W3bDe
JhgyMSygSdUb3Ymk1gjjSRCYI3.3PEUQgjQjx2RI1c14.lm3rr7WveUNsTrL
5IJOYeFIRZmIB4sBtD35En+wy27G2Uv50vKNR4pM2HLnRhzXiLnjqe2asy6y
zJGlo5VRMW9FyHUNNZB+7gGzOVNRkWJRRTKuO0jxkiQ6PgVkzu5430tPm5cO
CejHIY6Ib7AqJA6TyQyhl2iY+eTxPl.ffvgs8iwlCM+rFMrM2sCTw24Wul+L
UthKn4DfG3Ql.K8bUFVvldwA0B1eDKynmzQBChHaMdFdggFuE20e5n.zl+CD
Er8JCBPAeUAAGJjRAeBd5asg+atVM26KxQ+UQFKF7DgwDfcjLbNYejfIx.vU
v0azO25qdh7C5EbpS++QN+HOKJAst8Aa97d+ntgIuaMLkP3iL7en+MH53iVE
rD3qwC0Ode5bkgcCM9WBMMkARVIfThHKbdjxHuPxxop3g2sBKbvooMHunwRz
v3yByFsdYMIJ2RxqlTF4EZ05CqohyTHgTACEYV46TXUVe81HhIY7BpQTrDUF
zGp1vJvaSXf8zEFepPHz.hAv2wuENjXpTC4GRLd31EBWscYiGnlK3PBSD82j
3FIeTl+TBmxSyH4DtDKKUm5giIOhKXx8OJ3xb52MZDRaR6X7GwQjdWLWk+y.
G+YFEyp.DmjLZrfqEhVFGM4J1oBzLfg946JiYFbbZGKV48n.xdFLWojE4GvY
ZaWYlX2pAkBAq8P0qiQdTVNbJkyOCEkhz9GLil7z.q8fPM3wg1ayH46K31Q2
qhvk6ywuzFskXFqLju81eByopfVhjZMAtv5AsUidJOJSvXszW6HuzwHwJ29H
xqzX4SFF0zYPMcZZkSjSsUNllPxksoIwI4sobQHshTwgxv58RxwTlRKZOgV2
JnYLbyjisnOTRx1IJyek9cvolCcYshZGxdxB54hr9tvtSC1aYhKJUr0o8Jtr
pZWkLVTU1nLSy7iR+lxCHXZfzVSATzFS4T6EptNLZycJF8BIRGmD79ioAXU9
Q1icC29wHlWOHleSAoYUflbyZWrdxvxGmyp6En1Dz91r3OF3N0XVOm6XP5zb
3CNCfj6ccP6Zj9VCgdaUO8BCldxNuPq20V6kG7GQvqeOHG5NE4TxAnkqe+EF
cCM9OdquZ+mApKB+JAAJG3NOmcv9VH7feLDA6Fh9+RYQzlP6slfSst3563HK
WmwgBSNxJ7NMxJWcS7iyQwqM1ZW9WcfUvcpahJ2CZZ.j89JH+Il44dtBExYT
GxdxgQ9yQXz6u3CFk22MdMJgd7tAmbQQVTkGP0cJAsUH0U3kTd86A5a00X0y
aT1lOqPrYjx.5VJD5iR8kiDnQCEJWJ.5VIEdiUJ1bKwB2OCVbyjB+QJE2RgH
XrHwkFNQVr8EhC+ZkL29kLzMQxVORIKrW6VIQKk4qwK1lmbC5DqscKdPSEaj
G5S2KJ+aYiXGpUTrUGKXRZJiT12NevtDloio4fTQNUay.4QX0Dr8xamDmkPL
sT.vEwjAak2XZRUn4DNdacGF076nCdvuNXyzBjmvoDvNqShh+opC1.A6rjSY
XtZvZbBrCWHEp4RizSho6KgFOruqeUEkcV7EspiW7wN0T3w0ysRnzAkQhBtr
oVOcG4.6kdC8CpdmviuopWiEwr6sOak0.cdlmRyzkkJZkLrmzMdgslT6jfW3
aLVVe1t1CqaTh554j+X3z54fSqGAm7mKFg9.F07nNWMmZe7tAJHglJi7FAiN
SZZeRgql0Zw28i3LzNoooiiIbq8o5mScDNFcbpNLgiwyDNCNL9izwD9qvwz+
iSQZSVe1Gvglom8gab1GswkevF8+wZb9Gpghy+7g+E.F0LzO
-----------end_max5_patcher-----------

Now I just have to fill the alpha channels with values stored in a dictionary (instead of using jit.noise for the test) but that should be fairly simple, I’ll do that next year ^^

I will probably have more questions about Jitter and jit.gl.multiple soon…

Thanks again :wink:

2 Likes

I’m soon to be upgrading to Live 10 Suite (having never accessed Max in any format before) and I’ve very excited to play with M4L devices,except… I have zero concept of where to even start. I don’t even mean “how do I programme” questions, I mean: I literally don’t understand what the difference between Max, MSP & Max For Live is and whether something created in one environment will run in another.

Essentially I have this very lofty idea whereby the possibly exists to create something along the lines of what the Morphagene is capable of, but using M4L devices - eventually expanding to include more of the functionality offered by the MN Tape & Microsound Music Machine system.

Wayyyyyyy before all of that, though, I need somewhere to start comprehending the differences, similarities and connections between the different forms of Max

I’m in the same boat - just got Live 10 Suite last week and I’ve started dipping my toe back into Max (I haven’t used it in almost 20 years so it’s basically new to me). One nifty resource is this free pack by Cycling '74:
https://www.ableton.com/en/packs/max-live-building-tools/
Although the website doesn’t mention it, this pack has lots of Max tutorials you can go through inside of Live. I’ve started using them and they’re really handy. There’s more info at this link:

3 Likes