digego / extempore

A cyber-physical programming environment
1.41k stars 127 forks source link

Segmentation fault following example in the documentation #296

Closed dangom closed 4 years ago

dangom commented 7 years ago

Hi,

I've just downloaded and installed extempore on a MacOS, and I was trying to get to know it by following the example in the documentation. I first connected Emacs to a running extempore process started with `extempore --device 1``.

ARCH           : x86_64-apple-darwin16.4.0
CPU            : haswell
ATTRS          : -sse4a,-avx512bw,+cx16,-tbm,+xsave,-fma4,-avx512vl,-prfchw,+bmi2,-adx,-xsavec,+fsgsbase,+avx,-avx512cd,-avx512pf,-rtm,+popcnt,+fma,+bmi,+aes,+rdrnd,-xsaves,+sse4.1,+sse4.2,+avx2,-avx512er,+sse,+lzcnt,+pclmul,-avx512f,+f16c,+ssse3,+mmx,-pku,+cmov,-xop,-rdseed,+movbe,-hle,+xsaveopt,-sha,+sse2,+sse3,-avx512dq
LLVM           : 3.8.0 MCJIT
Output Device  : Built-in Output
Input Device   : 
SampleRate     : 44100
Channels Out   : 2
Channels In    : 0
Frames         : 128
Latency        : 0.0092517 sec
---------------------------------------

I then typed the following:

;; load the instruments file
(sys:load "libs/core/instruments.xtm")

;; define a synth using the provided components
;; synth_note_c and synth_fx
(bind-instrument synth synth_note_c synth_fx)

This gave me an unbound variable error on bind-instrument. After reading here that the API changed, I updated the call to:

;; (bind-instrument synth synth_note_c synth_fx) 
;; Above won't work. Change to:
(make-instrument synth synth_note_c synth_fx)

Continuing with the original example then generates a segmentation fault:

;; add the instrument to the DSP output callback
(bind-func dsp:DSP
  (lambda (in time chan dat)
    (synth in time chan dat)))
(dsp:set! dsp)

Process extempore segmentation fault: 11

Is there any other place where I could find examples to follow? Thanks a lot for the awesome project =)

digego commented 7 years ago

Hi Daniel,

I'm afraid that in HEAD there is no "synth" (synth_note or synth_fx). Yes, we need to either (a) add the basic synth back or (b) change the documentation.

My suggestion, is that you start by looking at the source code examples in HEAD (not the examples in documentation), which have been updated and should all work. In particular you might find the new examples/core/covers.xtm informative and fun :) This is probably the best example of how the 'new' instrument system should be used. Also 'covers' is designed to show how configurable the new "analogue" instrument is.

Cheers, Andrew.

On Sun, Mar 26, 2017 at 9:47 AM, Daniel Gomez notifications@github.com wrote:

Hi,

I've just downloaded and installed extempore on a MacOS, and I was trying to get to know it by following the example in the documentation http://digego.github.io/extempore/time.html. I first connected Emacs to a running extempore process started with `extempore --device 1``.

ARCH : x86_64-apple-darwin16.4.0 CPU : haswell ATTRS : -sse4a,-avx512bw,+cx16,-tbm,+xsave,-fma4,-avx512vl,-prfchw,+bmi2,-adx,-xsavec,+fsgsbase,+avx,-avx512cd,-avx512pf,-rtm,+popcnt,+fma,+bmi,+aes,+rdrnd,-xsaves,+sse4.1,+sse4.2,+avx2,-avx512er,+sse,+lzcnt,+pclmul,-avx512f,+f16c,+ssse3,+mmx,-pku,+cmov,-xop,-rdseed,+movbe,-hle,+xsaveopt,-sha,+sse2,+sse3,-avx512dq LLVM : 3.8.0 MCJIT Output Device : Built-in Output Input Device : SampleRate : 44100 Channels Out : 2 Channels In : 0 Frames : 128 Latency : 0.0092517 sec

I then typed the following:

;; load the instruments file (sys:load "libs/core/instruments.xtm") ;; define a synth using the provided components;; synth_note_c and synth_fx (bind-instrument synth synth_note_c synth_fx)

This gave me an unbound variable error on bind-instrument. After reading here https://groups.google.com/forum/#!topic/extemporelang/Ik1Naxv9umI that the API changed, I updated the call to:

;; (bind-instrument synth synth_note_c synth_fx) ;; Above won't work. Change to: (make-instrument synth synth_note_c synth_fx)

Continuing with the original example then generates a segmentation fault:

;; add the instrument to the DSP output callback (bind-func dsp:DSP (lambda (in time chan dat) (synth in time chan dat))) (dsp:set! dsp)

Process extempore segmentation fault: 11

Is there any other place where I could find examples to follow? Thanks a lot for the awesome project =)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/digego/extempore/issues/296, or mute the thread https://github.com/notifications/unsubscribe-auth/AAh3qdtGXM_uR-P8kUrpjes4FlU2LPwCks5rpaeLgaJpZM4MpQjj .

dangom commented 7 years ago

I'll start with covers.xtm then. Thanks for the quick answer!

digego commented 7 years ago

requires documentation update

benswift commented 4 years ago

this is now fixed.