aboutsummaryrefslogtreecommitdiff
path: root/volctl~/volctl~.c
blob: 6a3466dad98e1e3641db1037b478df7c33f7a3b8 (plain)
ofshex dumpascii
0000 2f 2a 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 34 20 54 69 6d 20 42 6c 65 63 68 6d /*.Copyright.(c).2004.Tim.Blechm
0020 61 6e 6e 2e 0a 20 2a 20 46 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 75 73 61 67 65 ann...*.For.information.on.usage
0040 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 69 6f 6e 2c 20 61 6e 64 20 66 6f 72 20 61 20 44 .and.redistribution,.and.for.a.D
0060 49 53 43 4c 41 49 4d 45 52 20 4f 46 20 41 4c 4c 0a 20 2a 20 57 41 52 52 41 4e 54 49 45 53 2c 20 ISCLAIMER.OF.ALL..*.WARRANTIES,.
0080 73 65 65 20 74 68 65 20 66 69 6c 65 2c 20 22 67 70 6c 2e 74 78 74 22 20 69 6e 20 74 68 69 73 20 see.the.file,."gpl.txt".in.this.
00a0 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 0a 20 2a 0a 20 2a 20 54 68 69 73 20 70 72 6f 67 72 61 6d distribution...*..*.This.program
00c0 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 .is.free.software;.you.can.redis
00e0 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 0a 20 2a 20 6d 6f 64 69 66 79 20 69 74 20 75 tribute.it.and/or..*.modify.it.u
0100 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 nder.the.terms.of.the.GNU.Genera
0120 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 20 2a 20 61 73 20 70 75 62 6c 69 73 68 65 64 l.Public.License..*.as.published
0140 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e .by.the.Free.Software.Foundation
0160 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 0a 20 2a 20 6f 66 20 74 68 65 20 4c 69 63 ;.either.version.2..*.of.the.Lic
0180 65 6e 73 65 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 ense,.or.(at.your.option).any.la
01a0 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 20 2a 0a 20 2a 20 53 65 65 20 66 69 6c 65 20 4c 49 43 45 ter.version...*..*.See.file.LICE
01c0 4e 53 45 20 66 6f 72 20 66 75 72 74 68 65 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 73 20 6f 6e 20 NSE.for.further.informations.on.
01e0 6c 69 63 65 6e 73 69 6e 67 20 74 65 72 6d 73 2e 0a 20 2a 0a 20 2a 20 54 68 69 73 20 70 72 6f 67 licensing.terms...*..*.This.prog
0200 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 ram.is.distributed.in.the.hope.t
0220 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 20 2a 20 62 75 74 20 57 49 hat.it.will.be.useful,..*.but.WI
0240 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e THOUT.ANY.WARRANTY;.without.even
0260 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 20 2a 20 4d 45 52 43 .the.implied.warranty.of..*.MERC
0280 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 HANTABILITY.or.FITNESS.FOR.A.PAR
02a0 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 20 2a 20 47 4e 55 TICULAR.PURPOSE...See.the..*.GNU
02c0 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 .General.Public.License.for.more
02e0 20 64 65 74 61 69 6c 73 2e 0a 20 2a 0a 20 2a 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 .details...*..*.You.should.have.
0300 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 received.a.copy.of.the.GNU.Gener
0320 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 20 2a 20 61 6c 6f 6e 67 20 77 69 74 68 20 al.Public.License..*.along.with.
0340 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 this.program;.if.not,.write.to.t
0360 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 20 2a 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 he.Free.Software..*.Foundation,.
0380 49 6e 63 2e 2c 20 35 39 20 54 65 6d 70 6c 65 20 50 6c 61 63 65 20 2d 20 53 75 69 74 65 20 33 33 Inc.,.59.Temple.Place.-.Suite.33
03a0 30 2c 20 42 6f 73 74 6f 6e 2c 20 4d 41 20 20 30 32 31 31 31 2d 31 33 30 37 2c 20 55 53 41 2e 0a 0,.Boston,.MA..02111-1307,.USA..
03c0 20 2a 0a 20 2a 20 42 61 73 65 64 20 6f 6e 20 50 75 72 65 44 61 74 61 20 62 79 20 4d 69 6c 6c 65 .*..*.Based.on.PureData.by.Mille
03e0 72 20 50 75 63 6b 65 74 74 65 20 61 6e 64 20 6f 74 68 65 72 73 2e 0a 20 2a 0a 20 2a 20 63 6f 64 r.Puckette.and.others...*..*.cod
0400 65 64 20 77 68 69 6c 65 20 6c 69 73 74 65 6e 69 6e 67 20 74 6f 3a 20 4a 75 6c 69 65 6e 20 4f 74 ed.while.listening.to:.Julien.Ot
0420 74 61 76 69 3a 20 4e 65 72 76 75 72 65 20 4d 61 67 6e 65 74 69 71 75 65 0a 20 2a 20 20 20 20 20 tavi:.Nervure.Magnetique..*.....
0440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
0460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a ...............................*
0480 2f 0a 0a 0a 23 69 6e 63 6c 75 64 65 20 22 6d 5f 70 64 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 /...#include."m_pd.h".#include."
04a0 6d 5f 73 69 6d 64 2e 68 22 0a 0a 0a 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d m_simd.h".../*.-----------------
04c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 76 6f 6c 63 74 6c 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ------------.volctl.------------
04e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 2a 2f 0a 0a 73 74 61 74 69 63 20 74 5f 63 -----------------.*/..static.t_c
0500 6c 61 73 73 20 2a 76 6f 6c 63 74 6c 5f 63 6c 61 73 73 3b 0a 0a 74 79 70 65 64 65 66 20 73 74 72 lass.*volctl_class;..typedef.str
0520 75 63 74 20 5f 76 6f 6c 63 74 6c 0a 7b 0a 20 20 20 20 74 5f 6f 62 6a 65 63 74 20 78 5f 6f 62 6a uct._volctl.{.....t_object.x_obj
0540 3b 0a 20 20 20 20 74 5f 66 6c 6f 61 74 20 78 5f 66 3b 0a 0a 20 20 20 20 74 5f 66 6c 6f 61 74 20 ;.....t_float.x_f;......t_float.
0560 78 5f 68 3b 20 2f 2f 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 20 74 69 6d 65 0a 20 20 20 20 74 5f x_h;.//interpolation.time.....t_
0580 66 6c 6f 61 74 20 78 5f 76 61 6c 75 65 3b 20 2f 2f 63 75 72 72 65 6e 74 20 66 61 63 74 6f 72 0a float.x_value;.//current.factor.
05a0 20 20 20 20 74 5f 66 6c 6f 61 74 20 78 5f 74 61 72 67 65 74 3b 20 2f 2f 74 61 72 67 65 74 20 66 ....t_float.x_target;.//target.f
05c0 61 63 74 6f 72 0a 20 20 20 20 0a 20 20 20 20 69 6e 74 20 78 5f 74 69 63 6b 73 6c 65 66 74 3b 20 actor..........int.x_ticksleft;.
05e0 2f 2f 64 73 70 20 74 69 63 6b 73 20 74 6f 20 67 6f 0a 20 20 20 20 74 5f 66 6c 6f 61 74 20 78 5f //dsp.ticks.to.go.....t_float.x_
0600 73 61 6d 70 6c 65 73 5f 70 65 72 5f 6d 73 3b 20 2f 2f 6d 73 20 70 65 72 20 73 61 6d 70 6c 65 0a samples_per_ms;.//ms.per.sample.
0620 20 20 20 20 74 5f 66 6c 6f 61 74 20 78 5f 73 6c 6f 70 65 3b 20 2f 2f 73 6c 6f 70 65 0a 09 74 5f ....t_float.x_slope;.//slope..t_
0640 66 6c 6f 61 74 20 2a 20 78 5f 73 6c 6f 70 65 73 3b 20 2f 2f 73 6c 6f 70 65 73 20 66 6f 72 20 73 float.*.x_slopes;.//slopes.for.s
0660 69 6d 64 0a 09 74 5f 66 6c 6f 61 74 20 78 5f 73 6c 6f 70 65 5f 73 74 65 70 3b 0a 20 20 20 20 69 imd..t_float.x_slope_step;.....i
0680 6e 74 20 78 5f 6c 69 6e 65 3b 20 0a 09 69 6e 74 20 78 5f 62 6c 6f 63 6b 73 69 7a 65 3b 0a 09 74 nt.x_line;...int.x_blocksize;..t
06a0 5f 66 6c 6f 61 74 20 78 5f 31 6f 76 65 72 62 6c 6f 63 6b 73 69 7a 65 3b 0a 7d 20 74 5f 76 6f 6c _float.x_1overblocksize;.}.t_vol
06c0 63 74 6c 3b 0a 0a 76 6f 69 64 20 2a 76 6f 6c 63 74 6c 5f 6e 65 77 28 74 5f 73 79 6d 62 6f 6c 20 ctl;..void.*volctl_new(t_symbol.
06e0 2a 73 2c 20 69 6e 74 20 61 72 67 63 2c 20 74 5f 61 74 6f 6d 20 2a 61 72 67 76 29 0a 7b 0a 20 20 *s,.int.argc,.t_atom.*argv).{...
0700 20 20 69 66 20 28 61 72 67 63 20 3e 20 33 29 20 70 6f 73 74 28 22 76 6f 6c 63 74 6c 7e 3a 20 65 ..if.(argc.>.3).post("volctl~:.e
0720 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 20 69 67 6e 6f 72 65 64 22 29 3b 0a 0a 20 20 20 20 74 xtra.arguments.ignored");......t
0740 5f 76 6f 6c 63 74 6c 20 2a 78 20 3d 20 28 74 5f 76 6f 6c 63 74 6c 20 2a 29 70 64 5f 6e 65 77 28 _volctl.*x.=.(t_volctl.*)pd_new(
0760 76 6f 6c 63 74 6c 5f 63 6c 61 73 73 29 3b 0a 20 20 20 20 69 6e 6c 65 74 5f 6e 65 77 28 26 78 2d volctl_class);.....inlet_new(&x-
0780 3e 78 5f 6f 62 6a 2c 20 26 78 2d 3e 78 5f 6f 62 6a 2e 6f 62 5f 70 64 2c 20 26 73 5f 66 6c 6f 61 >x_obj,.&x->x_obj.ob_pd,.&s_floa
07a0 74 2c 20 67 65 6e 73 79 6d 28 22 66 31 22 29 29 3b 0a 20 20 20 20 69 6e 6c 65 74 5f 73 65 74 74 t,.gensym("f1"));.....inlet_sett
07c0 69 70 28 78 2d 3e 78 5f 6f 62 6a 2e 6f 62 5f 69 6e 6c 65 74 2c 67 65 6e 73 79 6d 28 22 66 61 63 ip(x->x_obj.ob_inlet,gensym("fac
07e0 74 6f 72 22 29 29 3b 0a 20 20 20 20 78 2d 3e 78 5f 76 61 6c 75 65 20 3d 20 61 74 6f 6d 5f 67 65 tor"));.....x->x_value.=.atom_ge
0800 74 66 6c 6f 61 74 61 72 67 28 30 2c 20 61 72 67 63 2c 20 61 72 67 76 29 3b 0a 20 20 20 20 0a 20 tfloatarg(0,.argc,.argv);.......
0820 20 20 20 74 5f 69 6e 6c 65 74 20 2a 20 74 69 6d 65 20 3d 20 66 6c 6f 61 74 69 6e 6c 65 74 5f 6e ...t_inlet.*.time.=.floatinlet_n
0840 65 77 28 26 78 2d 3e 78 5f 6f 62 6a 2c 20 26 78 2d 3e 78 5f 68 29 3b 0a 20 20 20 20 69 6e 6c 65 ew(&x->x_obj,.&x->x_h);.....inle
0860 74 5f 73 65 74 74 69 70 28 74 69 6d 65 2c 67 65 6e 73 79 6d 28 22 69 6e 74 65 72 70 6f 6c 61 74 t_settip(time,gensym("interpolat
0880 69 6f 6e 5f 74 69 6d 65 22 29 29 3b 0a 20 20 20 20 78 2d 3e 78 5f 68 20 3d 20 61 74 6f 6d 5f 67 ion_time"));.....x->x_h.=.atom_g
08a0 65 74 66 6c 6f 61 74 61 72 67 28 31 2c 20 61 72 67 63 2c 20 61 72 67 76 29 3b 0a 0a 20 20 20 20 etfloatarg(1,.argc,.argv);......
08c0 78 2d 3e 78 5f 73 61 6d 70 6c 65 73 5f 70 65 72 5f 6d 73 20 3d 20 34 34 31 30 30 2e 66 20 2f 20 x->x_samples_per_ms.=.44100.f./.
08e0 31 30 30 30 2e 66 3b 20 2f 2f 20 61 73 73 75 6d 65 20 64 65 66 61 75 6c 74 20 73 61 6d 70 6c 65 1000.f;.//.assume.default.sample
0900 72 61 74 65 0a 09 78 2d 3e 78 5f 62 6c 6f 63 6b 73 69 7a 65 20 3d 20 36 34 3b 0a 09 78 2d 3e 78 rate..x->x_blocksize.=.64;..x->x
0920 5f 31 6f 76 65 72 62 6c 6f 63 6b 73 69 7a 65 20 3d 20 31 2e 66 2f 36 34 2e 66 3b 0a 0a 20 20 20 _1overblocksize.=.1.f/64.f;.....
0940 20 6f 75 74 6c 65 74 5f 6e 65 77 28 26 78 2d 3e 78 5f 6f 62 6a 2c 20 26 73 5f 73 69 67 6e 61 6c .outlet_new(&x->x_obj,.&s_signal
0960 29 3b 0a 20 20 20 20 78 2d 3e 78 5f 66 20 3d 20 30 3b 0a 09 0a 09 78 2d 3e 78 5f 73 6c 6f 70 65 );.....x->x_f.=.0;....x->x_slope
0980 73 20 3d 20 67 65 74 61 6c 69 67 6e 65 64 62 79 74 65 73 28 34 2a 73 69 7a 65 6f 66 28 74 5f 66 s.=.getalignedbytes(4*sizeof(t_f
09a0 6c 6f 61 74 29 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 28 78 29 3b 0a 7d 0a 0a 73 74 61 74 loat));......return.(x);.}..stat
09c0 69 63 20 76 6f 69 64 20 76 6f 6c 63 74 6c 5f 66 72 65 65 28 74 5f 76 6f 6c 63 74 6c 20 2a 78 29 ic.void.volctl_free(t_volctl.*x)
09e0 0a 7b 0a 09 66 72 65 65 61 6c 69 67 6e 65 64 62 79 74 65 73 28 78 2d 3e 78 5f 73 6c 6f 70 65 73 .{..freealignedbytes(x->x_slopes
0a00 2c 20 34 2a 73 69 7a 65 6f 66 28 74 5f 66 6c 6f 61 74 29 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 ,.4*sizeof(t_float));.}..static.
0a20 74 5f 69 6e 74 20 2a 76 6f 6c 63 74 6c 5f 70 65 72 66 6f 72 6d 28 74 5f 69 6e 74 20 2a 77 29 0a t_int.*volctl_perform(t_int.*w).
0a40 7b 0a 20 20 20 20 74 5f 76 6f 6c 63 74 6c 20 2a 20 78 20 3d 20 28 74 5f 76 6f 6c 63 74 6c 20 2a {.....t_volctl.*.x.=.(t_volctl.*
0a60 29 28 77 5b 31 5d 29 3b 0a 20 20 20 20 74 5f 66 6c 6f 61 74 20 2a 69 6e 20 3d 20 28 74 5f 66 6c )(w[1]);.....t_float.*in.=.(t_fl
0a80 6f 61 74 20 2a 29 28 77 5b 32 5d 29 3b 0a 20 20 20 20 74 5f 66 6c 6f 61 74 20 2a 6f 75 74 20 3d oat.*)(w[2]);.....t_float.*out.=
0aa0 20 28 74 5f 66 6c 6f 61 74 20 2a 29 28 77 5b 33 5d 29 3b 0a 20 20 20 20 69 6e 74 20 6e 20 3d 20 .(t_float.*)(w[3]);.....int.n.=.
0ac0 28 69 6e 74 29 28 77 5b 34 5d 29 3b 0a 20 20 20 20 0a 0a 20 20 20 20 69 66 20 28 78 2d 3e 78 5f (int)(w[4]);...........if.(x->x_
0ae0 74 69 63 6b 73 6c 65 66 74 29 0a 20 20 20 20 7b 0a 09 09 74 5f 66 6c 6f 61 74 20 66 20 3d 20 78 ticksleft).....{...t_float.f.=.x
0b00 2d 3e 78 5f 76 61 6c 75 65 3b 0a 09 09 74 5f 66 6c 6f 61 74 20 78 5f 73 6c 6f 70 65 20 3d 20 78 ->x_value;...t_float.x_slope.=.x
0b20 2d 3e 78 5f 73 6c 6f 70 65 3b 0a 09 09 0a 09 09 78 2d 3e 78 5f 74 69 63 6b 73 6c 65 66 74 2d 2d ->x_slope;......x->x_ticksleft--
0b40 3b 0a 09 09 77 68 69 6c 65 20 28 6e 2d 2d 29 0a 09 09 7b 0a 09 09 09 66 2b 3d 78 5f 73 6c 6f 70 ;...while.(n--)...{....f+=x_slop
0b60 65 3b 0a 09 09 09 2a 6f 75 74 2b 2b 20 3d 20 2a 69 6e 2b 2b 20 2a 20 66 3b 0a 09 09 7d 0a 09 09 e;....*out++.=.*in++.*.f;...}...
0b80 78 2d 3e 78 5f 76 61 6c 75 65 20 3d 20 66 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 0a 09 x->x_value.=.f;.....}.....else..
0ba0 7b 0a 09 09 74 5f 66 6c 6f 61 74 20 66 20 3d 20 78 2d 3e 78 5f 74 61 72 67 65 74 3b 0a 09 09 77 {...t_float.f.=.x->x_target;...w
0bc0 68 69 6c 65 20 28 6e 2d 2d 29 20 2a 6f 75 74 2b 2b 20 3d 20 2a 69 6e 2b 2b 20 2a 20 66 3b 20 0a hile.(n--).*out++.=.*in++.*.f;..
0be0 09 7d 0a 09 0a 20 20 20 20 72 65 74 75 72 6e 20 28 77 2b 35 29 3b 0a 7d 0a 20 20 20 20 0a 0a 73 .}.......return.(w+5);.}.......s
0c00 74 61 74 69 63 20 74 5f 69 6e 74 20 2a 76 6f 6c 63 74 6c 5f 70 65 72 66 38 28 74 5f 69 6e 74 20 tatic.t_int.*volctl_perf8(t_int.
0c20 2a 77 29 0a 7b 0a 20 20 20 20 74 5f 76 6f 6c 63 74 6c 20 2a 20 78 20 3d 20 28 74 5f 76 6f 6c 63 *w).{.....t_volctl.*.x.=.(t_volc
0c40 74 6c 20 2a 29 28 77 5b 31 5d 29 3b 0a 20 20 20 20 74 5f 66 6c 6f 61 74 20 2a 69 6e 20 3d 20 28 tl.*)(w[1]);.....t_float.*in.=.(
0c60 74 5f 66 6c 6f 61 74 20 2a 29 28 77 5b 32 5d 29 3b 0a 20 20 20 20 74 5f 66 6c 6f 61 74 20 2a 6f t_float.*)(w[2]);.....t_float.*o
0c80 75 74 20 3d 20 28 74 5f 66 6c 6f 61 74 20 2a 29 28 77 5b 33 5d 29 3b 0a 20 20 20 20 69 6e 74 20 ut.=.(t_float.*)(w[3]);.....int.
0ca0 6e 20 3d 20 28 69 6e 74 29 28 77 5b 34 5d 29 3b 0a 0a 20 20 20 20 69 66 20 28 78 2d 3e 78 5f 74 n.=.(int)(w[4]);......if.(x->x_t
0cc0 69 63 6b 73 6c 65 66 74 29 0a 20 20 20 20 7b 0a 09 09 74 5f 66 6c 6f 61 74 20 66 20 3d 20 78 2d icksleft).....{...t_float.f.=.x-
0ce0 3e 78 5f 76 61 6c 75 65 3b 0a 0a 09 09 74 5f 66 6c 6f 61 74 20 78 5f 73 6c 6f 70 65 20 3d 20 78 >x_value;....t_float.x_slope.=.x
0d00 2d 3e 78 5f 73 6c 6f 70 65 3b 0a 09 09 78 2d 3e 78 5f 74 69 63 6b 73 6c 65 66 74 2d 2d 3b 0a 09 ->x_slope;...x->x_ticksleft--;..
0d20 09 6e 20 3d 20 6e 3e 3e 33 3b 0a 09 09 77 68 69 6c 65 20 28 6e 2d 2d 29 0a 09 09 7b 0a 09 09 09 .n.=.n>>3;...while.(n--)...{....
0d40 2a 6f 75 74 2b 2b 20 3d 20 2a 69 6e 2b 2b 20 2a 20 66 3b 0a 09 09 09 66 2b 3d 78 5f 73 6c 6f 70 *out++.=.*in++.*.f;....f+=x_slop
0d60 65 3b 0a 09 09 09 2a 6f 75 74 2b 2b 20 3d 20 2a 69 6e 2b 2b 20 2a 20 66 3b 0a 09 09 09 66 2b 3d e;....*out++.=.*in++.*.f;....f+=
0d80 78 5f 73 6c 6f 70 65 3b 0a 09 09 09 2a 6f 75 74 2b 2b 20 3d 20 2a 69 6e 2b 2b 20 2a 20 66 3b 0a x_slope;....*out++.=.*in++.*.f;.
0da0 09 09 09 66 2b 3d 78 5f 73 6c 6f 70 65 3b 0a 09 09 09 2a 6f 75 74 2b 2b 20 3d 20 2a 69 6e 2b 2b ...f+=x_slope;....*out++.=.*in++
0dc0 20 2a 20 66 3b 0a 09 09 09 66 2b 3d 78 5f 73 6c 6f 70 65 3b 0a 09 09 09 2a 6f 75 74 2b 2b 20 3d .*.f;....f+=x_slope;....*out++.=
0de0 20 2a 69 6e 2b 2b 20 2a 20 66 3b 0a 09 09 09 66 2b 3d 78 5f 73 6c 6f 70 65 3b 0a 09 09 09 2a 6f .*in++.*.f;....f+=x_slope;....*o
0e00 75 74 2b 2b 20 3d 20 2a 69 6e 2b 2b 20 2a 20 66 3b 0a 09 09 09 66 2b 3d 78 5f 73 6c 6f 70 65 3b ut++.=.*in++.*.f;....f+=x_slope;
0e20 0a 09 09 09 2a 6f 75 74 2b 2b 20 3d 20 2a 69 6e 2b 2b 20 2a 20 66 3b 0a 09 09 09 66 2b 3d 78 5f ....*out++.=.*in++.*.f;....f+=x_
0e40 73 6c 6f 70 65 3b 0a 09 09 09 2a 6f 75 74 2b 2b 20 3d 20 2a 69 6e 2b 2b 20 2a 20 66 3b 0a 09 09 slope;....*out++.=.*in++.*.f;...
0e60 09 66 2b 3d 78 5f 73 6c 6f 70 65 3b 0a 09 09 7d 0a 09 09 78 2d 3e 78 5f 76 61 6c 75 65 20 3d 20 .f+=x_slope;...}...x->x_value.=.
0e80 66 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 7b 0a 09 09 74 5f 66 6c 6f 61 f;.....}.....else.....{...t_floa
0ea0 74 20 66 20 3d 20 78 2d 3e 78 5f 74 61 72 67 65 74 3b 0a 0a 09 09 69 66 20 28 66 29 0a 09 09 09 t.f.=.x->x_target;....if.(f)....
0ec0 66 6f 72 20 28 3b 20 6e 3b 20 6e 20 2d 3d 20 38 2c 20 69 6e 20 2b 3d 20 38 2c 20 6f 75 74 20 2b for.(;.n;.n.-=.8,.in.+=.8,.out.+
0ee0 3d 20 38 29 0a 09 09 09 7b 0a 09 09 09 09 74 5f 66 6c 6f 61 74 20 66 30 20 3d 20 69 6e 5b 30 5d =.8)....{.....t_float.f0.=.in[0]
0f00 2c 20 66 31 20 3d 20 69 6e 5b 31 5d 2c 20 66 32 20 3d 20 69 6e 5b 32 5d 2c 20 66 33 20 3d 20 69 ,.f1.=.in[1],.f2.=.in[2],.f3.=.i
0f20 6e 5b 33 5d 3b 0a 09 09 09 09 74 5f 66 6c 6f 61 74 20 66 34 20 3d 20 69 6e 5b 34 5d 2c 20 66 35 n[3];.....t_float.f4.=.in[4],.f5
0f40 20 3d 20 69 6e 5b 35 5d 2c 20 66 36 20 3d 20 69 6e 5b 36 5d 2c 20 66 37 20 3d 20 69 6e 5b 37 5d .=.in[5],.f6.=.in[6],.f7.=.in[7]
0f60 3b 0a 09 09 09 09 0a 09 09 09 09 6f 75 74 5b 30 5d 20 3d 20 66 30 20 2a 20 66 3b 20 6f 75 74 5b ;..........out[0].=.f0.*.f;.out[
0f80 31 5d 20 3d 20 66 31 20 2a 20 66 3b 20 6f 75 74 5b 32 5d 20 3d 20 66 32 20 2a 20 66 3b 20 6f 75 1].=.f1.*.f;.out[2].=.f2.*.f;.ou
0fa0 74 5b 33 5d 20 3d 20 66 33 20 2a 20 66 3b 0a 09 09 09 09 6f 75 74 5b 34 5d 20 3d 20 66 34 20 2a t[3].=.f3.*.f;.....out[4].=.f4.*
0fc0 20 66 3b 20 6f 75 74 5b 35 5d 20 3d 20 66 35 20 2a 20 66 3b 20 6f 75 74 5b 36 5d 20 3d 20 66 36 .f;.out[5].=.f5.*.f;.out[6].=.f6
0fe0 20 2a 20 66 3b 20 6f 75 74 5b 37 5d 20 3d 20 66 37 20 2a 20 66 3b 0a 09 09 09 7d 0a 09 09 65 6c .*.f;.out[7].=.f7.*.f;....}...el
1000 73 65 0a 09 09 09 66 6f 72 20 28 3b 20 6e 3b 20 6e 20 2d 3d 20 38 2c 20 69 6e 20 2b 3d 20 38 2c se....for.(;.n;.n.-=.8,.in.+=.8,
1020 20 6f 75 74 20 2b 3d 20 38 29 0a 09 09 09 7b 0a 09 09 09 09 6f 75 74 5b 30 5d 20 3d 20 30 3b 20 .out.+=.8)....{.....out[0].=.0;.
1040 6f 75 74 5b 31 5d 20 3d 20 30 3b 20 6f 75 74 5b 32 5d 20 3d 20 30 3b 20 6f 75 74 5b 33 5d 20 3d out[1].=.0;.out[2].=.0;.out[3].=
1060 20 30 3b 0a 09 09 09 09 6f 75 74 5b 34 5d 20 3d 20 30 3b 20 6f 75 74 5b 35 5d 20 3d 20 30 3b 20 .0;.....out[4].=.0;.out[5].=.0;.
1080 6f 75 74 5b 36 5d 20 3d 20 30 3b 20 6f 75 74 5b 37 5d 20 3d 20 30 3b 0a 09 09 09 7d 0a 0a 20 20 out[6].=.0;.out[7].=.0;....}....
10a0 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 28 77 2b 35 29 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 ..}.....return.(w+5);.}...static
10c0 20 74 5f 69 6e 74 20 2a 76 6f 6c 63 74 6c 5f 70 65 72 66 5f 73 69 6d 64 28 74 5f 69 6e 74 20 2a .t_int.*volctl_perf_simd(t_int.*
10e0 77 29 0a 7b 0a 20 20 20 20 74 5f 76 6f 6c 63 74 6c 20 2a 20 78 20 3d 20 28 74 5f 76 6f 6c 63 74 w).{.....t_volctl.*.x.=.(t_volct
1100 6c 20 2a 29 28 77 5b 31 5d 29 3b 0a 20 20 20 20 74 5f 66 6c 6f 61 74 20 2a 69 6e 20 3d 20 28 74 l.*)(w[1]);.....t_float.*in.=.(t
1120 5f 66 6c 6f 61 74 20 2a 29 28 77 5b 32 5d 29 3b 0a 20 20 20 20 74 5f 66 6c 6f 61 74 20 2a 6f 75 _float.*)(w[2]);.....t_float.*ou
1140 74 20 3d 20 28 74 5f 66 6c 6f 61 74 20 2a 29 28 77 5b 33 5d 29 3b 0a 0a 20 20 20 20 69 66 20 28 t.=.(t_float.*)(w[3]);......if.(
1160 78 2d 3e 78 5f 74 69 63 6b 73 6c 65 66 74 29 0a 20 20 20 20 7b 00 0a 09 09 69 6e 74 20 6e 20 3d x->x_ticksleft).....{....int.n.=
1180 20 28 69 6e 74 29 28 77 5b 34 5d 29 3b 0a 09 0a 09 09 78 2d 3e 78 5f 74 69 63 6b 73 6c 65 66 74 .(int)(w[4]);.....x->x_ticksleft
11a0 2d 2d 3b 0a 0a 23 69 66 20 64 65 66 69 6e 65 64 28 5f 5f 47 4e 55 43 5f 5f 29 20 26 26 20 28 64 --;..#if.defined(__GNUC__).&&.(d
11c0 65 66 69 6e 65 64 28 5f 58 38 36 5f 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 5f 5f 69 33 38 36 5f efined(_X86_).||.defined(__i386_
11e0 5f 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 5f 5f 69 35 38 36 5f 5f 29 20 7c 7c 20 64 65 66 69 6e _).||.defined(__i586__).||.defin
1200 65 64 28 5f 5f 69 36 38 36 5f 5f 29 20 29 0a 09 09 61 73 6d 28 0a 09 09 09 22 2e 73 65 74 20 54 ed(__i686__).)...asm(....".set.T
1220 5f 46 4c 4f 41 54 2c 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _FLOAT,4........................
1240 20 20 5c 6e 22 0a 09 09 09 22 6d 6f 76 73 73 20 20 20 20 20 28 25 33 29 2c 25 25 78 6d 6d 30 20 ..\n"...."movss.....(%3),%%xmm0.
1260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 20 2f 2a 20 76 61 6c 75 65 20 2a ..................\n"./*.value.*
1280 2f 0a 09 09 09 22 73 68 75 66 70 73 20 20 20 20 24 30 2c 20 25 25 78 6d 6d 30 2c 20 25 25 78 6d /...."shufps....$0,.%%xmm0,.%%xm
12a0 6d 30 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 m0............\n"...."movaps....
12c0 28 25 34 29 2c 20 25 25 78 6d 6d 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e (%4),.%%xmm1..................\n
12e0 22 20 2f 2a 20 78 5f 73 6c 6f 70 65 73 20 2a 2f 0a 09 09 09 22 61 64 64 70 73 20 20 20 20 20 25 "./*.x_slopes.*/...."addps.....%
1300 25 78 6d 6d 30 2c 20 25 25 78 6d 6d 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 %xmm0,.%%xmm1................\n"
1320 0a 09 09 09 0a 09 09 09 22 6d 6f 76 73 73 20 20 20 20 20 28 25 35 29 2c 20 25 25 78 6d 6d 30 20 ........"movss.....(%5),.%%xmm0.
1340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 22 73 68 75 66 70 73 20 .................\n"...."shufps.
1360 20 20 20 24 30 2c 20 25 25 78 6d 6d 30 2c 20 25 25 78 6d 6d 30 20 20 20 20 20 20 20 20 20 20 20 ...$0,.%%xmm0,.%%xmm0...........
1380 20 5c 6e 22 20 2f 2a 20 78 5f 73 6c 6f 70 65 5f 73 74 65 70 20 2a 2f 0a 09 09 09 0a 09 09 09 22 .\n"./*.x_slope_step.*/........"
13a0 73 68 72 6c 20 20 20 20 20 20 24 34 2c 20 25 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 shrl......$4,.%2................
13c0 20 20 20 20 20 20 20 20 5c 6e 22 20 2f 2a 20 6e 3e 3e 34 20 2a 2f 0a 09 09 09 0a 09 09 09 22 31 ........\n"./*.n>>4.*/........"1
13e0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :...............................
1400 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 28 25 30 29 2c 20 25 .......\n"...."movaps....(%0),.%
1420 25 78 6d 6d 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 22 6d %xmm2..................\n"...."m
1440 75 6c 70 73 20 20 20 20 20 25 25 78 6d 6d 31 2c 20 25 25 78 6d 6d 32 20 20 20 20 20 20 20 20 20 ulps.....%%xmm1,.%%xmm2.........
1460 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 25 25 78 6d 6d 32 2c .......\n"...."movaps....%%xmm2,
1480 20 28 25 31 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 22 61 .(%1)..................\n"...."a
14a0 64 64 70 73 20 20 20 20 20 25 25 78 6d 6d 30 2c 20 25 25 78 6d 6d 31 20 20 20 20 20 20 20 20 20 ddps.....%%xmm0,.%%xmm1.........
14c0 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 0a 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 34 2a 54 .......\n"........"movaps....4*T
14e0 5f 46 4c 4f 41 54 28 25 30 29 2c 20 25 25 78 6d 6d 32 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 _FLOAT(%0),.%%xmm2.........\n"..
1500 09 09 22 6d 75 6c 70 73 20 20 20 20 20 25 25 78 6d 6d 31 2c 20 25 25 78 6d 6d 32 20 20 20 20 20 .."mulps.....%%xmm1,.%%xmm2.....
1520 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 25 25 78 ...........\n"...."movaps....%%x
1540 6d 6d 32 2c 20 34 2a 54 5f 46 4c 4f 41 54 28 25 31 29 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 mm2,.4*T_FLOAT(%1).........\n"..
1560 09 09 22 61 64 64 70 73 20 20 20 20 20 25 25 78 6d 6d 30 2c 20 25 25 78 6d 6d 31 20 20 20 20 20 .."addps.....%%xmm0,.%%xmm1.....
1580 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 0a 09 09 09 22 6d 6f 76 61 70 73 20 20 20 ...........\n"........"movaps...
15a0 20 38 2a 54 5f 46 4c 4f 41 54 28 25 30 29 2c 20 25 25 78 6d 6d 32 20 20 20 20 20 20 20 20 20 5c .8*T_FLOAT(%0),.%%xmm2.........\
15c0 6e 22 0a 09 09 09 22 6d 75 6c 70 73 20 20 20 20 20 25 25 78 6d 6d 31 2c 20 25 25 78 6d 6d 32 20 n"...."mulps.....%%xmm1,.%%xmm2.
15e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 22 6d 6f 76 61 70 73 20 20 20 ...............\n"...."movaps...
1600 20 25 25 78 6d 6d 32 2c 20 38 2a 54 5f 46 4c 4f 41 54 28 25 31 29 20 20 20 20 20 20 20 20 20 5c .%%xmm2,.8*T_FLOAT(%1).........\
1620 6e 22 0a 09 09 09 22 61 64 64 70 73 20 20 20 20 20 25 25 78 6d 6d 30 2c 20 25 25 78 6d 6d 31 20 n"...."addps.....%%xmm0,.%%xmm1.
1640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 0a 09 09 09 22 6d 6f 76 61 70 ...............\n"........"movap
1660 73 20 20 20 20 31 32 2a 54 5f 46 4c 4f 41 54 28 25 30 29 2c 20 25 25 78 6d 6d 32 20 20 20 20 20 s....12*T_FLOAT(%0),.%%xmm2.....
1680 20 20 20 5c 6e 22 0a 09 09 09 22 6d 75 6c 70 73 20 20 20 20 20 25 25 78 6d 6d 31 2c 20 25 25 78 ...\n"...."mulps.....%%xmm1,.%%x
16a0 6d 6d 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 22 6d 6f 76 61 70 mm2................\n"...."movap
16c0 73 20 20 20 20 25 25 78 6d 6d 32 2c 20 31 32 2a 54 5f 46 4c 4f 41 54 28 25 31 29 20 20 20 20 20 s....%%xmm2,.12*T_FLOAT(%1).....
16e0 20 20 20 5c 6e 22 0a 09 09 09 22 61 64 64 70 73 20 20 20 20 20 25 25 78 6d 6d 30 2c 20 25 25 78 ...\n"...."addps.....%%xmm0,.%%x
1700 6d 6d 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 20 2f 2a 20 6f 6e 65 20 69 6e mm1................\n"./*.one.in
1720 73 74 72 2e 20 6f 62 73 6f 6c 65 74 65 20 2a 2f 0a 09 09 09 0a 09 09 09 22 61 64 64 6c 20 20 20 str..obsolete.*/........"addl...
1740 20 20 20 24 31 36 2a 54 5f 46 4c 4f 41 54 2c 20 25 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...$16*T_FLOAT,.%0..............
1760 20 5c 6e 22 0a 09 09 09 22 61 64 64 6c 20 20 20 20 20 20 24 31 36 2a 54 5f 46 4c 4f 41 54 2c 20 .\n"...."addl......$16*T_FLOAT,.
1780 25 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 22 6c 6f 6f 70 20 20 20 %1...............\n"...."loop...
17a0 20 20 20 31 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...1b...........................
17c0 20 5c 6e 22 0a 09 09 09 0a 09 09 09 3a 0a 09 09 09 3a 22 72 22 28 69 6e 29 2c 20 22 72 22 28 6f .\n"........:....:"r"(in),."r"(o
17e0 75 74 29 2c 20 22 63 22 28 6e 29 2c 20 22 72 22 28 26 28 74 5f 66 6c 6f 61 74 29 28 78 2d 3e 78 ut),."c"(n),."r"(&(t_float)(x->x
1800 5f 76 61 6c 75 65 29 29 2c 0a 09 09 09 22 72 22 28 28 74 5f 66 6c 6f 61 74 2a 29 78 2d 3e 78 5f _value)),...."r"((t_float*)x->x_
1820 73 6c 6f 70 65 73 29 2c 20 22 72 22 28 26 28 74 5f 66 6c 6f 61 74 29 28 78 2d 3e 78 5f 73 6c 6f slopes),."r"(&(t_float)(x->x_slo
1840 70 65 5f 73 74 65 70 29 29 0a 09 09 09 3a 22 25 78 6d 6d 30 22 2c 20 22 25 78 6d 6d 31 22 2c 20 pe_step))....:"%xmm0",."%xmm1",.
1860 22 25 78 6d 6d 32 22 29 3b 0a 09 09 0a 09 09 78 2d 3e 78 5f 76 61 6c 75 65 20 2b 3d 20 6e 2a 28 "%xmm2");......x->x_value.+=.n*(
1880 78 2d 3e 78 5f 73 6c 6f 70 65 29 3b 0a 09 7d 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 7b 0a 09 x->x_slope);..}.....else.....{..
18a0 09 73 77 69 74 63 68 28 78 2d 3e 78 5f 74 61 72 67 65 74 29 0a 09 09 7b 0a 09 09 63 61 73 65 20 .switch(x->x_target)...{...case.
18c0 30 3a 0a 09 09 09 61 73 6d 28 0a 09 09 09 09 22 2e 73 65 74 20 54 5f 46 4c 4f 41 54 2c 34 20 20 0:....asm(.....".set.T_FLOAT,4..
18e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 0a ........................\n".....
1900 09 09 09 09 22 78 6f 72 70 73 20 20 20 20 20 25 25 78 6d 6d 30 2c 20 25 25 78 6d 6d 30 20 20 20 ...."xorps.....%%xmm0,.%%xmm0...
1920 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 73 68 72 6c 20 20 20 20 20 20 .............\n"....."shrl......
1940 24 34 2c 20 25 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e $4,.%1........................\n
1960 22 0a 09 09 09 0a 09 09 09 09 22 31 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "........."1:...................
1980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 6f 76 61 ...................\n"....."mova
19a0 70 73 20 20 20 20 25 25 78 6d 6d 30 2c 20 28 25 30 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ps....%%xmm0,.(%0)..............
19c0 20 20 20 20 5c 6e 22 20 0a 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 25 25 78 6d 6d 30 2c 20 ....\n"......"movaps....%%xmm0,.
19e0 34 2a 54 5f 46 4c 4f 41 54 28 25 30 29 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 4*T_FLOAT(%0).........\n"....."m
1a00 6f 76 61 70 73 20 20 20 20 25 25 78 6d 6d 30 2c 20 38 2a 54 5f 46 4c 4f 41 54 28 25 30 29 20 20 ovaps....%%xmm0,.8*T_FLOAT(%0)..
1a20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 25 25 78 6d 6d 30 .......\n"....."movaps....%%xmm0
1a40 2c 20 31 32 2a 54 5f 46 4c 4f 41 54 28 25 30 29 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 ,.12*T_FLOAT(%0)........\n".....
1a60 22 61 64 64 6c 20 20 20 20 20 20 24 31 36 2a 54 5f 46 4c 4f 41 54 2c 20 25 30 20 20 20 20 20 20 "addl......$16*T_FLOAT,.%0......
1a80 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6c 6f 6f 70 20 20 20 20 20 20 31 62 20 20 .........\n"....."loop......1b..
1aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 ..........................\n"...
1ac0 09 09 3a 0a 09 09 09 09 3a 22 72 22 28 6f 75 74 29 2c 0a 09 09 09 09 22 63 22 28 77 5b 34 5d 29 ..:.....:"r"(out),....."c"(w[4])
1ae0 0a 09 09 09 09 3a 20 22 25 78 6d 6d 30 22 29 3b 0a 09 09 09 62 72 65 61 6b 3b 0a 0a 09 09 63 61 .....:."%xmm0");....break;....ca
1b00 73 65 20 31 3a 0a 09 09 09 69 66 20 28 69 6e 20 21 3d 20 6f 75 74 29 0a 09 09 09 09 61 73 6d 28 se.1:....if.(in.!=.out).....asm(
1b20 0a 09 09 09 09 09 22 2e 73 65 74 20 54 5f 46 4c 4f 41 54 2c 34 20 20 20 20 20 20 20 20 20 20 20 ......".set.T_FLOAT,4...........
1b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 0a 09 09 09 09 09 22 73 .................\n".........."s
1b60 68 72 6c 20 20 20 20 20 20 24 34 2c 20 25 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hrl......$4,.%1.................
1b80 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 0a 09 09 09 09 09 22 31 3a 20 20 20 20 20 20 20 20 20 20 .........\n"......."1:..........
1ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e ..............................\n
1bc0 22 0a 09 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 28 25 31 29 2c 20 25 25 78 6d 6d 30 20 20 "......"movaps....(%1),.%%xmm0..
1be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 09 22 6d 6f 76 61 ..................\n"......"mova
1c00 70 73 20 20 20 20 34 2a 54 5f 46 4c 4f 41 54 28 25 31 29 2c 20 25 25 78 6d 6d 31 20 20 20 20 20 ps....4*T_FLOAT(%1),.%%xmm1.....
1c20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 38 2a 54 5f 46 4c ......\n"......"movaps....8*T_FL
1c40 4f 41 54 28 25 31 29 2c 20 25 25 78 6d 6d 32 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 OAT(%1),.%%xmm2...........\n"...
1c60 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 31 32 2a 54 5f 46 4c 4f 41 54 28 25 31 29 2c 20 25 25 ..."movaps....12*T_FLOAT(%1),.%%
1c80 78 6d 6d 33 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 09 22 6d 6f 76 61 70 73 20 20 xmm3..........\n"......"movaps..
1ca0 20 20 25 25 78 6d 6d 30 2c 20 28 25 32 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..%%xmm0,.(%2)..................
1cc0 20 20 5c 6e 22 0a 09 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 25 25 78 6d 6d 31 2c 20 34 2a ..\n"......"movaps....%%xmm1,.4*
1ce0 54 5f 46 4c 4f 41 54 28 25 32 29 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 09 22 T_FLOAT(%2)...........\n"......"
1d00 6d 6f 76 61 70 73 20 20 20 20 25 25 78 6d 6d 32 2c 20 38 2a 54 5f 46 4c 4f 41 54 28 25 32 29 20 movaps....%%xmm2,.8*T_FLOAT(%2).
1d20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 25 25 ..........\n"......"movaps....%%
1d40 78 6d 6d 33 2c 20 31 32 2a 54 5f 46 4c 4f 41 54 28 25 32 29 20 20 20 20 20 20 20 20 20 20 5c 6e xmm3,.12*T_FLOAT(%2)..........\n
1d60 22 0a 09 09 09 09 0a 09 09 09 09 09 22 61 64 64 6c 20 20 20 20 20 20 24 31 36 2a 54 5f 46 4c 4f "..........."addl......$16*T_FLO
1d80 41 54 2c 25 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 09 AT,%1..................\n"......
1da0 22 61 64 64 6c 20 20 20 20 20 20 24 31 36 2a 54 5f 46 4c 4f 41 54 2c 25 32 20 20 20 20 20 20 20 "addl......$16*T_FLOAT,%2.......
1dc0 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 09 22 6c 6f 6f 70 20 20 20 20 20 20 31 ...........\n"......"loop......1
1de0 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c b..............................\
1e00 6e 22 0a 09 09 09 09 09 3a 0a 09 09 09 09 09 3a 22 63 22 28 77 5b 34 5d 29 2c 22 72 22 28 69 6e n"......:......:"c"(w[4]),"r"(in
1e20 29 2c 22 72 22 28 6f 75 74 29 0a 09 09 09 09 09 3a 22 25 78 6d 6d 30 22 2c 22 25 78 6d 6d 31 22 ),"r"(out)......:"%xmm0","%xmm1"
1e40 2c 22 25 78 6d 6d 32 22 2c 22 25 78 6d 6d 33 22 29 3b 0a 09 09 09 62 72 65 61 6b 3b 0a 0a 09 09 ,"%xmm2","%xmm3");....break;....
1e60 64 65 66 61 75 6c 74 3a 0a 09 09 09 61 73 6d 28 0a 09 09 09 09 22 2e 73 65 74 20 54 5f 46 4c 4f default:....asm(.....".set.T_FLO
1e80 41 54 2c 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e AT,4..........................\n
1ea0 22 0a 09 09 09 0a 09 09 09 09 22 6d 6f 76 73 73 20 20 20 20 20 28 25 33 29 2c 20 25 25 78 6d 6d "........."movss.....(%3),.%%xmm
1ec0 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 73 68 75 66 0..................\n"....."shuf
1ee0 70 73 20 20 20 20 24 30 2c 20 25 25 78 6d 6d 30 2c 20 25 25 78 6d 6d 30 20 20 20 20 20 20 20 20 ps....$0,.%%xmm0,.%%xmm0........
1f00 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 73 68 72 6c 20 20 20 20 20 20 24 34 2c 20 25 32 20 20 20 ....\n"....."shrl......$4,.%2...
1f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 0a 09 09 09 .....................\n"........
1f40 09 22 31 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."1:............................
1f60 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 28 25 30 ..........\n"....."movaps....(%0
1f80 29 2c 20 25 25 78 6d 6d 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 ),.%%xmm1..................\n"..
1fa0 09 09 09 22 6d 75 6c 70 73 20 20 20 20 20 25 25 78 6d 6d 30 2c 20 25 25 78 6d 6d 31 20 20 20 20 ..."mulps.....%%xmm0,.%%xmm1....
1fc0 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 25 ............\n"....."movaps....%
1fe0 25 78 6d 6d 31 2c 20 28 25 31 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 %xmm1,.(%1)..................\n"
2000 20 0a 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 34 2a 54 5f 46 4c 4f 41 54 28 25 30 29 2c 20 ......"movaps....4*T_FLOAT(%0),.
2020 25 25 78 6d 6d 32 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 75 6c 70 73 20 20 20 %%xmm2.........\n"....."mulps...
2040 20 20 25 25 78 6d 6d 30 2c 20 25 25 78 6d 6d 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..%%xmm0,.%%xmm2................
2060 5c 6e 22 0a 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 25 25 78 6d 6d 32 2c 20 34 2a 54 5f 46 \n"....."movaps....%%xmm2,.4*T_F
2080 4c 4f 41 54 28 25 31 29 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 6f 76 61 70 73 LOAT(%1).........\n"....."movaps
20a0 20 20 20 20 38 2a 54 5f 46 4c 4f 41 54 28 25 30 29 2c 20 25 25 78 6d 6d 33 20 20 20 20 20 20 20 ....8*T_FLOAT(%0),.%%xmm3.......
20c0 20 20 5c 6e 22 0a 09 09 09 09 22 6d 75 6c 70 73 20 20 20 20 20 25 25 78 6d 6d 30 2c 20 25 25 78 ..\n"....."mulps.....%%xmm0,.%%x
20e0 6d 6d 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 6f 76 61 mm3................\n"....."mova
2100 70 73 20 20 20 20 25 25 78 6d 6d 33 2c 20 38 2a 54 5f 46 4c 4f 41 54 28 25 31 29 20 20 20 20 20 ps....%%xmm3,.8*T_FLOAT(%1).....
2120 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 31 32 2a 54 5f 46 4c 4f 41 ....\n"....."movaps....12*T_FLOA
2140 54 28 25 30 29 2c 20 25 25 78 6d 6d 34 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 75 T(%0),.%%xmm4........\n"....."mu
2160 6c 70 73 20 20 20 20 20 25 25 78 6d 6d 30 2c 20 25 25 78 6d 6d 34 20 20 20 20 20 20 20 20 20 20 lps.....%%xmm0,.%%xmm4..........
2180 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 6d 6f 76 61 70 73 20 20 20 20 25 25 78 6d 6d 34 2c ......\n"....."movaps....%%xmm4,
21a0 20 31 32 2a 54 5f 46 4c 4f 41 54 28 25 31 29 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 .12*T_FLOAT(%1)........\n"....."
21c0 61 64 64 6c 20 20 20 20 20 20 24 31 36 2a 54 5f 46 4c 4f 41 54 2c 20 25 30 20 20 20 20 20 20 20 addl......$16*T_FLOAT,.%0.......
21e0 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 22 61 64 64 6c 20 20 20 20 20 20 24 31 36 2a 54 ........\n"....."addl......$16*T
2200 5f 46 4c 4f 41 54 2c 20 25 31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 _FLOAT,.%1...............\n"....
2220 09 22 6c 6f 6f 70 20 20 20 20 20 20 31 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."loop......1b..................
2240 20 20 20 20 20 20 20 20 20 20 5c 6e 22 0a 09 09 09 09 3a 0a 09 09 09 09 3a 20 22 72 22 28 69 6e ..........\n".....:.....:."r"(in
2260 29 2c 20 22 72 22 28 6f 75 74 29 2c 0a 09 09 09 09 22 63 22 28 77 5b 34 5d 29 2c 22 72 22 28 26 ),."r"(out),....."c"(w[4]),"r"(&
2280 28 74 5f 66 6c 6f 61 74 29 28 78 2d 3e 78 5f 74 61 72 67 65 74 29 29 0a 09 09 09 09 3a 20 22 25 (t_float)(x->x_target)).....:."%
22a0 78 6d 6d 30 22 2c 20 22 25 78 6d 6d 31 22 2c 22 25 78 6d 6d 32 22 2c 22 25 78 6d 6d 33 22 2c 22 xmm0",."%xmm1","%xmm2","%xmm3","
22c0 25 78 6d 6d 34 22 29 3b 0a 09 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 28 77 %xmm4");...}.....}.....return.(w
22e0 2b 35 29 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 76 6f 69 64 20 76 6f 6c 63 74 6c 5f 73 65 74 28 +5);.}...static.void.volctl_set(
2300 74 5f 76 6f 6c 63 74 6c 20 2a 78 2c 20 74 5f 66 6c 6f 61 74 20 66 29 0a 7b 0a 09 74 5f 66 6c 6f t_volctl.*x,.t_float.f).{..t_flo
2320 61 74 20 73 6c 6f 70 65 3b 0a 09 69 6e 74 20 69 3b 0a 09 69 6e 74 20 73 61 6d 70 6c 65 73 6c 65 at.slope;..int.i;..int.samplesle
2340 66 74 20 3d 20 78 2d 3e 78 5f 68 20 2a 20 78 2d 3e 78 5f 73 61 6d 70 6c 65 73 5f 70 65 72 5f 6d ft.=.x->x_h.*.x->x_samples_per_m
2360 73 3b 0a 09 73 61 6d 70 6c 65 73 6c 65 66 74 20 2b 3d 20 78 2d 3e 78 5f 62 6c 6f 63 6b 73 69 7a s;..samplesleft.+=.x->x_blocksiz
2380 65 20 2d 20 28 20 73 61 6d 70 6c 65 73 6c 65 66 74 20 26 20 28 78 2d 3e 78 5f 62 6c 6f 63 6b 73 e.-.(.samplesleft.&.(x->x_blocks
23a0 69 7a 65 20 2d 20 31 29 29 3b 0a 09 78 2d 3e 78 5f 74 69 63 6b 73 6c 65 66 74 20 3d 20 28 69 6e ize.-.1));..x->x_ticksleft.=.(in
23c0 74 29 20 28 74 5f 66 6c 6f 61 74 29 73 61 6d 70 6c 65 73 6c 65 66 74 20 2a 20 78 2d 3e 78 5f 31 t).(t_float)samplesleft.*.x->x_1
23e0 6f 76 65 72 62 6c 6f 63 6b 73 69 7a 65 3b 0a 0a 20 20 20 20 73 6c 6f 70 65 20 3d 20 28 66 20 2d overblocksize;......slope.=.(f.-
2400 20 78 2d 3e 78 5f 76 61 6c 75 65 29 20 2f 20 73 61 6d 70 6c 65 73 6c 65 66 74 3b 0a 20 20 20 20 .x->x_value)./.samplesleft;.....
2420 78 2d 3e 78 5f 73 6c 6f 70 65 20 3d 20 73 6c 6f 70 65 3b 0a 09 0a 09 66 6f 72 20 28 69 20 3d 20 x->x_slope.=.slope;....for.(i.=.
2440 30 3b 20 69 20 21 3d 20 34 3b 20 2b 2b 69 29 0a 09 7b 0a 09 09 78 2d 3e 78 5f 73 6c 6f 70 65 73 0;.i.!=.4;.++i)..{...x->x_slopes
2460 5b 69 5d 20 3d 20 69 2a 73 6c 6f 70 65 3b 0a 09 7d 0a 09 78 2d 3e 78 5f 73 6c 6f 70 65 5f 73 74 [i].=.i*slope;..}..x->x_slope_st
2480 65 70 20 3d 20 34 2a 73 6c 6f 70 65 3b 0a 0a 09 78 2d 3e 78 5f 74 61 72 67 65 74 20 3d 20 66 3b ep.=.4*slope;...x->x_target.=.f;
24a0 0a 7d 0a 0a 73 74 61 74 69 63 20 76 6f 69 64 20 76 6f 6c 63 74 6c 5f 64 73 70 28 74 5f 76 6f 6c .}..static.void.volctl_dsp(t_vol
24c0 63 74 6c 20 2a 78 2c 20 74 5f 73 69 67 6e 61 6c 20 2a 2a 73 70 29 0a 7b 0a 20 20 20 20 63 6f 6e ctl.*x,.t_signal.**sp).{.....con
24e0 73 74 20 69 6e 74 20 6e 20 3d 20 73 70 5b 30 5d 2d 3e 73 5f 6e 3b 0a 20 20 20 20 69 66 20 28 6e st.int.n.=.sp[0]->s_n;.....if.(n
2500 26 37 29 0a 20 20 20 20 09 64 73 70 5f 61 64 64 28 76 6f 6c 63 74 6c 5f 70 65 72 66 6f 72 6d 2c &7)......dsp_add(volctl_perform,
2520 20 34 2c 20 78 2c 20 73 70 5b 30 5d 2d 3e 73 5f 76 65 63 2c 20 73 70 5b 31 5d 2d 3e 73 5f 76 65 .4,.x,.sp[0]->s_vec,.sp[1]->s_ve
2540 63 2c 20 6e 29 3b 0a 20 20 20 20 65 6c 73 65 20 0a 20 20 20 20 7b 0a 09 09 69 66 28 53 49 4d 44 c,.n);.....else......{...if(SIMD
2560 5f 43 48 45 43 4b 32 28 6e 2c 73 70 5b 30 5d 2d 3e 73 5f 76 65 63 2c 73 70 5b 31 5d 2d 3e 73 5f _CHECK2(n,sp[0]->s_vec,sp[1]->s_
2580 76 65 63 29 29 0a 09 09 09 64 73 70 5f 61 64 64 28 76 6f 6c 63 74 6c 5f 70 65 72 66 5f 73 69 6d vec))....dsp_add(volctl_perf_sim
25a0 64 2c 20 34 2c 20 78 2c 20 73 70 5b 30 5d 2d 3e 73 5f 76 65 63 2c 20 73 70 5b 31 5d 2d 3e 73 5f d,.4,.x,.sp[0]->s_vec,.sp[1]->s_
25c0 76 65 63 2c 20 6e 29 3b 0a 09 09 65 6c 73 65 0a 09 09 09 64 73 70 5f 61 64 64 28 76 6f 6c 63 74 vec,.n);...else....dsp_add(volct
25e0 6c 5f 70 65 72 66 38 2c 20 34 2c 20 78 2c 20 73 70 5b 30 5d 2d 3e 73 5f 76 65 63 2c 20 73 70 5b l_perf8,.4,.x,.sp[0]->s_vec,.sp[
2600 31 5d 2d 3e 73 5f 76 65 63 2c 20 6e 29 3b 0a 20 20 20 20 7d 0a 0a 09 78 2d 3e 78 5f 62 6c 6f 63 1]->s_vec,.n);.....}...x->x_bloc
2620 6b 73 69 7a 65 20 3d 20 6e 3b 0a 20 20 20 20 78 2d 3e 78 5f 31 6f 76 65 72 62 6c 6f 63 6b 73 69 ksize.=.n;.....x->x_1overblocksi
2640 7a 65 20 3d 20 31 2e 2f 6e 3b 0a 09 78 2d 3e 78 5f 73 61 6d 70 6c 65 73 5f 70 65 72 5f 6d 73 20 ze.=.1./n;..x->x_samples_per_ms.
2660 3d 20 73 70 5b 30 5d 2d 3e 73 5f 73 72 20 2f 20 31 30 30 30 2e 66 3b 0a 7d 0a 0a 76 6f 69 64 20 =.sp[0]->s_sr./.1000.f;.}..void.
2680 76 6f 6c 63 74 6c 5f 74 69 6c 64 65 5f 73 65 74 75 70 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 76 volctl_tilde_setup(void).{.....v
26a0 6f 6c 63 74 6c 5f 63 6c 61 73 73 20 3d 20 63 6c 61 73 73 5f 6e 65 77 28 67 65 6e 73 79 6d 28 22 olctl_class.=.class_new(gensym("
26c0 76 6f 6c 63 74 6c 7e 22 29 2c 20 28 74 5f 6e 65 77 6d 65 74 68 6f 64 29 76 6f 6c 63 74 6c 5f 6e volctl~"),.(t_newmethod)volctl_n
26e0 65 77 2c 20 0a 09 09 09 09 09 09 09 20 28 74 5f 6d 65 74 68 6f 64 29 76 6f 6c 63 74 6c 5f 66 72 ew,..........(t_method)volctl_fr
2700 65 65 2c 20 73 69 7a 65 6f 66 28 74 5f 76 6f 6c 63 74 6c 29 2c 20 30 2c 20 41 5f 47 49 4d 4d 45 ee,.sizeof(t_volctl),.0,.A_GIMME
2720 2c 20 30 29 3b 0a 20 20 20 20 43 4c 41 53 53 5f 4d 41 49 4e 53 49 47 4e 41 4c 49 4e 28 76 6f 6c ,.0);.....CLASS_MAINSIGNALIN(vol
2740 63 74 6c 5f 63 6c 61 73 73 2c 20 74 5f 76 6f 6c 63 74 6c 2c 20 78 5f 66 29 3b 0a 20 20 20 20 63 ctl_class,.t_volctl,.x_f);.....c
2760 6c 61 73 73 5f 61 64 64 6d 65 74 68 6f 64 28 76 6f 6c 63 74 6c 5f 63 6c 61 73 73 2c 20 28 74 5f lass_addmethod(volctl_class,.(t_
2780 6d 65 74 68 6f 64 29 76 6f 6c 63 74 6c 5f 64 73 70 2c 20 67 65 6e 73 79 6d 28 22 64 73 70 22 29 method)volctl_dsp,.gensym("dsp")
27a0 2c 20 30 29 3b 0a 20 20 20 20 63 6c 61 73 73 5f 61 64 64 6d 65 74 68 6f 64 28 76 6f 6c 63 74 6c ,.0);.....class_addmethod(volctl
27c0 5f 63 6c 61 73 73 2c 20 28 74 5f 6d 65 74 68 6f 64 29 76 6f 6c 63 74 6c 5f 73 65 74 2c 20 67 65 _class,.(t_method)volctl_set,.ge
27e0 6e 73 79 6d 28 22 66 31 22 29 2c 41 5f 46 4c 4f 41 54 2c 30 29 3b 0a 20 20 20 20 63 6c 61 73 73 nsym("f1"),A_FLOAT,0);.....class
2800 5f 73 65 74 74 69 70 28 76 6f 6c 63 74 6c 5f 63 6c 61 73 73 2c 67 65 6e 73 79 6d 28 22 73 69 67 _settip(volctl_class,gensym("sig
2820 6e 61 6c 22 29 29 3b 0a 7d 0a nal"));.}.