Hi Jason,
I can't explain the broken pipe, that looks odd. what editor are you using?
Each Extempore process is isolated - both in terms of namespace and memory.
In practice this means that if you define something in one process it is NOT immediately available in another.
To make it available you need to use the ipc (inter process communication) family of functions.
There is a basic function for sharing audio related functions called ipc:audio-setup ...
(ipc:audio-setup "utility")
This will bind a bunch of 'standard' things in whatever process you give it (utility in the example above), including the fmsynth and the sampler.
for any additional instruments you can explicitly bind them like this:
;;;; assuming you are connected to primary process
;; first create sampler2
(bind-sampler sampler2 sampler_note_hermite_c sampler2_fx)
;; then make sampler2 available to the utility process
(ipc:bind-func "utility" 'sampler2)
for any scheme related things you wish to share you'll use ipc:define
here are a couple of examples:
(define mylist (list 1 2 3))
(define myfunc (lambda (x) (* x x)))
(ipc:define "utility" 'mylist mylist)
(ipc:define "utility" 'myfunc myfunc)
so ... name of process to define in followed by symbol name to bind to followed by the thing to bind.
just FYI you can then call across processes using ipc:call and ipc:call-async. For example...
(println (ipc:call "utility" 'myfunc 2.0))
Although for your performance you'll probably most likely want to connect directly to the processes.
Good Luck!!
Cheers,
Andrew.