Friday, November 10, 2006 19:37 - OpenSoundControl
Thanks to Charles Bascou from GMEM there's an update to the oscbonjour maxmsp externals for UniversalBinary.
see the old article for the download location
| permalink
| related link
| ( 3 / 5902 )
Thursday, November 9, 2006 11:05 - Code
yes, it's possible because ObjectiveC is a strict superset of C. You just need to use a *.m extension so that Xcode compiles it as ObjectiveC and not just C.
I already used C++ to write maxmsp externals so I knew it should be possible with another C based language. But I needed a proof of concept. here it is:
#include "ext.h"
#import <Foundation/NSObject.h>
@interface Fraction : NSObject
{
int num;
int den;
}
- (void) setNumerator: (int) d;
- (void) setDenominator: (int) d;
- (int) numerator;
- (int) denominator;
- (void) print;
@end
@implementation Fraction
- (void) setNumerator: (int) d
{
num = d;
}
- (void) setDenominator: (int) d
{
den = d;
}
- (int) numerator
{
return num;
}
- (int) denominator
{
return den;
}
- (void) print
{
post("%i/%i",num,den);
}
@end
typedef struct
{
t_object o;
Fraction *frac; // to show how we can store an ObjectiveC instance inside a C struct.
} objc_t;
static t_messlist *objc_class = NULL;
static void *objc_new(Symbol *s, short ac, Atom *at)
{
objc_t *o = (objc_t *)newobject(objc_class);
Fraction *frac = [[Fraction alloc] init];
[frac setNumerator: 1];
[frac setDenominator: 4];
[frac print];
o->frac = frac;
return o;
}
static void objc_free(objc_t *o)
{
Fraction *frac = o->frac;
if(frac)
{
[frac release];
}
}
int main(void)
{
setup(&objc_class,
(method)objc_new,
(method)objc_free,
(short)sizeof(objc_t), 0L,
A_GIMME, 0);
}
Friday, June 16, 2006 17:36 - OpenSoundControl
beware this is just a draft
here is a max/msp external for OSX (UniversalBinary) and windows doing Bonjour/ZeroConf service discovery and announcement:
basically there are only 3 messages:
browse: browse for available services of type _osc._udp
resolve name: get hostname and port number from service name
register name port: register and a service of type _osc._udp with specificied name and UDP port number
here is the download link:
oscbonjour.zip
and the old one
oscbonjour_ppc_win.zip
for the windows version you'll need to install Bonjour for windows:
http://www.apple.com/fr/macosx/features/bonjour/
SourceCode
the sourcecode is available on sourceforge under a BSD license, you'll need 2 modules: oscbonjour and zeroconf, here are the commands you need to run:
svn co https://svn.sourceforge.net/svnroot/osctools/trunk/oscbonjour oscbonjour
svn co https://svn.sourceforge.net/svnroot/osctools/trunk/zeroconf zeroconf
Update
osc-bonjour for Max/MSP is no longer maintained, please use the more general zeroconf.browse, zeroconf.resolve and zeroconf.register externals instead.
They are much simpler and powerful and let you work with any kind of zeronf services, not just _osc._udp.
http://sourceforge.net/projects/osctools/files/
Friday, June 9, 2006 17:50 - OpenSoundControl
We had a very interresting meeting with about 20 OSC developpers on thurday June 8th 2006 about the future of OSC standardization.
the meeting was lead by Matt Wright(CNMAT) with participation from David Wessel(CNMAT), Ali Momeni(CNMAT?), Emmanuel Flety(IRCAM), Seb Beaulieu (Plogue), me(IRCAM) the JazzMutant's team and many others whose names I don't remember.
Matt has put online an overview of the hot topics of the meeting:
http://www.opensoundcontrol.org/group_book/developers/nime06meeting
the highlights are on the usage of ZeroConf/Bonjour/Rendez-Vous for service discovery and registration,
OSC namespace discovery
Next