![]() |
![]() ![]() ![]() ![]() ![]()
|
next newest topic | next oldest topic |
Author | Topic: Max>Flame>Capybara |
dgkiers Member |
![]() ![]() ![]() 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 |
![]() ![]() ![]() Whoa! Looks like you have given me a good reason to buy a Mac! - DM IP: Logged |
torvald Member |
![]() ![]() ![]() At the risk of sounding really uninformed........ Why would you want to do that? IP: Logged |
Bill Meadows Member |
![]() ![]() ![]() quote: I don't think MAX is available for the PC - yet. IP: Logged |
garth paine Member |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 IP: Logged |
garth paine Member |
![]() ![]() ![]() 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 |
![]() ![]() ![]() how to get the floating point number box in Max to more that 2 decimal places....... ![]() AFAIK, to reach those you'll have to do some multiplying or dividing. IP: Logged |
garth paine Member |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 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 |
![]() ![]() ![]() Isn't Jitter designed exactly for these purposes, fast matrix calculations? IP: Logged |
garth paine Member |
![]() ![]() ![]() 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 |
![]() ![]() ![]() 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 |
![]() ![]() ![]() quote: 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 |
![]() ![]() |
This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.