audiofile_wave_read_samples   xtlang


Defined in:  https://github.com/digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm

Implementation

(bind-func audiofile_wave_read_samples
  (lambda (filepath dest:SAMPLE*)
    (let ((filedata (sys_slurp_file filepath)))
      (if (null? filedata)
          (begin (println "wavefile error: could not open file")
                 (free filedata)
                 #f)
          (cond ((not (wave_validate filedata))
                 (println "wavefile error: there was a problem with the chunk IDs...\nis the file corrupt?")
                 (free filedata)
                 #f)
                (else
                 (let ((fmt (iffchunk_find_dumb filedata "fmt "))
                       (chunksize (i32toi64 (iffchunk_size (cast fmt IffChunkHeader*) #t)))
                       (type (i16toi64 (pref (cast (pref-ptr fmt IFF_CHUNK_HEADER_SIZE) i16*) 0)))
                       (nchan (i16toi64 (pref (cast (pref-ptr fmt (+ IFF_CHUNK_HEADER_SIZE 2)) i16*) 0)))
                       (samplerate (i32toi64 (pref (cast (pref-ptr fmt (+ IFF_CHUNK_HEADER_SIZE 4)) i32*) 0)))
                       (bitdepth (i16toi64 (pref (cast (pref-ptr fmt (+ IFF_CHUNK_HEADER_SIZE 14)) i16*) 0)))
                       (data (iffchunk_find_dumb filedata "data"))
                       (nframes (/ (i32toi64 (iffchunk_size (cast data IffChunkHeader*) #t))
                                   (* nchan (/ bitdepth 8))))
                       ;; read data into memory
                       (res (audiofile_copy_samples (pref-ptr data IFF_CHUNK_HEADER_SIZE)
                                                    dest
                                                    (* nchan nframes)
                                                    bitdepth
                                                    type
                                                    #t)))
                   (free filedata)
                   res)))))))


Back to Index

Similar Entries

  • AudioBuffer_from_wave    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • AudioBuffer_read    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • AudioBuffer_read    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • AudioBuffer_read_interp    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • AudioBuffer_read_interp_mix    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • AudioBuffer_read_interp_pw    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • AudioBuffer_read_looped    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • AudioBuffer_read_looped    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • astra_readX    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/orbbec_test.xtm
  • astra_reader    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/orbbec_test.xtm
  • audiofile_16bitPCM_to_sample_be    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • audiofile_16bitPCM_to_sample_le    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • audiofile_24bitPCM_to_sample_be    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • audiofile_24bitPCM_to_sample_le    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • audiofile_aiff_read_samples    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • audiofile_copy_samples    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • audiofile_float_to_sample_be    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • audiofile_float_to_sample_le    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • audiofile_read_samples    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • cerberus_get_lfo_waveform    xtlang    /digego/extempore/tree/v0.8.9/libs/core/instruments/cerberus_midi.xtm
  • cerberus_get_waveform    xtlang    /digego/extempore/tree/v0.8.9/libs/core/instruments/cerberus_midi.xtm
  • clock->samples    scheme    /digego/extempore/tree/v0.8.9/runtime/scheme.xtm
  • get_lfo_waveform    xtlang    /digego/extempore/tree/v0.8.9/libs/core/instruments/analogue_midi.xtm
  • get_waveform    xtlang    /digego/extempore/tree/v0.8.9/libs/core/instruments/analogue_midi.xtm
  • impc:compiler:print-already-bound-error    scheme    /digego/extempore/tree/v0.8.9/runtime/llvmti.xtm
  • midi_read_loop    xtlang    /digego/extempore/tree/v0.8.9/examples/external/portmidi.xtm
  • midi_read_msg    xtlang    /digego/extempore/tree/v0.8.9/libs/external/midi.xtm
  • nonblocking_read_loop    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/nanomsg-request.xtm
  • nonblocking_read_loop    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/nanomsg-reply.xtm
  • nonblocking_read_loop    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/nanomsg-respondent.xtm
  • nonblocking_read_loop    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/nanomsg-surveyor.xtm
  • ocv_imread    xtlang    /digego/extempore/tree/v0.8.9/libs/contrib/xtmcv.xtm
  • ocv_imread    xtlang    /digego/extempore/tree/v0.8.9/libs/contrib/xtmcv.xtm
  • ocv_imread    scheme    /digego/extempore/tree/v0.8.9/libs/contrib/xtmcv.xtm
  • ocv_imread1    xtlang    /digego/extempore/tree/v0.8.9/libs/contrib/xtmcv.xtm
  • ocv_imread2    xtlang    /digego/extempore/tree/v0.8.9/libs/contrib/xtmcv.xtm
  • ocv_read    xtlang    /digego/extempore/tree/v0.8.9/libs/contrib/xtmcv.xtm
  • ocv_read    xtlang    /digego/extempore/tree/v0.8.9/libs/contrib/xtmcv.xtm
  • ocv_read    scheme    /digego/extempore/tree/v0.8.9/libs/contrib/xtmcv.xtm
  • ocv_read1    xtlang    /digego/extempore/tree/v0.8.9/libs/contrib/xtmcv.xtm
  • ocv_read2    xtlang    /digego/extempore/tree/v0.8.9/libs/contrib/xtmcv.xtm
  • read_and_write_frame    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/opencv_test.xtm
  • samples->clock    scheme    /digego/extempore/tree/v0.8.9/runtime/scheme.xtm
  • sf_read_file_into_buffer    xtlang    /digego/extempore/tree/v0.8.9/libs/external/sndfile.xtm
  • sf_samples_from_file    xtlang    /digego/extempore/tree/v0.8.9/libs/external/sndfile.xtm
  • svm_read_line    xtlang    /digego/extempore/tree/v0.8.9/libs/contrib/svm.xtm
  • svm_read_problem    xtlang    /digego/extempore/tree/v0.8.9/libs/contrib/svm.xtm
  • sys_file_read    xtlang    /digego/extempore/tree/v0.8.9/libs/external/system.xtm
  • thread_native_call    xtlang    /digego/extempore/tree/v0.8.9/libs/core/xthread.xtm
  • thread_native_call_with_zone    xtlang    /digego/extempore/tree/v0.8.9/libs/core/xthread.xtm
  • tri-wave    macro    /digego/extempore/tree/v0.8.9/runtime/scheme.xtm
  • wave_validate    xtlang    /digego/extempore/tree/v0.8.9/libs/core/audiobuffer.xtm
  • xhid_read    xtlang    /digego/extempore/tree/v0.8.9/examples/contrib/hid.xtm