<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi,</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Trying to understand gsl wavelet, but comparison with snd transform options doesn't show the same results. I believe my confusion may be about</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
transform->float-vector vs. gsl_wavelet_transform_forward. Maybe they're not supposed to return the same data? Wondering if I have it all wrong here?</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
regards,</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Jim</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;snd transform options:</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;type-wavelet</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;size - 4096</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;window - blackman2</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;wavelet - daub4</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;display: single transform, normalize, selection</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(begin</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(open-sound "oboe.snd")</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(make-selection 22050 26145 0 0)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;transform options</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(set! *transform-type* wavelet-transform)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(set! *transform-size* 4096)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(set! *fft-window* blackman2-window)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(set! *wavelet-type* 1) ;daub4 </div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;transform display options</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(set! *transform-graph-type* graph-once) ;single transform</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(set! *transform-normalization* 1) ;normalize true</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(set! *show-selection-transform* #t) ;selection true</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(set! (transform-graph?) #t) ;show 'f' window</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;snd transform->float-vector</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(let* ((data (channel->float-vector 22050 26136 0 0))</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(myvals (transform->float-vector 0 0 data)) </div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(do ((i 0 (+ i 1)))</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
((= i 10))</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(format #t "~A " (float-vector-ref myvals i)) </div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
))</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
;compare with gsl</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(let* ((mysize 4096)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(data (channel->float-vector 22050 26145 0 0))</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(w (gsl_wavelet_alloc gsl_wavelet_daubechies 4))</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(work (gsl_wavelet_workspace_alloc mysize))</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(gsl_wavelet_transform_forward w (wrap-double* data) 1 mysize work) </div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(do ((i 0 (+ i 1)))</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
((= i 10))</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(format #t "~A " (float-vector-ref data i))</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(gsl_wavelet_free w)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
(gsl_wavelet_workspace_free work)</div>
<div class="elementToProof" style="font-family: "Calibri", "Helvetica", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
)</div>
</body>
</html>