halp! live show tonight

32 views
Skip to first unread message

Jason Levine

unread,
Jul 6, 2015, 5:37:06 PM7/6/15
to extemp...@googlegroups.com
Hey Extempore,

A while back there was a thread concerning the proper use of the primary thread and utility thread.  The main take away was to put all xtlang on the primary thread(no choice) and all temporal recursions on the utility thread so that they would not be interrupted when recompiling the DSP function.

However, when I attempt to evaluate this on the utility thread:
(define groove1 (list B11 B14 B12 B13 B16))

I get:
groove1
Evaluation failed: [Errno 32] Broken pipe

When I start a temporal recursion that plays a sampler, I'm told that the sampler is not bound

eval: unbound variable: conga

What am I missing?

Thanks! And wish me luck tonight!

-- 

Jason Levine
new media performer + creative coder

Andrew Sorensen

unread,
Jul 6, 2015, 8:08:07 PM7/6/15
to extemp...@googlegroups.com
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.



--
You received this message because you are subscribed to the Google Groups "Extempore" group.
To unsubscribe from this group and stop receiving emails from it, send an email to extemporelan...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jason Levine

unread,
Jul 6, 2015, 8:25:09 PM7/6/15
to extemp...@googlegroups.com
ok thanks! ill give that a try

Jason Levine

unread,
Jul 6, 2015, 8:28:02 PM7/6/15
to extemp...@googlegroups.com
oh, and im using sublime text


On Monday, July 6, 2015, Andrew Sorensen <dig...@gmail.com> wrote:

Andrew Sorensen

unread,
Jul 6, 2015, 8:57:34 PM7/6/15
to extemp...@googlegroups.com
ok, off the top of my head I think the broken pipe error is coming from sublime for some reason.

Ben Swift

unread,
Jul 6, 2015, 9:56:49 PM7/6/15
to extemp...@googlegroups.com
Yeah, I think that's probably the case - is it still happening now that
Extempore's not crashing?

Cheers,
Ben
>>>> *(define groove1 (list B11 B14 B12 B13 B16))*
>>>>
>>>> I get:
>>>> *groove1*
>>>> *Evaluation failed: [Errno 32] Broken pipe*
>>>>
>>>> When I start a temporal recursion that plays a sampler, I'm told that
>>>> the sampler is not bound
>>>>
>>>> *eval: unbound variable: conga*
>>>>
>>>> What am I missing?
>>>>
>>>> Thanks! And wish me luck tonight!
>>>>
>>>> --
>>>> Jason Levine
>>>> new media performer + creative coder
>>>> *https://www.behance.net/jasonlevine
>>>> <https://www.behance.net/jasonlevine>*
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Extempore" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to extemporelan...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Extempore" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to extemporelan...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> --
>> Jason Levine
>> new media performer + creative coder
>> *https://www.behance.net/jasonlevine <https://www.behance.net/jasonlevine>*

ami...@gmail.com

unread,
Jul 7, 2015, 1:47:23 AM7/7/15
to extemp...@googlegroups.com, extemp...@googlegroups.com
Well I was at the show and it all sounded cool, so either it worked out or it wasn't a very important pipe :P

Tom

Ben Swift

unread,
Jul 7, 2015, 1:48:56 AM7/7/15
to extemp...@googlegroups.com
Good to hear. Any video? :)

Jason Levine

unread,
Jul 7, 2015, 9:20:09 AM7/7/15
to extemp...@googlegroups.com
everything worked out, thanks!

Jason Levine

unread,
Jul 9, 2015, 3:47:46 PM7/9/15
to extemp...@googlegroups.com
no more broken pipe. not sure if there is video, I'll ask around.

Reply all
Reply to author
Forward
0 new messages