>Of course, in the strict by-the-book standard, the SAOL
>and SASL are being delivered from the same server (or set
>of servers), so presumably the name matching is handled at
>encode time. You highlight an interesting outside-the-
>standard problem, though. If I have a "SASL controller",
>like a MIDI controller, but capable of sending SASL over
>a wire to a running SAOL orchestra, how do I tell the
>controller what the names of the instruments and controllers
>in the orchestra are?
I've been thinking about this too. What is needed is reflection information,
a relatively complete form would be.
saol_reflection_info{
srate
krate
inchannels
outchannels
num_ksigs
ksigs[]{ //global ksigs settable using control lines in sasl
name
description*
units* // Hz, dB, .etc or none (could be a string to allow other
units to be defined later
minimum*
maximum* // sending control values outside minimum and maximum
would have undefined results
}
num_tables
tables[]{ //global tables
name
description*
???
}
num_effect_instances
effect_instances[]{
name //an instrument name
tag*
}
num_instrument_types
instruments[]{
name
description*
num_preset_nums
preset_nums[]
num_pfields
pfields[]{
name
description*
units*
minimum*
maximum*
}
num_ksigs
ksigs[]{ //instrument ksigs setable using tagged (labeled) instances
name
description*
units* // Hz, dB, .etc or none (could be a string to allow other
units to be defined later
minimum*
maximum* // sending control values outside minimum and maximum
would have undefined results
}
}
}
some of this could be synthesized from a saol orc, fields marked * would be
useful but would need language extensions (or perhaps special tagged
comments in the orc). being able to specify which instruments etc were put
into the reflection info would bu usefull (I would use the published
modifier). eg:
published ksig rate; //means that "rate" is placed in the reflection info
for the current scope.
if tagged comments were used (embed info in comments like javadoc) then you
wouldn't have to change the spec at all. it's possible to generate sane
values for the extended (*) reflection info eg {description="";
units="unknown"; minimum=MIN_FLOAT; maximum=MAX_FLOAT}
Cheers,
Ross.
This archive was generated by hypermail 2b29 : Wed May 10 2000 - 12:15:39 EDT