Yet Another Max/MSP-Cocoa Communication

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Yet Another Max/MSP-Cocoa Communication - Presentation Transcript

    1. Yet Another Max/MSP - Cocoa Integration cocoa-send / cocoa-receive external objects Nao Tokui 1
    2. Why Integrate? • Max/MSP ○ Useful for Audio / MIDI / Images .... !! Scalability × Hard to manage big data set. 2
    3. Why Integrate? • Cocoa - Native OS X Environment ○ Lots of useful frameworks and easy-to-use tools for them. • Frameworks - CoreData, Bonjour, QuartzComposer... • Tool - Xcode, InterfaceBuilder... × Audio / MIDI API is very very complicated. • Core Audio / Core MIDI / Quick Time 3
    4. Max/MSP Cocoa Bonjour Audio CoreData MIDI OpenGL 4
    5. Conventional Ways • MIDI? • CoreMIDI - Simply Overkill! • Open Sound Control • Very flexible, but clumsy implementation • Not easy to use in Cocoa 5
    6. NE W cocoa_send / receive external object 6
    7. Features ○ Simple to implement and Just works! ○ No need to “connect” explicitly (Always Connected!!) × Limited to local use OK NG! Cocoa Max Cocoa Max http://commons.wikimedia.org/w/index.php?title=Image:MacBook_Pro_transparency.png 7
    8. Technical Details • cocoa_send/receive use OS X’s Inter- Application Communication called “Distributed Notifications” • eg.) Preference Pane • http://developer.apple.com/documentation/UserExperience/Conceptual/ PreferencePanes/Tasks/Communication.html 8
    9. How to Use #1 1. Download cocoa_send/receive objects and sample application from www.naotokui.com 2. Set “Channel Names” • These names will be used to identify communication channels. They must be shared between Max objects and Cocoa project. Max ← Cocoa Max → Cocoa 9
    10. How to Use #2 3. Open Cocoa_SR_Test folder and include Cocoa_SR_Test.h/ m in your own Cocoa Project. 4. Set the same Channel Names #define CH_NAME_FROM_COCOA @\"FROM_Cocoa\" #define CH_NAME_TO_COCOA @\"TO_Cocoa\" 5. Use -sendString: -sendFloat:/- sendInteger methods to send. 10
    11. Sending from Cocoa • Use -send**: methods. - (void) sendString: (NSString *) str; - (void) sendFloat: (float) number; - (void) sendInteger: (int) number; 11
    12. Receiving in Cocoa • Customize callbackWithNotification: a callback function: - (void) - (void) callbackWithNotification:(NSNotification *)myNotification { NSDictionary *dict = [myNotification userInfo]; // a string value received NSString *string = [dict valueForKey:SHARED_DICTIONARY_KEY_FOR_ANYTHING]; if (string) { // Do something } ..... • Dictionary Keys: SHARED_DICTIONARY_KEY_FOR_FLOAT SHARED_DICTIONARY_KEY_FOR_INT SHARED_DICTIONARY_KEY_FOR_ANYTHING 12
    13. Usage Cases • Phonethica Rondo / VoiceCosmos http://www.ntticc.or.jp/Archive/2006/Openspace/network/phonethica_j.html • Matarisama Binary 1.2 (by N.Nagano) 13
    14. Links • Download • www.naotokui.com/home/Downloads.html 14

    + tokuitokui, 2 years ago

    custom

    3016 views, 0 favs, 7 embeds more stats

    This slide presents cocoa_send / receive external o more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 3016
      • 2360 on SlideShare
      • 656 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 19
    Most viewed embeds
    • 351 views on http://www.sonasphere.com
    • 286 views on http://www.naotokui.com
    • 10 views on http://tokyomax.jp
    • 4 views on http://wildfire.gigya.com
    • 2 views on http://naotokui.com

    more

    All embeds
    • 351 views on http://www.sonasphere.com
    • 286 views on http://www.naotokui.com
    • 10 views on http://tokyomax.jp
    • 4 views on http://wildfire.gigya.com
    • 2 views on http://naotokui.com
    • 2 views on http://127.0.0.1:8080
    • 1 views on http://cache.yahoofs.jp

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories