Kyma Forum
  Kyma Sound Exchange
  Max>Flame>Capybara

Post New Topic  Post A Reply
profile | register | preferences | faq | search

next newest topic | next oldest topic
Author Topic:   Max>Flame>Capybara
dgkiers
Member
posted 18 April 2003 15:10         Edit/Delete Message   Reply w/Quote
Dear people,
With the help of Kurt Hebel I worked Symbolic Sound code into a Max object that sends floating point controller data to the Capybara through the Flame Firewire interface.
If anybody is interested in trying it out, let me know> david@mob-lab.org
Greetings, David.

IP: Logged

David McClain
Member
posted 18 April 2003 17:33         Edit/Delete Message   Reply w/Quote
Whoa! Looks like you have given me a good reason to buy a Mac!

- DM

IP: Logged

torvald
Member
posted 04 May 2003 20:28         Edit/Delete Message   Reply w/Quote
At the risk of sounding really uninformed........ Why would you want to do that?

IP: Logged

Bill Meadows
Member
posted 06 May 2003 02:29         Edit/Delete Message   Reply w/Quote
quote:
Originally posted by torvald:
At the risk of sounding really uninformed........ Why would you want to do that?

I don't think MAX is available for the PC - yet.

IP: Logged

garth paine
Member
posted 12 May 2003 05:08         Edit/Delete Message   Reply w/Quote
Hi David

This is a great hlep thank you, I am always sending masses of control data from Max to the Capy, and now I have one less thing to carry (MIDI Interface - yehh).

I am wondering though, why the object needs to be restricted to MIDI resolution, which is very limiting? I would rather send full resolution data to the Capy, and then if I have to reduce to MIDI range, do the math in the Capy. I am doing a number of projects where weather data for instance is (0-4095) is sent to the Capy, at the moment as pitch bend on several channels (ther are many sensors), but I would really like to do away with the reduction in resolution, or the bandwidth problems with MIDI, so is it possible to extend the MAX aboject to report to a pureData object in the Capy (SSC)?

IP: Logged

SSC
Administrator
posted 12 May 2003 09:43         Edit/Delete Message   Reply w/Quote
I believe David's object receives floating point data -- either 32 or 64 bits depending on whether he used single or double-precision floating point values. The Capybara is capable of receiving 48 bit numbers.

IP: Logged

garth paine
Member
posted 12 May 2003 17:47         Edit/Delete Message   Reply w/Quote
Hi SSC - thanks - David, what is the story re higher resolution IO from your object? Looked like just MIDI when I looked at it? Have I missed something?

IP: Logged

dgkiers
Member
posted 14 May 2003 08:05         Edit/Delete Message   Reply w/Quote
Hi Garth,
The Max object I send you accepts the standard Max float messages, it uses the MIDI channel and controller number naming conventions but does not use the limited controller data type. The only limitations are the necessary FireWire interface connection, and the fact that the object doesn't write the data at interrupt level, making the timing unreliable.
I hope to be able to undo these limitations in the future.
D.

[This message has been edited by dgkiers (edited 14 May 2003).]

IP: Logged

garth paine
Member
posted 19 May 2003 02:48         Edit/Delete Message   Reply w/Quote
great - thanks. I shall look at it in more detail. The ability to have high resolution data transfer is a really important addition to the ways we can address the Capy - thanks for all your work.

IP: Logged

anton
Member
posted 20 May 2003 09:49         Edit/Delete Message   Reply w/Quote
Hello David,

please tell me more about this Max to Kyma communication. I am working with a MAX programmer who would like to build me some MAX control patches to modify Kyma parameters. Is this done over firewire? Please give some details about the protocol you are using...

Antony Hequet
poet composer performer

IP: Logged

garth paine
Member
posted 06 June 2003 13:50         Edit/Delete Message   Reply w/Quote
Just wanted to say how cool it is being able to send floating point control messages to the Capy - thanks heaps - now I just need to find how to det the floating point number box in Max to more that 2 decimal places.......

IP: Logged

dgkiers
Member
posted 06 June 2003 15:51         Edit/Delete Message   Reply w/Quote
how to get the floating point number box in Max to more that 2 decimal places....... [/B][/QUOTE]
AFAIK, to reach those you'll have to do some multiplying or dividing.

IP: Logged

garth paine
Member
posted 25 June 2003 02:55         Edit/Delete Message   Reply w/Quote
Is it possible to send lists to Kyma from MAX - say 256 element lists with video sensing data? Then could I do the analysis of the lists in Kyma? In Smalltalk? In the script object? Lots of questions - thanks,

IP: Logged

dgkiers
Member
posted 01 July 2003 10:28         Edit/Delete Message   Reply w/Quote
Lists are not accepted by my object. What kind of analysis are you thinking of, why not in max/jitter?
D.

[This message has been edited by dgkiers (edited 01 July 2003).]

IP: Logged

garth paine
Member
posted 04 July 2003 03:25         Edit/Delete Message   Reply w/Quote
hi

I currently do the analysis in MAX,but it would be a lot faster in a script language that deals with lists and arrays. I used to use Pyrite a lot for this, but of course it does not work in M4. I would also like to store arrays in Kyma that would then be used for generative processes to evolve synthesis timbres over time and it seems that doing that in Smalltalk would be a much more powerful option that MAX. In order to facilitate that,I would need to be able to send the video data arrays directly to Kyma.

