App: triangles - shapes make sounds

hi guyz

new app!

kids love it

13 Likes

Looks uber fun! Can’t wait to get my gear unpacked!

Really clever!

Might have to setup Chuck to try this.

“you could probably actually make music with it”

!!!

3 Likes

“WUT” Love it. I can see this being a lot of fun.

1 Like

Looks awesome and great vid! Now let’s see you play the Katamari theme on it!

: D thanks y’all!

would love feedback confirming it works on 64s and 256s

& happy to help with issues running chuck, i know it’s an unfamiliar platform for many

1 Like

I’m just getting started with chuck. What are some good things to know when working with monome/osc and miniaudicle? Common pitfalls and all that

@angrycrow hi!

i prefer coding in a separate text editor (like Sublime Text) and running chuck from the command line. miniaudicle is weird because you have to do this “add shred” then “remove shred” dance every time you want to run something. from command line, it’s just “chuck yourprogram.ck” and then ctrl+c+c to quit.

i taught myself by reading the language specification over and over and over and looking at other people’s programs

chili
and life
are two examples.

via the old forum, here’s a chunk of stuff to copy+paste at the top of a program to have it ready to recognize, then receive/send commands to monome.

//osc

“/charmeleon” => string prefix;
15 => int brightness;

//initial send and receive
OscSend xmit;
xmit.setHost(“localhost”, 12002);

OscRecv recv;
8000 => recv.port;
recv.listen ();

//list devices
xmit.startMsg("/serialosc/list", “si”);
“localhost” => xmit.addString;
8000 => xmit.addInt;

;

recv.event("/serialosc/device", “ssi”) @=> OscEvent discover;
discover => now;

string serial; string devicetype; int port;

while(discover.nextMsg() != 0){

discover.getString() => serial;
discover.getString() => devicetype;
discover.getInt() => port;

;
}

//connect to device
xmit.setHost(“localhost”, port);
xmit.startMsg("/sys/port", “i”);
8000 => xmit.addInt;

//get size
recv.event("/sys/size", “ii”) @=> OscEvent getsize;

xmit.startMsg("/sys/info", “si”);
“localhost” => xmit.addString;
8000 => xmit.addInt;

getsize => now;

int width; int height;

while(getsize.nextMsg() != 0){

getsize.getInt() => width;
getsize.getInt() => height;

;
//reports twice for me – need to look into this
}

//set prefix, brightness

xmit.startMsg("/sys/prefix", “s”);
prefix => xmit.addString;

xmit.startMsg( prefix+"/grid/led/intensity", “i”);
brightness => xmit.addInt;

;

recv.event( prefix+"/grid/key", “iii”) @=> OscEvent oe;

then for tilt:

//tilt business

xmit.startMsg( prefix+"/tilt/set", “ii”);
0 => xmit.addInt;
255 => xmit.addInt;

recv.event( prefix+"/tilt", “iiii”) @=> OscEvent te;

int tilt[2];

// i set it up with an array, where tilt[0] is the current tilt position for x and tilt[1] is y. from there, the code for handling changes in tilt is much like button presses:

while (te.nextMsg() != 0){
te.getInt() => int n;
te.getInt() => int x;
te.getInt() => int y;
te.getInt() => int z;

(127-x) / (75 / (width)) => int changex;
(y-127) / (75 / (height)) => int changey;

if (tilt[0] != changex || tilt[1] != changey){
changex => tilt[0];
changey => tilt[1];

move(changex, changey);

//;
}
}

you’ll see all this stuff in triangles.ck if u poke around. happy to explain parts of the code if u have questions!

2 Likes

i wrote a monome class object a long time ago while learning chuck. someone actually made it useful and added it to the LiCK library: https://github.com/heuermh/lick/blob/836a1b60b125ee980bce1388b80e76f0daf337ee/lick/device/Monome.ck

i would definitely recommend checking out LiCK for cool example code. maybe a pain to load the whole thing depending on what you’re trying to do.

EDIT: oh hey i guess @95_ already found the old forum topic where someone fixed up my class…should have read the whole thread.

1 Like

Thanks for this! I’ll have to test it out soon! Haven’t brought out the monome for a while.

@95_ !

I finally got a few minutes to play around with this today! Love it!
Im going to pick it apart and use it in some projects. I really like operating the monome without the overhead of Max … Makes me want to develop with chuck for monome. A lot… now to find some more interesting examples.
Also thanks @ingMob for LiCK . it’s a perfect starting point.

Hello @95_
I’m actually trying to connect the app “chili” to the app “pages” but it does not work… I think it’s because I have to use zeroconf to do the connection. Do you have any idea how I can fix that problem?
Thanks in advance.

omg hi @dideath!

so glad chili interested you.

attached a version that should play nice with pages.

  • start an “external application” page
  • set osc prefix to /chili
    - set osc in port to 1994

then fire up chili.

the culprit was the auto-connect thing, which looks for the monome’s port and connects to that. since pages makes up its own ports, i had to go back to the stone age and tell chili to only look for the monome at port 1994.

chili-pages.ck (15.4 KB)

Thanks a lot @95_ !
Now it works.
I want to do some visual effects on stage with my monome and chili will be very helpful. So thanks again for that app and for your help !

aw yeah! would love to see video if you end up using it.

let me know if you need help with the save/load animation feature, not sure how user-friendly it is.

Everything was ok for the save/load feature.
By the way, I’m using a monome 256 and I was thinking it would be great to create some banks with the 8 empty buttons at the bottom row, in order to be able to load 8 different animation with the same save file. I don’t know if it is possible with chuck and how hard it will be to edit the program…

hi sorry i missed this! it’s a good suggestion…i’ll check it out.

this floated to mind for some reason
there is no logic to the way my memory works

1 Like