[Sc-devel] Embedding Specs in SynthDefs

Scott Wilson sdwilson at wesleyan.edu
Mon Jul 30 13:03:20 PDT 2007


On 30 Jul 2007, at 02:11, felix wrote:

>
>>
>> Well, not only. Patterns depend on them client-side. The whole
>> SynthDesc situation came about because of the need to decompile those
>> files back into the client.
>
> So it would be better for them to use Instrument (as I propose it, a
> superclass of Instr), right ?  then no need to decompile those synth
> defs.

I see no reason they shouldn't support Instrument as well. But  
patterns aren't generally dependant on specs, at least not at the  
moment, or?

This might be suggestive of some new possibilities though...
>
> and curiously, that is in fact where Instrument originally came from.
>
> so we should simply put it back.
>
> the problem I had with jmc's Instrument was that it was coupled with a
> specific GUI system.
>
> but here we would have just a synth def holder.  GUI systems can do
> whatever they want (by reading the specs), and so can patterns.

Since you're keen on sharing, I like the idea of having an optional  
GUI which can be added to one's Instrument and distributed with it. I  
agree that guiBody should probably go, but we could provide a generic  
hook for this. If a GUI is not supplied, we could still have it  
generate a simple default one along the lines of  
SynthDesc:makeWindow. This would be useful at least for testing  
purposes.
>
>> Um, patterns. Or are you proposing they start using Instr?
>
> Instrument
>
> just like it used to be
> see its still there :
>
> 			event[\instrument] = synthName;
>
> no reason to break anything though.  look it up in SynthDescLib, if
> not found then look it up in Instrument, loading from file if need be.
>  this would be quite ideal.

This seems sensible.
>
> Instr would then be interchangeable, a subclass that allows objects to
> be passed in and an Out.ar to be tacked on when needed.

Okay, I can see that given that this is going to be added into  
Common, the difference between my slightly expanded SynthDesc and  
Instrument is pretty fine grained, and since the idea of altering the  
scsyndef file format is getting no love (with the exception or  
Gerard...) I'll drop it.

I still think it would be useful to have the scsyndef file and  
Instrument stored together in one convenient package though, at least  
optionally. Maybe when an Instrument is written to disk it could  
optionally have the scsyndef written at the same time, both into a  
subfolder of the Instrument dir. Then you could ask the server to  
load that dir, and you could have the choice of just the server-side,  
just the client-side, or both.

It's funny how we circle around ideas and assumptions that persist  
from earlier in the development of SC, sometimes pulling away,  
sometimes coming back. From the early days of SC3 it seemed to me  
that the idea of having defs pre-compiled was encouraged. It's been  
interesting to see how the assumption that one is doing that has  
caused some issues. I've sometimes wonder if it makes sense, even  
though I benefit from it. (I have some pieces which use thousands of  
pre-compiled defs. Waiting for them to load is bad enough, I would  
hate to wait for them to be re-compiled...)

S.



More information about the Sc-devel mailing list