I have also been thinking that for me that would facilitate a much more direct interaction with the synthsesis processes of the Capy - rather than thinking of one system (MAX) as the control system and the other (CAPY) as the synthesis base, one could look at doing all of it in the CAPY, which rings of a more wholistic approach that may bear some more juicy fruits :-)

So, sending lists would be great, then I wouldsimply use MAX as a wrapper for the video sensing control, and do all data manipulation and synthesis in Capy/Kyma.

IP: Logged

dgkiers
Member
posted 04 July 2003 10:06         Edit/Delete Message   Reply w/Quote
Using the Kyma (SmallTalk) for data control is something that I have been struggeling with from the start (maybe never with the right attitude) and the MAX object is the result.
I would need to know whether/how the Capy could receive arrays before adding this functionality to my object (if sending values one by one is not an answer). And for the holistics sake, being able to send values back from the Capy would be a must...
This all looks like post OS migration material.



IP: Logged

SSC
Administrator
posted 04 July 2003 12:27         Edit/Delete Message   Reply w/Quote
What kind of analysis did you have in mind? Could you not receive the array elements one at a time and store them in RAM using a MemoryWriter? Then you could use the contents of the memory as, say, the analysis file for a SpectrumInRAM, or as the source of control for any parameter. You would have to think of the analysis in terms of doing signal processing on this stored wavetable (played back using a Sample or Oscillator). Depending on what the analysis is, there might already be modules in place that do exactly what you had in mind.
Or you could skip the storing step and just receive each element of the array as an update to a different EventValue?


IP: Logged

garth paine
Member
posted 05 July 2003 03:37         Edit/Delete Message   Reply w/Quote
Hi guys

Thanks for engaging in this fatasy...

OK so lets say using video sensing I have a 2D array of 16x16 regions. I do things like analyse those regions to find out
the contiguous regions of activity - ie how big the object is
Divide the total array into sub-regions - imagine the 16x16 comes out as one 256 element array, but it is actually mapping data in rows of 16 regions, so dividing the 256 back into segments that represent spatial regions is one action that is useful then analyse that region for the point of highest activity and compare that point to the last frame (30 f/s) and calculate the angle of movement so that the direction of movement can be calculated.
One might then calculate the spedd of movement as a product of the number of regions that point of highest activity has moved in the last frame
There are also calculations that can be done to look at relationships between contiguous movement blocks (people in this case) and see if they get closer or further appart etc

So there are a number of things like that which are much faster to do in script languages that in MAX. Max requires one to build a crazy patch using Lobjects etc to do individual functions, breaking the list into segmenets and processing each one in a seperate patch etc - clearly a script language like smalltalk is very efficient at doing all those things and could indeed provide a whole range of other functionallity that MAX can not.

I could look at constructing my own protocol to send the arrays as single elements from MAX to Kyma, having a symbol that told Kyma that "that is the end of the array" and go do your work. I did this once for Supercollider, but it was rather laborious and I think slow, spraying the array elements in MAX - at least the firewire objet is not limited to the MIDI bandwidth and so that should help.

If I were to look at that using a Memorywriter, how would I tell it to send out the complete array? Could I tell it to only read out the variables that have changed? Would that be faster? If the array from MAX was a consistent size could I send numbers in a cyclic fashion so that the memory writer was 256 samples long and simply looped back to the start and overwrite? This would need some form of synchronisation so that it was guaranteed that element 0 was element 0.

hhmmmmm more thoughts

IP: Logged

dgkiers
Member
posted 05 July 2003 05:59         Edit/Delete Message   Reply w/Quote
Isn't Jitter designed exactly for these purposes, fast matrix calculations?

IP: Logged

garth paine
Member
posted 10 July 2003 04:59         Edit/Delete Message   Reply w/Quote
Yes, Jitter is made for that, but it means if i want to maintain histories of activities or build arrays of peak behaviours etc which i then want to address in kyma I need to make a mechanism for Kyma to ask MAX to send an element of an array at some point, so I would really much prefer to keep it all in Scripts in Kyma if I can - I see it as giving me more freedom to design evolving algorithms in Kyma based on histograms of activity etc

Also, I don't own Jitter and I do own Kyma


IP: Logged

SSC
Administrator
posted 10 July 2003 09:57         Edit/Delete Message   Reply w/Quote
Perhaps you could assign each region a different EventValue in Kyma. MAX could send updates to those EventValues one at a time over David's interface (rather than sending an array). For example, you could label the columns A,B,C,D and rows A, B, C, D and then the array elements would be !AA !AB !AC !AD !BA, etc.
Then you could create CapyTalk expressions to control parameter fields with these elements. As a simple example, say you wanted to control the CutOff parameter of a Filter based on how dark the upper right corner was compared to the bottom row. You could use something like:
1000 hz * (!AD / (!DA + !DB + !DC + !DD))

Just a thought...

IP: Logged

dgkiers
Member
posted 23 August 2003 10:08         Edit/Delete Message   Reply w/Quote
quote:

I don't think MAX is available for the PC - yet.

max/msp now also winXP: http://www.cycling74.com/products/maxmsp.html


IP: Logged

All times are CT (US)

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply

Contact Us | Symbolic Sound Home

This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.


Ultimate Bulletin Board 5.45c