dsp:DSP   xtlang


Defined in:  https://github.com/digego/extempore/tree/v0.8.9/examples/external/audio_player.xtm

Implementation

(bind-func dsp:DSP
  (let ((audio_file_path "assets/samples/xmas_carol.wav")
        ;; get number of channels/frames in file
        (nchan (convert (sf_channels_from_file audio_file_path)))
        (nframes (sf_frames_from_file audio_file_path))
        (nsamp (* nchan nframes))
        ;; allocate memory buffer for audio samples
        (audio_data:SAMPLE* (zalloc nsamp))
        ;; read audio samples into buffer
        (samples_read (sf_read_file_into_buffer audio_file_path audio_data 0 nframes #t))
        ;; markers for keeping track of playback position
        (playhead 0)
        (i 0))
    (if (< samples_read 0)
        (printf "Error reading audio file.\n"))
    (lambda (in time chan dat)
      ;; increment playhead (this is the most basic playback possible
      ;; - it's not channel aware, it just steps through the buffer
      ;; one sample at a time)
      (set! playhead (modulo (+ playhead 1) nsamp))
      ;; play audio
      (* 1.0 (pref audio_data playhead)))))


Back to Index

Similar Entries

  • _dsp:set!    scheme    /digego/extempore/tree/v0.8.9/runtime/scheme.xtm
  • dsp    xtlang    /digego/extempore/tree/v0.8.9/examples/core/audio_101.xtm
  • dsp    xtlang    /digego/extempore/tree/v0.8.9/examples/core/audio_101.xtm
  • dsp    xtlang    /digego/extempore/tree/v0.8.9/examples/core/audio_101.xtm
  • dsp    xtlang    /digego/extempore/tree/v0.8.9/examples/core/audio_101.xtm
  • dsp    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/lv2.xtm
  • dsp    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/polysynth.xtm
  • dsp    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/polysynth.xtm
  • dsp    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/TSM_example.xtm
  • dsp1:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/mtaudio.xtm
  • dsp1:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/sharedsystem/audiosetup.xtm
  • dsp1:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/external/convolution_reverb.xtm
  • dsp2:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/mtaudio.xtm
  • dsp2:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/sharedsystem/audiosetup.xtm
  • dsp3:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/mtaudio.xtm
  • dsp3:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/sharedsystem/audiosetup.xtm
  • dsp4:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/sharedsystem/audiosetup.xtm
  • dsp5:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/sharedsystem/audiosetup.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/topclock_metro.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/covers.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/audio_streams.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/audio_101.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/midi_synth.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/scheduler.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/synth.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/core/fmsynth.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/rtmidi.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/portaudio.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/spectral_meter.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/convolution.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/external/going-native.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/external/spectrogram.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/external/sampler.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/external/sing_a_song.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/external/electrofunk.xtm
  • dsp:DSP    xtlang    /digego/extempore/tree/v0.8.9/examples/external/granulator.xtm
  • dsp:VDSP    xtlang    /digego/extempore/tree/v0.8.9/libs/core/vaudio_dsp.xtm
  • dsp:set!    macro    /digego/extempore/tree/v0.8.9/runtime/scheme.xtm
  • dsp_load    xtlang    /digego/extempore/tree/v0.8.9/examples/sharedsystem/audiosetup.xtm
  • dsp_randn    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audio_dsp.xtm
  • dsp_randn    xtlang    /digego/extempore/tree/v0.8.9/libs/core/vaudio_dsp.xtm
  • dspmt:DSPMT    xtlang    /digego/extempore/tree/v0.8.9/examples/core/mtaudio.xtm
  • dspmt:DSPMT    xtlang    /digego/extempore/tree/v0.8.9/examples/sharedsystem/audiosetup.xtm
  • dspsum:DSPMT    xtlang    /digego/extempore/tree/v0.8.9/examples/external/convolution_reverb.xtm
  • pure_dsp    xtlang    /digego/extempore/tree/v0.8.9/examples/core/audio_streams.xtm