I’m in the process of cleaning the script up now, but when I’m done I’ll shoot you a copy. Basically, I’m reading in a text file with the ServiceName and ServiceDescription comma delimited. When shutting down the service, it stops it, then disables it. Reverse when starting… enable then start.
Excellent book! I thought I had my system well optimised for audio but there were a few things in the book that I had missed.
One question. In the section about 32/64 bit hosts, you mention that audio transfer is slower when bridging in a mixed 32/64 bit setup. Does this apply to Cantabile with built in jBridge support? I’m not entirely clear how jBridge works in terms of processes etc.
jBridge works by running the bridged plugin in a separate process and using some sort of interprocess comms to pass audio/midi data to/from it. Since you can’t call directly into another process there will always be an overhead to this. There are two ways to handle it:
Wake the other process and block until it responds.
Use some form of double buffering - wake the other program, don’t block but pickup the response from it on the next audio cycle.
The problem with 1) is that you’re blocking which is naughty as far as real-time audio goes.
The problem with 2) is that you’re introducing an additional audio cycle of latency with that plugin.
I’m not sure which approach jBridge uses. Bridging is handy when you need it but not without it’s drawbacks which means you should bridge as few plugins as possible.
Latest revision of the book is now available from here.
I’ve also written a new section “The Kitchen Analogy” which attempts to explain the concepts of threads, interrupts and virtual memory using a restaurant kitchen as an analogy. I’m not sure whether to leave it in or not.
Thanks for sharing. On a quick skim through, there were some settings/tweaks that I was not aware of. So will be getting the ePub on my iPad and giving it a good read!