diff options
author | IOhannes m zmölnig <zmoelnig@umlautQ.umlaeute.mur.at> | 2017-08-16 20:26:21 +0200 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@umlautQ.umlaeute.mur.at> | 2017-08-16 20:26:21 +0200 |
commit | 5a088b89e9cce5dce3daf2aca5e8c2ed3dd59fff (patch) | |
tree | c96bbe186ef9ddf978e11d66ee4da90f9bf3d9e9 /extsnd.html | |
parent | e56861860a027030bb6d8386ba25f95a057bccdd (diff) |
New upstream version 17.5
Diffstat (limited to 'extsnd.html')
-rw-r--r-- | extsnd.html | 258 |
1 files changed, 129 insertions, 129 deletions
diff --git a/extsnd.html b/extsnd.html index 6419a60..8a6bbe3 100644 --- a/extsnd.html +++ b/extsnd.html @@ -186,7 +186,7 @@ related documentation: <li><a href="#sndobjects">Snd's objects</a> <ul> <li><a href="#samplers">Samplers</a> - <li><a href="#Vcts">Vcts, Float-vectors</a> + <li><a href="#Floatvectors">Float-vectors, vcts</a> <li><a href="#extsndlib">Sndlib</a> <li><a href="#sndmarks">Marks</a> <li><a href="#sndmixes">Mixes</a> @@ -1580,7 +1580,7 @@ samplers, regions, and players, all of which should be compared with equal?, not <a href="#regionchans">region-chans</a>, the current selection (<a href="#selectionchans">selection-chans</a>), <a href="sndclm.html#genericfunctions">mus-channels</a>, -<a href="#sndmixes">mixes</a>, <a href="#Vcts">vcts</a>, and vectors (always 1 channel), and +<a href="#sndmixes">mixes</a>, <a href="#Floatvectors">float-vectors</a>, and vectors (always 1 channel), and <a href="#sndsounds">sounds</a> (as objects or as integers). </p> <div class="spacer"></div> @@ -1671,7 +1671,7 @@ and <a href="#regionframples">region-framples</a>. <p id="genericmaxamp">maxamp can handle a sound (via the regular <a href="#maxamp">maxamp</a> function), string (treated as a sound file name, <a href="#mussoundmaxamp">mus-sound-maxamp</a>), -generator (maxamp of the mus-data vct, if any), +generator (maxamp of the mus-data float-vector, if any), float-vector, region (<a href="#regionmaxamp">region-maxamp</a>), the current selection (<a href="#selectionmaxamp">selection-maxamp</a>), @@ -3392,7 +3392,7 @@ demands on memory. </pre> <p>make-mix-sampler creates a mix-sampler reading 'mix' starting (in the mix input) at 'beg'. -See <a href="sndscm.html#mixtovct">mix->float-vector</a> in mix.scm. +See <a href="sndscm.html#mixtofv">mix->float-vector</a> in mix.scm. </p> <div class="spacer"></div> @@ -3669,35 +3669,35 @@ If *reverb* is a snd->sample generator, for example, -<!-- INDEX Vcts:Vcts --> +<!-- INDEX Floatvectors:Float-vectors --> -<div class="header" id="Vcts">Vcts or float-vectors</div> +<div class="header" id="Floatvectors">float-vectors or vcts</div> <p>These are arrays of floats. In s7, use "float-vector", and in Forth and Ruby use "vct". </p> -<!-- VCT TABLE --> +<!-- FLOATVECTOR TABLE --> <div class="spacer"></div> -<!-- list->vct --> +<!-- list->float-vector --> <pre class="indented"> -<em class=def id="listtovct">list->vct</em> lst <em class=def id="listtofv">list->float-vector</em> lst +<em class=emdef>list->vct</em> lst </pre> -<p>return a new float-vector with elements of list 'lst' (equivalent to the <a href="#vct">float-vector</a> function). +<p>return a new float-vector with elements of list 'lst' (equivalent to the <a href="#fv">float-vector</a> function). </p> <div class="spacer"></div> -<!-- make-vct --> +<!-- make-float-vector --> <pre class="indented"> -<em class=def id="makevct">make-vct</em> len (initial-element 0.0) <em class=def id="makefv">make-float-vector</em> len (initial-element 0.0) +<em class=emdef>make-vct</em> len (initial-element 0.0) </pre> <p>make-float-vector creates a float-vector of size 'len'. @@ -3705,10 +3705,10 @@ Ruby use "vct". <div class="spacer"></div> -<!-- vct --> +<!-- float-vector --> <pre class="indented"> -<em class=def id="vct">vct</em> :rest args <em class=def id="fv">float-vector</em> :rest args +<em class=emdef>vct</em> :rest args </pre> <p>float-vector is equivalent to list->float-vector with 'args' as the list: <code>(float-vector 0.0 0.1 0.2)</code>. @@ -3716,10 +3716,10 @@ Ruby use "vct". <div class="spacer"></div> -<!-- vct? --> +<!-- float-vector? --> <pre class="indented"> -<em class=def id="vctp">vct?</em> v <em class=def id="fvp">float-vector?</em> v +<em class=emdef>vct?</em> v </pre> <p>float-vector? returns #t if 'v' is a float-vector. @@ -3727,10 +3727,10 @@ Ruby use "vct". <div class="spacer"></div> -<!-- vct-abs! --> +<!-- float-vector-abs! --> <pre class="indented"> -<em class=def id="vctabs">vct-abs!</em> v <em class=def id="fvabs">float-vector-abs!</em> v +<em class=emdef>vct-abs!</em> v </pre> <p>float-vector-abs! replaces each element of 'v' with its absolute value. @@ -3738,10 +3738,10 @@ Ruby use "vct". <div class="spacer"></div> -<!-- vct-add! --> +<!-- float-vector-add! --> <pre class="indented"> -<em class=def id="vctadd">vct-add!</em> v1 v2 (off 0) <em class=def id="fvadd">float-vector-add!</em> v1 v2 (off 0) +<em class=emdef>vct-add!</em> v1 v2 (off 0) </pre> <p>float-vector-add! performs element-wise add: v1[i + off] += v2[i], returning 'v1'. @@ -3749,10 +3749,10 @@ Ruby use "vct". <div class="spacer"></div> -<!-- vct-copy --> +<!-- float-vector-copy --> <pre class="indented"> -<em class=def id="vctcopy">vct-copy</em> v -<em class=def id="fvcopy">float-vector-copy</em> v +<em class=def id="fvcopy">copy</em> v +<em class=emdef>vct-copy</em> v </pre> <p>float-vector-copy returns a copy of the float-vector 'v'. @@ -3766,22 +3766,22 @@ Ruby use "vct". copy file: in Scheme: copy-file, in Ruby: File.copy or File.syscopy<br> copy string: in Forth: string-copy<br> copy list: in Forth: list-copy or copy-tree<br> -copy mix: <a href="sndscm.html#mixtovct">mix->float-vector</a><br> +copy mix: <a href="sndscm.html#mixtofv">mix->float-vector</a><br> copy sampler: <a href="#copysampler">copy-sampler</a><br> copy (clone) current sound edit state: <a href="#clonesoundas">clone-sound-as</a><br> -copy channel data: <a href="#channeltovct">channel->float-vector</a>, or <a href="#savesoundas">save-sound-as</a><br> -copy selection data: <a href="#selection2vct">selection->float-vector</a> or <a href="#saveselection">save-selection</a><br> -copy region data: <a href="#regiontovct">region->float-vector</a>, <a href="#saveregion">save-region</a><br> -copy transform data: <a href="#transformtovct">transform->float-vector</a><br> +copy channel data: <a href="#channeltofv">channel->float-vector</a>, or <a href="#savesoundas">save-sound-as</a><br> +copy selection data: <a href="#selection2fv">selection->float-vector</a> or <a href="#saveselection">save-selection</a><br> +copy region data: <a href="#regiontofv">region->float-vector</a>, <a href="#saveregion">save-region</a><br> +copy transform data: <a href="#transformtofv">transform->float-vector</a><br> </small></blockquote> </td></tr></TABLE> <div class="spacer"></div> -<!-- vct-equal? --> +<!-- float-vector-equal? --> <pre class="indented"> -<em class=def id="vctequal">vct-equal?</em> v1 v2 diff <em class=def id="fvequal">float-vector-equal?</em> v1 v2 diff +<em class=emdef>vct-equal?</em> v1 v2 diff </pre> <p>float-vector-equal? is an element-wise relative difference check. @@ -3792,10 +3792,10 @@ are of different lengths, the overlapping portion is checked. <div class="spacer"></div> -<!-- vct-fill! --> +<!-- float-vector-fill! --> <pre class="indented"> -<em class=def id="vctfill">vct-fill!</em> v val <em class=def id="fvfill">float-vector-fill!</em> v val +<em class=emdef>vct-fill!</em> v val </pre> <p>float-vector-fill! sets each element of 'v' to 'val': v[i] = val. It returns 'v'. @@ -3803,10 +3803,10 @@ are of different lengths, the overlapping portion is checked. <div class="spacer"></div> -<!-- vct-length --> +<!-- float-vector-length --> <pre class="indented"> -<em class=def id="vctlength">vct-length</em> v <em class=def id="fvlength">float-vector-length</em> v +<em class=emdef>vct-length</em> v </pre> <p>float-vector-length returns the length of 'v'. @@ -3814,10 +3814,10 @@ are of different lengths, the overlapping portion is checked. <div class="spacer"></div> -<!-- vct-max --> +<!-- float-vector-max --> <pre class="indented"> -<em class=def id="vctmax">vct-max</em> v <em class=def id="fvmax">float-vector-max</em> v +<em class=emdef>vct-max</em> v </pre> <p>float-vector-max returns the maximum value of the elements of 'v'. @@ -3825,10 +3825,10 @@ are of different lengths, the overlapping portion is checked. <div class="spacer"></div> -<!-- vct-min --> +<!-- float-vector-min --> <pre class="indented"> -<em class=def id="vctmin">vct-min</em> v <em class=def id="fvmin">float-vector-min</em> v +<em class=emdef>vct-min</em> v </pre> <p>float-vector-min returns the minimum value of the elements of 'v'. @@ -3836,10 +3836,10 @@ are of different lengths, the overlapping portion is checked. <div class="spacer"></div> -<!-- vct-move! --> +<!-- float-vector-move! --> <pre class="indented"> -<em class=def id="vctmove">vct-move!</em> v new old backwards <em class=def id="fvmove">float-vector-move!</em> v new old backwards +<em class=emdef>vct-move!</em> v new old backwards </pre> <p>float-vector-move moves a block of values within a float-vector: v[new++] = v[old++], or @@ -3848,10 +3848,10 @@ if 'backwards' is #t: v[new--] = v[old--]. It returns 'v'. <div class="spacer"></div> -<!-- vct-multiply! --> +<!-- float-vector-multiply! --> <pre class="indented"> -<em class=def id="vctmultiply">vct-multiply!</em> v1 v2 <em class=def id="fvmultiply">float-vector-multiply!</em> v1 v2 +<em class=emdef>vct-multiply!</em> v1 v2 </pre> <p>float-vector-multiply! performs element-wise multiply of two float-vectors: v1[i] *= v2[i]. It returns 'v1'. @@ -3859,10 +3859,10 @@ if 'backwards' is #t: v[new--] = v[old--]. It returns 'v'. <div class="spacer"></div> -<!-- vct-offset! --> +<!-- float-vector-offset! --> <pre class="indented"> -<em class=def id="vctoffset">vct-offset!</em> v val <em class=def id="fvoffset">float-vector-offset!</em> v val +<em class=emdef>vct-offset!</em> v val </pre> <p>float-vector-offset! adds 'val' to each element of 'v': v[i] += val. It returns 'v'. @@ -3870,10 +3870,10 @@ if 'backwards' is #t: v[new--] = v[old--]. It returns 'v'. <div class="spacer"></div> -<!-- vct-peak --> +<!-- float-vector-peak --> <pre class="indented"> -<em class=def id="vctpeak">vct-peak</em> v <em class=def id="fvpeak">float-vector-peak</em> v +<em class=emdef>vct-peak</em> v </pre> <p>float-vector-peak returns the maximum absolute value of the elements of 'v'. @@ -3881,10 +3881,10 @@ if 'backwards' is #t: v[new--] = v[old--]. It returns 'v'. <div class="spacer"></div> -<!-- vct-ref --> +<!-- float-vector-ref --> <pre class="indented"> -<em class=def id="vctref">vct-ref</em> v pos <em class=def id="fvref">float-vector-ref</em> v pos +<em class=emdef>vct-ref</em> v pos </pre> <p>float-vector-ref returns the element 'pos' in 'v': v[pos]. @@ -3892,10 +3892,10 @@ if 'backwards' is #t: v[new--] = v[old--]. It returns 'v'. <div class="spacer"></div> -<!-- vct-reverse! --> +<!-- float-vector-reverse! --> <pre class="indented"> -<em class=def id="vctreverse">vct-reverse!</em> v size <em class=def id="fvreverse">float-vector-reverse!</em> v size +<em class=emdef>vct-reverse!</em> v size </pre> <p>float-vector-reverse! reverses the elements of 'v' (in-place), returning 'v'. @@ -3904,10 +3904,10 @@ If 'size' is given, the reversal centers around it. <div class="spacer"></div> -<!-- vct-scale! --> +<!-- float-vector-scale! --> <pre class="indented"> -<em class=def id="vctscale">vct-scale!</em> v scl <em class=def id="fvscale">float-vector-scale!</em> v scl +<em class=emdef>vct-scale!</em> v scl </pre> <p>float-vector-scale! multiplies each element of 'v' by 'scl': v[i] *= scl. It returns 'v'. @@ -3915,10 +3915,10 @@ If 'size' is given, the reversal centers around it. <div class="spacer"></div> -<!-- vct-set! --> +<!-- float-vector-set! --> <pre class="indented"> -<em class=def id="vctset">vct-set!</em> v pos val <em class=def id="fvset">float-vector-set!</em> v pos val +<em class=emdef>vct-set!</em> v pos val </pre> <p>float-vector-set! sets the float-vector 'v' element at 'pos' to 'val': v[pos] = val. @@ -3927,10 +3927,10 @@ In Scheme, this is the same as (set! (v pos) val). <div class="spacer"></div> -<!-- vct-subtract! --> +<!-- float-vector-subtract! --> <pre class="indented"> -<em class=def id="vctsubtract">vct-subtract!</em> v1 v2 <em class=def id="fvsubtract">float-vector-subtract!</em> v1 v2 +<em class=emdef>vct-subtract!</em> v1 v2 </pre> <p>float-vector-subtract! performs an element-wise subtract: v1[i] -= v2[i]. It returns 'v1'. @@ -3938,10 +3938,10 @@ In Scheme, this is the same as (set! (v pos) val). <div class="spacer"></div> -<!-- vct-subseq --> +<!-- float-vector-subseq --> <pre class="indented"> -<em class=def id="vctsubseq">vct-subseq</em> v start (end len) nv <em class=def id="fvsubseq">float-vector-subseq</em> v start (end len) nv +<em class=emdef>vct-subseq</em> v start (end len) nv </pre> <p>float-vector-subseq returns a new float-vector (or 'nv' if given) with the elements of 'v' between 'start' and 'end' inclusive. 'end' defaults @@ -3950,10 +3950,10 @@ to the end of 'v'. <div class="spacer"></div> -<!-- vct+ --> +<!-- float-vector+ --> <pre class="indented"> -<em class=def id="vctplus">vct+</em> obj1 obj2 <em class=def id="fvplus">float-vector+</em> obj1 obj2 +<em class=emdef>vct+</em> obj1 obj2 </pre> <p>float-vector+ combines float-vector-add! and float-vector-offset!, @@ -3962,10 +3962,10 @@ depending on the type of its arguments. <div class="spacer"></div> -<!-- vct* --> +<!-- float-vector* --> <pre class="indented"> -<em class=def id="vcttimes">vct*</em> obj1 obj2 <em class=def id="fvtimes">float-vector*</em> obj1 obj2 +<em class=emdef>vct*</em> obj1 obj2 </pre> <p>float-vector* combines float-vector-multiply! and float-vector-scale!, @@ -3974,10 +3974,10 @@ depending on the type of its arguments. <div class="spacer"></div> -<!-- vct->channel --> +<!-- float-vector->channel --> <pre class="indented"> -<em class=def id="vcttochannel">vct->channel</em> v (beg 0) dur snd chn edpos origin <em class=def id="fvtochannel">float-vector->channel</em> v (beg 0) dur snd chn edpos origin +<em class=emdef>vct->channel</em> v (beg 0) dur snd chn edpos origin </pre> <p>float-vector->channel sets the samples from 'beg' to 'beg' + 'dur' from the values in 'v'. @@ -3986,10 +3986,10 @@ This changes (edits) the channel, so 'origin' provides a way to name the edit (f <div class="spacer"></div> -<!-- vct->list --> +<!-- float-vector->list --> <pre class="indented"> -<em class=def id="vcttolist">vct->list</em> v <em class=def id="fvtolist">float-vector->list</em> v +<em class=emdef>vct->list</em> v </pre> <p>float-vector->list returns a list with elements of 'v'. @@ -3997,10 +3997,10 @@ This changes (edits) the channel, so 'origin' provides a way to name the edit (f <div class="spacer"></div> -<!-- vct->string --> +<!-- float-vector->string --> <pre class="indented"> -<em class=def id="vcttostring">vct->string</em> v <em class=def id="fvtostring">float-vector->string</em> v +<em class=emdef>vct->string</em> v </pre> <p>float-vector->string returns a string describing 'v'. @@ -4010,7 +4010,7 @@ This changes (edits) the channel, so 'origin' provides a way to name the edit (f <!-- vct->vector --> <pre class="indented"> -<em class=def id="vcttovector">vct->vector</em> v +<em class=emdef>vct->vector</em> v </pre> <p>vct->vector returns a vector with the elements of 'v'. @@ -4020,7 +4020,7 @@ This changes (edits) the channel, so 'origin' provides a way to name the edit (f <!-- vector->vct --> <pre class="indented"> -<em class=def id="vectortovct">vector->vct</em> vect +<em class=emdef>vector->vct</em> vect </pre> <p>vector->vct returns a vct with elements of vector 'vect'. @@ -5156,7 +5156,7 @@ the Mix Dialog, various hooks, and various mouse-related actions. </p> <p>A mix is an object that represents a channel (one channel in and one channel out) of a sound mix. -Various mixing functions create these objects (mix-vct for example). In the old days, mixes were identified +Various mixing functions create these objects (mix-float-vector for example). In the old days, mixes were identified by integers, so for conversion you can use mix->integer and integer->mix. Say we have a mix object stored in the variable "id": </p> @@ -5370,7 +5370,7 @@ red; but (set! (mix-color mx) red) sets only mix mx's waveform to red. > (mix-home mx) (#<sound 0> 0 "/home/bil/cl/pistol.snd" 0) ;; (list output-sound-index output-channel input-filename input-channel) -> (set! mx (mix-vct (make-vct 100 .1) 2000)) +> (set! mx (mix-float-vector (make-float-vector 100 .1) 2000)) #<mix 1> > (mix-home mx) (#<sound 0> 0 #f 0) @@ -5619,16 +5619,16 @@ example, if you know the frequency of the mix sound, you can reflect that in the <div class="spacer"></div> -<!-- mix-vct --> +<!-- mix-float-vector --> <pre class="indented"> -<em class=def id="mixvct">mix-vct</em> vct beg snd chn with-mix-tags origin +<em class=def id="mixfv">mix-float-vector</em> v beg snd chn with-mix-tags origin </pre> -<p>mix-vct is one of the basic mixing functions. It -mixes the contents of 'vct' into the given channel starting at sample 'beg'. +<p>mix-float-vector is one of the basic mixing functions. It +mixes the contents of 'v' into the given channel starting at sample 'beg'. If 'with-mix-tags' is #f (the default is #t), the data is mixed without creating any mix tags. -mix-vct returns the id of the new mix, or -1 (a simple mix, no tag). +mix-float-vector returns the id of the new mix, or -1 (a simple mix, no tag). </p> <div class="spacer"></div> @@ -5681,11 +5681,11 @@ mix sound file: <a href="extsnd.html#mix">mix</a> or drag-and-drop it where you mix channel: see <a href="sndscm.html#mixchannel">mix-channel</a> in extensions.scm<br> mix region: <a href="extsnd.html#mixregion">mix-region</a><br> mix selection: <a href="extsnd.html#mixselection">mix-selection</a><br> -mix vct: <a href="extsnd.html#mixvct">mix-vct</a><br> +mix float-vector: <a href="extsnd.html#mixfv">mix-float-vector</a><br> enveloped mix: see <a href="sndscm.html#envelopedmix">enveloped-mix</a> in extensions.scm<br> read mix samples: <a href="extsnd.html#makemixsampler">make-mix-sampler</a><br> mix data maxamp: <a href="sndscm.html#mixmaxamp">mix-maxamp</a><br> -mix data to vct: <a href="sndscm.html#mixtovct">mix->vct</a><br> +mix data to float-vector: <a href="sndscm.html#mixtofv">mix->float-vector</a><br> save mix data in file: <a href="extsnd.html#savemix">save-mix</a><br> mix property list: <a href="extsnd.html#mixproperty">mix-property</a> in mix.scm<br> pan mono sound into stereo: see <a href="sndscm.html#placesound">place-sound</a> in examp.scm<br> @@ -5922,19 +5922,19 @@ data, and its length in framples. <div class="spacer"></div> -<!-- region->vct --> +<!-- region->float-vector --> <pre class="indented"> -<em class=def id="regiontovct">region->vct</em> reg samp samps chan v +<em class=def id="regiontofv">region->float-vector</em> reg samp samps chan v </pre> -<p>region->vct returns a vct containing 'samps' samples starting at 'samp' in channel 'chan' of the region 'reg'. -If 'v' (a vct) is provided, it is filled, -rather than creating a new vct. +<p>region->float-vector returns a float-vector containing 'samps' samples starting at 'samp' in channel 'chan' of the region 'reg'. +If 'v' (a float-vector) is provided, it is filled, +rather than creating a new one. </p> <pre class="indented"> (define (region-rms n) - (let* ((data (<em class=red>region->vct</em> (integer->region 0) 0 #f n)) + (let* ((data (<em class=red>region->float-vector</em> (integer->region 0) 0 #f n)) (len (length data))) (sqrt (/ (<a class=quiet href="sndclm.html#dot-product">dot-product</a> data data len) len)))) </pre> @@ -6070,7 +6070,7 @@ These are equivalent: <p>filter-selection applies an FIR filter of order 'order' and frequency response 'env' to the selection. 'env' can be the filter coefficients -themselves in a vct with at least 'order' elements, or +themselves in a float-vector with at least 'order' elements, or a CLM filtering generator (see <a href="#filtersound">filter-sound</a>). If 'truncate' is #t (the default), the filter output is truncated at the selection end. If 'truncate' is #f, the extra output ('order' samples worth) is mixed into the stuff following the selection. @@ -6157,7 +6157,7 @@ saving them in files named 'base'.n: (brksnd 1.0 \"sec\")")) </pre> <p>scale-selection-by scales (multiplies) the selection by 'scalers' which can be either a float, -a list of floats, or a vct. In a multichannel selection, each member of the vct or list +a list of floats, or a float-vector. In a multichannel selection, each member of the float-vector or list is applied to the next channel in the selection. (scale-selection-by '(0.0 2.0)) scales the first channel by 0.0, the second (if any) by 2.0. (scale-selection-by 2.0) scales all channels by 2.0. Normally the order of channels follows the order of the sounds. @@ -6171,7 +6171,7 @@ all channels by 2.0. Normally the order of channels follows the order of the so </pre> <p>scale-selection-to normalizes the selection to peak amplitude 'norms' which can be either a float, -a list of floats, or a vct. +a list of floats, or a float-vector. </p> <div class="spacer"></div> @@ -6501,7 +6501,7 @@ The following substitutions can be made: <a href="#reversesound">reverse-sound</a> s c e <a href="#reversechannel">reverse-channel</a> beg dur s c e <A href="#scaleby">scale-by</A> scls s c <a href="#scalechannel">scale-channel</a> scl beg dur s c e <A href="#scaleto">scale-to</A> scls s c <a href="#normalizechannel">normalize-channel</a> norm beg dur s c e -<a href="#setsamples">set-samples</a> beg dur data s c trunc origin fchan <a href="#vcttochannel">vct->channel</a> vct beg dur s c e +<a href="#setsamples">set-samples</a> beg dur data s c trunc origin fchan <a href="#fvtochannel">float-vector->channel</a> v beg dur s c e <a href="#smoothsound">smooth-sound</a> beg dur s c <a href="#smoothchannel">smooth-channel</a> beg dur s c e <a href="#srcsound">src-sound</a> num base s c e <a href="#srcchannel">src-channel</a> ratio-or-env beg dur s c e <a href="#undo">undo</a> edits s c <a href="#undochannel">undo-channel</a> edits s c @@ -6660,7 +6660,7 @@ See <a href="#snpmark">snap-mark-to-beat</a>, or <a href="sndscm.html#snapmixtob <em class=def id="channelampenvs">channel-amp-envs</em> file chan size peak-file-func work-proc-func </pre> -<p>channel-amp-envs returns two vcts of length 'size' containing the peak-amp envelopes of the channel 'chan' of file 'file'. +<p>channel-amp-envs returns two float-vectors of length 'size' containing the peak-amp envelopes of the channel 'chan' of file 'file'. 'peak-file-func' (if any) is used to get the name of the associated peak-env file if the file is very large. 'work-proc-func' is called when the amp envs are ready if the amp envs are gathered in the background. If 'file' is a sound, 'size' is an edit-position, and the current amp envs (if any) are returned. @@ -6768,12 +6768,12 @@ The following code sets the 'unite' button if the current sound has more than 4 <div class="separator"></div> -<!-- channel->vct --> +<!-- channel->float-vector --> <pre class="indented"> -<em class=def id="channeltovct">channel->vct</em> beg dur snd chn edpos +<em class=def id="channeltofv">channel->float-vector</em> beg dur snd chn edpos </pre> -<p id="selection2vct">channel->vct returns a vct with the specified data. In Ruby, the "->" in a function name is translated to "2", +<p id="selection2fv">channel->float-vector returns a float-vector with the specified data. In Ruby, the "->" in a function name is translated to "2", so the function call is: </p> @@ -6781,16 +6781,16 @@ so the function call is: </pre> <pre class="indented"> -(define* (selection->vct snd chn) +(define* (selection->float-vector snd chn) (cond ((selection-member? snd chn) - (channel->vct (selection-position snd chn) (selection-framples snd chn) snd chn)) + (channel->float-vector (selection-position snd chn) (selection-framples snd chn) snd chn)) ((selection?) (error 'no-such-channel - (list "selection->vct" + (list "selection->float-vector" (format #f "snd ~A channel ~D is not a member of the selection" snd chn)))) (else - (error 'no-active-selection (list "selection->vct"))))) + (error 'no-active-selection (list "selection->float-vector"))))) </pre> <p>See also mark-explode in marks.scm. @@ -7337,7 +7337,7 @@ if you don't want all the directory junk. See examp.scm for many examples. <p>The regularized version of filter-sound. If the end of the filtered portion is not the end of the sound, the 'trunc' argument determines whether the filtered sound is truncated at that point (the default: #t), or mixed with the overlapping section, similar to the truncate argument to <a href="#filterselection">filter-selection</a>. -'env' can be either the frequency response envelope, or a vct containing the desired coefficients. +'env' can be either the frequency response envelope, or a float-vector containing the desired coefficients. </p> <div class="separator"></div> @@ -7349,7 +7349,7 @@ or mixed with the overlapping section, similar to the truncate argument to <a hr <p>filter-sound applies an FIR filter of order 'order' (actually one more than the nominal order) and frequency response 'env' -to the given channel. 'env' can also be a vct containing the filter coefficients, +to the given channel. 'env' can also be a float-vector containing the filter coefficients, or any CLM filtering generator (e.g. comb, formant, one-pole, iir-filter, etc). The generator is called in C, not Scheme, so this is the fastest way to apply @@ -7518,7 +7518,7 @@ associated with channel 'chn' in 'snd'. </pre> <p id="xdisplayenergy">The current slider values can be read from <a href="#xpositionslider">x-position-slider</a>, -<a href="#xzoomslider">x-zoom-slider</a>, etc. The 'data' argument can be a list of vcts; each is graphed at the same time, following the sequence of +<a href="#xzoomslider">x-zoom-slider</a>, etc. The 'data' argument can be a list of float-vectors; each is graphed at the same time, following the sequence of colors used when channels are superimposed. If 'data' is a list of numbers, it is assumed to be an envelope (a list of breakpoints). If 'force-display' is #f (the default is #t), the graph is not @@ -7649,7 +7649,7 @@ insert some portion of a channel: <a href="sndscm.html#insertchannel">insert-cha insert a silence: <a href="extsnd.html#padchannel">pad-channel</a>, <a href="extsnd.html#insertsilence">insert-silence</a>, <a href="sndscm.html#padsound">pad-sound</a><br> insert a region: <a href="extsnd.html#insertregion">insert-region</a><br> insert the selection: <a href="extsnd.html#insertselection">insert-selection</a><br> -insert a vct of samples: <a href="extsnd.html#insertsamples">insert-samples</a><br> +insert a float-vector of samples: <a href="extsnd.html#insertsamples">insert-samples</a><br> insert a sound: <a href="extsnd.html#insertsound">insert-sound</a><br> append a sound and silence: <a href="extsnd.html#appendsound">append-sound</a><br> </small></blockquote> @@ -7663,7 +7663,7 @@ append a sound and silence: <a href="extsnd.html#appendsound">append-sound</a><b <em class=def id="insertsamples">insert-samples</em> samp samps data snd chn edpos auto-delete origin </pre> -<p>This inserts 'samps' samples of 'data' (normally a vct) starting at sample 'samp' in the given channel. +<p>This inserts 'samps' samples of 'data' (normally a float-vector) starting at sample 'samp' in the given channel. 'data' can be a filename. The regularized version of this is: </p> @@ -7864,7 +7864,7 @@ can return #f, which means that the data passed in is deleted (replaced by nothing), or a number which replaces the current sample, or #t which halts the mapping operation, leaving trailing samples -unaffected, or a vct +unaffected, or a float-vector the contents of which are spliced into the edited version, effectively replacing the current sample with any number of samples. This sounds more complicated than it is! Basically, a map-channel function receives @@ -8184,7 +8184,7 @@ file ok: <p>There are other ways to get at sound file data: <a class=quiet href="#makesampler">make-sampler</a> can be given a filename, -rather than a sound; file->vct in examp.scm; +rather than a sound; file->float-vector in examp.scm; <a class=quiet href="#mussoundopeninput">mus-sound-open-input</a> and there are a variety of CLM-based functions such as <a class=quiet href="sndclm.html#filetosample">file->sample</a> and @@ -8621,7 +8621,7 @@ reverse via FFT: <a href="extsnd.html#sillyreverse">silly-reverse</a><br> reverse order of channels: <a href="extsnd.html#reversechannels">reverse-channels</a><br> reverse a list: reverse and reverse!<br> reverse a string: in Ruby: reverse<br> -reverse vct: <a href="extsnd.html#vctreverse">vct-reverse!</a><br> +reverse float-vector: reverse!<br> </small></blockquote> </td></tr></TABLE> <div class="separator"></div> @@ -8709,7 +8709,7 @@ samples at 'samp', so: <em class=def id="samples">samples</em> samp samps snd chn edpos </pre> -<p>This returns a vct of 'samps' samples starting at 'samp' in the given channel. +<p>This returns a float-vector of 'samps' samples starting at 'samp' in the given channel. 'samp' defaults to 0. 'samps' defaults to framples - 'samp' (i.e. read to the end of the data). 'pos' is the edit history position to read (it defaults to the current position). This is settable (as is <a href="#sample">sample</a>): @@ -8717,9 +8717,9 @@ This is settable (as is <a href="#sample">sample</a>): <pre class="indented"> > (samples 1000 10) -#<vct[len=10]: 0.033 0.035 0.034 0.031 0.026 0.020 0.013 0.009 0.005 0.004> -> (set! (samples 1000 10) (make-vct 10 .1)) -#<vct[len=10]: 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100> +#<float-vector[len=10]: 0.033 0.035 0.034 0.031 0.026 0.020 0.013 0.009 0.005 0.004> +> (set! (samples 1000 10) (make-float-vector 10 .1)) +#<float-vector[len=10]: 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100> </pre> <div class="separator"></div> @@ -8916,7 +8916,7 @@ Forth: <p>scale-by <a href="snd.html#scaling">scales</a> the amplitude of 'snd' by 'scalers'. Unlike most of these functions, scale-by follows the 'sync' buttons and affects all currently sync'd -channels. 'scalers' can be either a float, a list, or a vct. +channels. 'scalers' can be either a float, a list, or a float-vector. In the latter case, the values are used one by one, applying each as scale-by moves through the channels. If 'sync' is off, channel 'chn' is scaled (it defaults to the currently selected channel). <code>(scale-by 2.0)</code> doubles all samples. @@ -9005,7 +9005,7 @@ There are approximately a bazillion ways to scale samples in Snd; here's a potpo <p>scale-to <a href="snd.html#scaling">normalizes</a> 'snd' to 'norms' (following <a class=quiet href="#sync">sync</a> as in <a href="#scaleby">scale-by</a>). (scale-to 0.5) scales the current channel so that its maxamp is 0.5. If all the sound's samples are 0.0, scale-to returns #f and does not perform any edit. -'norms' can be a number, a list of numbers, or a vct. +'norms' can be a number, a list of numbers, or a float-vector. </p> <div class="separator"></div> @@ -9122,7 +9122,7 @@ If 'samp' is beyond the end of the file, the file is first zero-padded to reach </pre> <p>replaces 10000 samples with data from oboe.snd. -If 'data' is a vct, set-samples is identical to <a href="#vcttochannel">vct->channel</a>. +If 'data' is a float-vector, set-samples is identical to <a href="#fvtochannel">float-vector->channel</a>. If 'trunc' is #t and 'samp' is 0, the sound is truncated (if necessary) to reflect the end of 'data'. If the in-coming data file has more than one channel, 'infile-chan' @@ -10034,13 +10034,13 @@ autocorrelation walsh-transform cepstrum <div class="separator"></div> -<!-- transform->vct --> +<!-- transform->float-vector --> <pre class="indented"> -<em class=def id="transformtovct">transform->vct</em> snd chn v +<em class=def id="transformtofv">transform->float-vector</em> snd chn v </pre> -<p>This returns a vct with the transform data from the given channel. -If 'v' (a vct) is provided, it is filled, rather than creating a new vct. +<p>This returns a float-vector with the transform data from the given channel. +If 'v' (a float-vector) is provided, it is filled, rather than creating a new one. See <a href="#fftpeak">fft-peak</a> for an example. </p> <div class="separator"></div> @@ -10649,7 +10649,7 @@ rattling effect. </pre> <p>The <a class=quiet href="snd.html#filtercontrol">filter</a> coefficients (read-only currently). It is -a vct suitable for use with the <a href="sndclm.html#filter">filter generator</a> or with +a float-vector suitable for use with the <a href="sndclm.html#filter">filter generator</a> or with <a href="#filtersound">filter-sound</a>. </p> <div class="spacer"></div> @@ -11282,7 +11282,7 @@ of the resultant graph. 'lo' and 'hi' set which portion of the returned data to graph (normally 0.0 to 1.0). 'proc' is a function of two arguments, the length of the desired transform, and a sampler that can be used to get the current data. Do not free the sampler! -The function should return a vct containing the transform data. +The function should return a float-vector containing the transform data. add-transform returns the new transform's transform-type (an object). Here's an example that displays a histogram of the current values in 16 bins: </p> @@ -11331,11 +11331,11 @@ Here's an example that displays a histogram of the current values in 16 bins: <em class=def id="fft">fft</em> rl im sgn </pre> -<p>This performs an FFT on vcts 'rl' and 'im' (the real and imaginary parts of the +<p>This performs an FFT on float-vectors 'rl' and 'im' (the real and imaginary parts of the input data). 'sgn' is 1 for an FFT, -1 for an inverse FFT; (the default is 1). The CLM <a href="sndclm.html#fft">fft</a> function is called mus-fft in Snd. The only difference between the two is that Snd's fft determines the fft size from -the size of the vcts passed to it, whereas CLM's takes the size as an argument. +the size of the float-vectors passed to it, whereas CLM's takes the size as an argument. Here's an example that uses the fft to produce a sum of sinusoids each with arbitrary amplitude and initial-phase: </p> @@ -11373,7 +11373,7 @@ and initial-phase: <em class=def id="sndspectrum">snd-spectrum</em> data window length (linear #t) (beta 0.0) in-place (normalized #t) </pre> -<p>This returns the spectrum (as a vct) of 'data' (also a vct) using the fft window 'win'. +<p>This returns the spectrum (as a float-vector) of 'data' (also a float-vector) using the fft window 'win'. 'length' is the number of samples of data. </p> @@ -11385,7 +11385,7 @@ of data. <p>If 'linear' is #f (its default is #t), the spectrum is in dB. 'beta' is the fft data window family parameter; it is scaled internally so here it should be between 0.0 and 1.0. -If 'in-place' is #t, the spectrum is in 'data', otherwise snd-spectrum returns a new vct. +If 'in-place' is #t, the spectrum is in 'data', otherwise snd-spectrum returns a new float-vector. </p> <div class="spacer"></div> @@ -11414,7 +11414,7 @@ If 'in-place' is #t, the spectrum is in 'data', otherwise snd-spectrum returns a <p>Other related variables and functions:</p> <pre class="indented"> <a href="#transformgraphp">transform-graph?</a> <a href="#showtransformpeaks">show-transform-peaks</a> <a href="#transformsample">transform-sample</a> -<a href="#fftbeta">fft-window-beta</a> <a href="#showselectiontransform">show-selection-transform</a> <a href="#transformtovct">transform->vct</a> +<a href="#fftbeta">fft-window-beta</a> <a href="#showselectiontransform">show-selection-transform</a> <a href="#transformtofv">transform->float-vector</a> <a href="#aftertransformhook">after-transform-hook</a> <a href="#spectrumend">spectrum-end</a> <a href="#transformframples">transform-framples</a> <a href="#fftlogfrequency">fft-log-frequency</a> <a href="#spectrohop">spectro-hop</a> <a href="#transformtype">transform-type</a> <a href="#fftlogmagnitude">fft-log-magnitude</a> <a href="#spectrumstart">spectrum-start</a> <a href="#updatetransformgraph">update-transform-graph</a> @@ -13750,7 +13750,7 @@ use with <a href="#colormap">colormap</a> or <a href="#colormapref">colormap-ref 'func' is a function of one argument, the desired colormap size; it will be called whenever the new colormap's values are needed or the colormap size changes, so that the colormap needs to be recomputed. It should return a list of -three vcts, each vct containing 'size' values representing respectively +three float-vectors, each float-vector containing 'size' values representing respectively the red, green, and blue values (each a number between 0.0 and 1.0). In the following code, the fields are set from envelopes (this is a loose translation of FractInt's royal colormap): @@ -14023,7 +14023,7 @@ or the local envelope editor code in xm-enved.scm. </pre> <p>This draws dots of size 'dot-size' from the (x y) pairs in the vector 'positions' in the specified context. -draw-dots, draw-lines, and fill-polygon take vectors, rather than vcts (which would be more consistent +draw-dots, draw-lines, and fill-polygon take vectors, rather than float-vectors (which would be more consistent with the rest of Snd) because the values passed are supposed to be short ints. </p> <div class="spacer"></div> @@ -14223,8 +14223,8 @@ The 'alpha' argument only matters in Gtk. <p id="displaydb">Use make-graph-data to get the currently displayed data (i.e. the waveform displayed in the graph, which can be based on an overall peak envelope rather than the individual samples). -It returns either a vct (if the graph has one trace), or a -list of two vcts (the two sides of the peak envelope graph). +It returns either a float-vector (if the graph has one trace), or a +list of two float-vectors (the two sides of the peak envelope graph). 'edit-position' defaults to the current edit history position, 'low-sample' defaults to the current window left sample, and 'high-sample' defaults to the current rightmost sample. @@ -14260,8 +14260,8 @@ The result can be used in the lisp graph: presenting the same thing in dB in the lisp graph. <a href="sndscm.html#displayenergy">display-energy</a> in draw.scm is another example. But the real power of this function comes from its use with graph-data. -The latter takes its argument (either a vct or a list of two -vcts), and displays it in any channel's time domain graph using its current graph-style. +The latter takes its argument (either a float-vector or a list of two +float-vectors), and displays it in any channel's time domain graph using its current graph-style. </p> <div class="spacer"></div> |