the receive code for portmidi receiving is not stable. i think i have the correct sourcese now, but have not checked them into cvs because im waiting for roger dannenberg to make some updates to the portmidi lib itself.
i will  check in the fixes nonetheless and hope for the best.

will try the examples later today or tomorrow in sbcl as i find time.


On Oct 5, 2006, at 9:06 PM, Ken wrote:

I'm having additional trouble with portmidi and rts.

I have installed the latest cvs of the following:
cm
rts
portmidi interface
cffi-062925

lisp:
sbcl 0.9.17

Sbcl loads everything fine including cffi, portmidi and rts.
Going through the examples I get the following.
Example 3 of the Portmidi entry:

(define *pm* (portmidi-open :latency 0 :input 3 :output 0))

(define myseq (new <cid:[email protected]> seq <file:///home/nunativs/sound/cm/system/cm/doc/dict/seq-fn.html>))

(portmidi-record! myseq)

portmidi-record!: receiver already active.
  [Condition of type SIMPLE-ERROR]

Restarts:
 0: [ABORT-REQUEST] Abort handling SLIME request.
1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl- thread" {AD40161}>)

Backtrace:
 0: (PORTMIDI-RECORD! #<seq {AF1A211}>)
1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (PORTMIDI-RECORD! MYSEQ) #<NULL- LEXENV>)
 2: (SWANK::EVAL-REGION "(portmidi-record! myseq)
" T)
 3: ((LAMBDA NIL))
4: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (T)) #<unused argument> #<unused argument> #<CLOSURE (LAMBDA NIL) {B17E94D}>)
 5: (SWANK::CALL-WITH-BUFFER-SYNTAX #<CLOSURE (LAMBDA NIL) {B17E94D}>)
6: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(portmidi- record! myseq)
") #<NULL-LEXENV>)
 7: ((LAMBDA NIL))
8: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL) {B17E26D}>)
 9: ((LAMBDA NIL))
10: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- DEBUGGER-HOOK> #<FUNCTION (LAMBDA NIL) {B58372D}>) 11: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {ABDD701}> #<CLOSURE (LAMBDA NIL) {B17E11D}>) 12: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {ABDD701}> #<FUNCTION (LAMBDA NIL) {B58372D}>)
13: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {ABDD701}>)
14: ((LAMBDA NIL))
15: ((LAMBDA NIL))
16: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL) {AD540C5}>) 17: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {ABDD701}> #<CLOSURE (LAMBDA NIL) {AD540D5}>) 18: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {ABDD701}> #<CLOSURE (LAMBDA NIL) {AD540C5}>)
19: (SWANK::CALL-WITH-BINDINGS NIL #<CLOSURE (LAMBDA NIL) {AD540A5}>)
20: ((LAMBDA NIL))
21: ("foreign function: call_into_lisp")
22: ("foreign function: funcall0")
23: ("foreign function: new_thread_trampoline")
24: ("foreign function: #xB7FC8341")

Example #2 of rts:
(define fluff '(60 62 64 67 72 65 69 48 50))

(define (endless-fluff num dur knums)
(process <cid:[email protected]> repeat num for i from 0 output (new <cid:[email protected]> midi <cid:[email protected]> :time (now <cid:[email protected]>) :duration (* 2 dur)
               :amplitude .5
:keynum (pickl <cid:[email protected]> fluff)) wait (pick <cid:[email protected]> dur (/ dur 2) (/ dur 4))
           when (= i (1- num))
sprout (process <cid:[email protected]> repeat 4 output (new <cid:[email protected]> midi <cid:[email protected]> :time (now <cid:[email protected]>) :duration 5 :amplitude . 5 :keynum (pickl <cid:[email protected]> knums)))
           and
           sprout (endless-fluff 20 1 knums)))

(rts *pm*)

(sprout (endless-fluff 20 1 fluff))


invalid number of arguments: 5
  [Condition of type SB-INT:SIMPLE-PROGRAM-ERROR]

Restarts:
 0: [ABORT-REQUEST] Abort handling SLIME request.
1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl- thread" {AD43161}>)

Backtrace:
0: (RTS-ENQUEUE 1 #<CLOSURE (LAMBDA NIL) {A6CB425}> 10.493859 10.493859)
 1: (SPROUT #<CLOSURE (LAMBDA NIL) {A6CB425}> :TO NIL :AT NIL)
2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SPROUT (ENDLESS-FLUFF 20 1 FLUFF)) #<NULL-LEXENV>)
 3: (SWANK::EVAL-REGION "(sprout (endless-fluff 20 1 fluff))
" T)
 4: ((LAMBDA NIL))
5: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (T)) #<unused argument> #<unused argument> #<CLOSURE (LAMBDA NIL) {A696DC5}>)
 6: (SWANK::CALL-WITH-BUFFER-SYNTAX #<CLOSURE (LAMBDA NIL) {A696DC5}>)
7: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL "(sprout (endless-fluff 20 1 fluff))
") #<NULL-LEXENV>)
 8: ((LAMBDA NIL))
9: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL) {A6966E5}>)
10: ((LAMBDA NIL))
11: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- DEBUGGER-HOOK> #<FUNCTION (LAMBDA NIL) {B58A72D}>) 12: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {ABDF701}> #<CLOSURE (LAMBDA NIL) {A696595}>) 13: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {ABDF701}> #<FUNCTION (LAMBDA NIL) {B58A72D}>)
14: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {ABDF701}>)
15: ((LAMBDA NIL))
16: ((LAMBDA NIL))
17: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL) {AD520C5}>) 18: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {ABDF701}> #<CLOSURE (LAMBDA NIL) {AD520D5}>) 19: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {ABDF701}> #<CLOSURE (LAMBDA NIL) {AD520C5}>)
20: (SWANK::CALL-WITH-BINDINGS NIL #<CLOSURE (LAMBDA NIL) {AD520A5}>)
21: ((LAMBDA NIL))
22: ("foreign function: call_into_lisp")
23: ("foreign function: funcall0")
24: ("foreign function: new_thread_trampoline")
25: ("foreign function: #xB7FC8341")


I notice that almost all the rts examples give errors, nor can i get a usb midi keyboard to function as an input. I am able to get portmidi to spit out midi processes, but the timing will get screwed up or the notes will not all come out. I am shooting for realtime midi in and out at some point, so any pointers on which direction to pursue are greatly appreciated.
Thanks,
Ken

_______________________________________________
Cmdist mailing list
[email protected]
http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist

_______________________________________________
Cmdist mailing list
[email protected]
http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist

Reply via email to