aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/DSP/dsp_sps/general.bin
blob: 656d96cd2bcb69f07117cadbf9c75f49cca6b783 (plain) (blame)
ofshex dumpascii
0000 53 50 53 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 70 72 6f 67 72 61 6d 20 73 69 67 6e 61 6c SPS.allows.you.to.program.signal
0020 20 70 72 6f 63 65 73 73 69 6e 67 20 75 73 69 6e 67 20 73 69 6d 70 6c 65 20 65 78 70 72 65 73 73 .processing.using.simple.express
0040 69 6f 6e 73 2e 0d 0a 0d 0a 4d 61 6e 79 20 61 73 70 65 63 74 73 20 6f 66 20 53 50 53 20 63 6f 64 ions.....Many.aspects.of.SPS.cod
0060 65 20 61 72 65 20 73 69 6d 69 6c 61 72 20 74 6f 20 43 20 28 69 6e 63 6c 75 64 69 6e 67 20 63 6f e.are.similar.to.C.(including.co
0080 6d 6d 65 6e 74 73 29 2e 0d 0a 0d 0a 59 6f 75 20 63 61 6e 20 63 72 65 61 74 65 20 6e 65 77 20 76 mments).....You.can.create.new.v
00a0 61 72 69 61 62 6c 65 73 20 6a 75 73 74 20 62 79 20 75 73 69 6e 67 20 74 68 65 6d 2c 20 61 6e 64 ariables.just.by.using.them,.and
00c0 20 79 6f 75 20 63 61 6e 20 72 65 61 64 0d 0a 61 6e 64 20 77 72 69 74 65 20 70 72 65 64 65 66 69 .you.can.read..and.write.predefi
00e0 6e 65 64 20 76 61 72 69 61 62 6c 65 73 20 28 6f 66 20 77 68 69 63 68 20 65 61 63 68 20 65 66 66 ned.variables.(of.which.each.eff
0100 65 63 74 20 68 61 73 20 69 74 73 20 6f 77 6e 29 0d 0a 74 6f 20 69 6e 74 65 72 61 63 74 20 77 69 ect.has.its.own)..to.interact.wi
0120 74 68 20 74 68 65 20 65 66 66 65 63 74 2e 20 4e 6f 74 65 20 74 68 61 74 20 76 61 72 69 61 62 6c th.the.effect..Note.that.variabl
0140 65 73 20 61 72 65 20 61 6c 6c 20 66 6c 6f 61 74 69 6e 67 0d 0a 70 6f 69 6e 74 20 6e 75 6d 62 65 es.are.all.floating..point.numbe
0160 72 73 20 28 6e 6f 20 73 74 72 69 6e 67 73 29 2c 20 61 6e 64 20 74 68 65 20 6d 61 78 69 6d 75 6d rs.(no.strings),.and.the.maximum
0180 20 6c 65 6e 67 74 68 20 6f 66 20 61 20 76 61 72 69 61 62 6c 65 27 73 0d 0a 6e 61 6d 65 20 69 73 .length.of.a.variable's..name.is
01a0 20 38 20 63 68 61 72 61 63 74 65 72 73 20 28 61 6e 79 74 68 69 6e 67 20 6c 6f 6e 67 65 72 20 77 .8.characters.(anything.longer.w
01c0 69 6c 6c 20 62 65 20 69 67 6e 6f 72 65 64 29 2e 0d 0a 0d 0a 53 6f 2c 20 74 6f 20 63 72 65 61 74 ill.be.ignored).....So,.to.creat
01e0 65 20 61 20 76 61 72 69 61 62 6c 65 2c 20 79 6f 75 20 63 61 6e 20 73 69 6d 70 6c 79 20 75 73 65 e.a.variable,.you.can.simply.use
0200 20 69 74 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 3a 0d 0a 20 20 78 20 3d 20 35 3b 0d 0a 0d 0a 59 .it,.for.example:....x.=.5;....Y
0220 6f 75 20 63 61 6e 20 61 6c 73 6f 20 75 73 65 20 61 20 76 61 72 69 65 74 79 20 6f 66 20 6f 70 65 ou.can.also.use.a.variety.of.ope
0240 72 61 74 6f 72 73 20 61 6e 64 20 6d 61 74 68 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 0d 0a 6d 6f rators.and.math.functions.to..mo
0260 64 69 66 79 20 76 61 72 69 61 62 6c 65 73 2c 20 73 65 65 20 74 68 65 20 4f 70 65 72 61 74 6f 72 dify.variables,.see.the.Operator
0280 73 20 61 6e 64 20 46 75 6e 63 74 69 6f 6e 73 20 74 61 62 73 20 61 62 6f 76 65 2e 0d 0a 0d 0a 43 s.and.Functions.tabs.above.....C
02a0 6f 64 65 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 43 20 61 6e 64 20 43 2b 2b 20 73 74 79 6c 65 20 ode.can.include.C.and.C++.style.
02c0 63 6f 6d 6d 65 6e 74 73 3a 0d 0a 20 20 2f 2f 20 75 73 69 6e 67 20 74 68 65 20 64 6f 75 62 6c 65 comments:....//.using.the.double
02e0 73 6c 61 73 68 20 63 6f 6d 6d 65 6e 74 73 20 75 6e 74 69 6c 20 74 68 65 20 65 6e 64 20 6f 66 20 slash.comments.until.the.end.of.
0300 74 68 65 20 6c 69 6e 65 0d 0a 20 20 2f 2a 20 75 73 69 6e 67 20 74 68 65 20 63 6c 61 73 73 69 63 the.line..../*.using.the.classic
0320 20 43 20 63 6f 6d 6d 65 6e 74 73 0d 0a 20 20 20 20 20 63 6f 6d 6d 65 6e 74 20 61 20 62 6c 6f 63 .C.comments.......comment.a.bloc
0340 6b 20 6f 66 20 74 65 78 74 20 2a 2f 0d 0a 0d 0a 59 6f 75 20 63 61 6e 20 63 6f 6d 62 69 6e 65 20 k.of.text.*/....You.can.combine.
0360 6f 70 65 72 61 74 6f 72 73 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e 74 6f 20 65 78 70 operators.and.functions.into.exp
0380 72 65 73 73 69 6f 6e 73 2c 20 73 75 63 68 0d 0a 61 73 3a 0d 0a 20 20 78 20 3d 20 35 20 2a 20 63 ressions,.such..as:....x.=.5.*.c
03a0 6f 73 28 79 29 20 2f 20 33 32 2e 30 3b 20 2f 2f 20 74 68 69 73 20 64 6f 65 73 20 73 6f 6d 65 20 os(y)./.32.0;.//.this.does.some.
03c0 6c 65 65 74 6e 65 73 73 20 72 69 67 68 74 20 68 65 72 65 0d 0a 0d 0a 59 6f 75 20 63 61 6e 20 75 leetness.right.here....You.can.u
03e0 73 65 20 6d 75 6c 74 69 70 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 62 79 20 73 65 70 65 72 se.multiple.expressions.by.seper
0400 61 74 69 6e 67 20 74 68 65 6d 20 77 69 74 68 20 6f 6e 65 20 6f 72 0d 0a 6d 6f 72 65 20 73 65 6d ating.them.with.one.or..more.sem
0420 69 63 6f 6c 6f 6e 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 3a 0d 0a 20 20 78 20 3d 20 78 20 2a icolons,.for.example:....x.=.x.*
0440 20 31 37 2e 30 3b 20 78 20 3d 20 78 20 2f 20 35 3b 20 79 20 3d 20 70 6f 77 28 78 2c 33 2e 30 29 .17.0;.x.=.x./.5;.y.=.pow(x,3.0)
0460 3b 0d 0a 0d 0a 49 74 20 69 73 20 77 6f 72 74 68 20 6e 6f 74 69 6e 67 20 74 68 61 74 20 65 78 74 ;....It.is.worth.noting.that.ext
0480 72 61 20 77 68 69 74 65 73 70 61 63 65 20 28 73 70 61 63 65 73 2c 20 6e 65 77 6c 69 6e 65 73 29 ra.whitespace.(spaces,.newlines)
04a0 20 69 73 0d 0a 69 67 6e 6f 72 65 64 2c 20 73 6f 20 69 66 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 .is..ignored,.so.if.you.need.to.
04c0 73 70 61 63 65 20 74 68 69 6e 67 73 20 6f 75 74 20 66 6f 72 20 63 6c 61 72 69 74 79 2c 20 79 6f space.things.out.for.clarity,.yo
04e0 75 20 63 61 6e 2e 0d 0a 0d 0a 56 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 61 72 65 20 70 72 65 u.can.....Variables.that.are.pre
0500 64 65 66 69 6e 65 64 20 66 6f 72 20 79 6f 75 72 20 65 66 66 65 63 74 20 74 6f 20 75 73 65 3a 0d defined.for.your.effect.to.use:.
0520 0a 20 20 6e 63 68 3a 20 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 6e 6e 65 6c 73 20 6f 66 20 50 ...nch:..number.of.channels.of.P
0540 43 4d 20 73 74 72 65 61 6d 20 28 31 20 6f 72 20 32 29 0d 0a 20 20 73 72 61 74 65 3a 20 73 61 6d CM.stream.(1.or.2)....srate:.sam
0560 70 6c 65 72 61 74 65 20 6f 66 20 73 74 72 65 61 6d 20 28 69 2e 65 2e 20 34 34 31 30 30 29 0d 0a plerate.of.stream.(i.e..44100)..
0580 20 20 73 6c 69 64 65 72 31 2c 20 73 6c 69 64 65 72 32 2c 20 73 6c 69 64 65 72 33 2c 20 73 6c 69 ..slider1,.slider2,.slider3,.sli
05a0 64 65 72 34 3a 20 74 68 65 20 66 6f 75 72 20 73 6c 69 64 65 72 73 2e 20 45 61 63 68 20 68 61 73 der4:.the.four.sliders..Each.has
05c0 20 61 20 72 61 6e 67 65 20 6f 66 20 30 2e 30 2e 2e 31 2e 30 0d 0a 20 20 74 72 69 67 31 2c 20 74 .a.range.of.0.0..1.0....trig1,.t
05e0 72 69 67 32 2c 20 74 72 69 67 33 2c 20 74 72 69 67 34 3a 20 74 68 65 20 66 6f 75 72 20 74 72 69 rig2,.trig3,.trig4:.the.four.tri
0600 67 67 65 72 20 62 75 74 74 6f 6e 73 2e 20 54 68 65 73 65 20 73 68 6f 75 6c 64 20 62 65 20 72 65 gger.buttons..These.should.be.re
0620 73 65 74 20 74 6f 20 30 2e 30 0d 0a 20 20 62 79 20 79 6f 75 72 20 63 6f 64 65 20 77 68 65 6e 20 set.to.0.0....by.your.code.when.
0640 79 6f 75 27 76 65 20 63 61 75 67 68 74 20 74 68 65 20 74 72 69 67 67 65 72 0d 0a 0d 0a 56 61 72 you've.caught.the.trigger....Var
0660 69 61 62 6c 65 73 20 74 68 61 74 20 79 6f 75 72 20 70 65 72 2d 73 61 6d 70 6c 65 20 63 6f 64 65 iables.that.your.per-sample.code
0680 20 63 61 6e 20 6d 6f 64 69 66 79 20 74 6f 20 61 70 70 6c 79 20 69 74 73 20 65 66 66 65 63 74 3a .can.modify.to.apply.its.effect:
06a0 0d 0a 20 20 73 70 6c 30 20 3d 20 6c 65 66 74 2f 6d 6f 6e 6f 20 63 68 61 6e 6e 65 6c 20 73 61 6d ....spl0.=.left/mono.channel.sam
06c0 70 6c 65 2c 20 2d 31 2e 30 2e 2e 31 2e 30 0d 0a 20 20 73 70 6c 31 20 3d 20 72 69 67 68 74 20 63 ple,.-1.0..1.0....spl1.=.right.c
06e0 68 61 6e 6e 65 6c 20 73 61 6d 70 6c 65 2c 20 69 66 20 6e 63 68 20 3d 3d 20 32 2c 20 2d 31 2e 30 hannel.sample,.if.nch.==.2,.-1.0
0700 2e 2e 31 2e 30 0d 0a 20 20 73 6b 69 70 20 3d 20 73 65 74 20 74 68 69 73 20 74 6f 20 3e 20 30 20 ..1.0....skip.=.set.this.to.>.0.
0720 74 6f 20 64 72 6f 70 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 61 6d 70 6c 65 20 61 6e 64 20 6e to.drop.the.current.sample.and.n
0740 6f 74 20 6f 75 74 70 75 74 20 69 74 0d 0a 20 20 20 20 20 20 20 20 20 28 74 68 69 73 20 65 66 66 ot.output.it...........(this.eff
0760 65 63 74 69 76 65 6c 79 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 73 70 65 65 64 20 75 70 ectively.can.be.used.to.speed.up
0780 20 74 68 65 20 6f 75 74 70 75 74 0d 0a 20 20 72 65 70 65 61 74 20 3d 20 73 65 74 20 74 68 69 73 .the.output....repeat.=.set.this
07a0 20 74 6f 20 3e 20 30 20 74 6f 20 70 72 6f 63 65 73 73 20 74 68 69 73 20 73 61 6d 70 6c 65 20 61 .to.>.0.to.process.this.sample.a
07c0 67 61 69 6e 20 61 66 74 65 72 0d 0a 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 74 69 6e gain.after.............outputtin
07e0 67 20 28 74 68 69 73 20 65 66 66 65 63 74 69 76 65 6c 79 20 63 61 6e 20 62 65 20 75 73 65 64 20 g.(this.effectively.can.be.used.
0800 74 6f 20 73 6c 6f 77 20 64 6f 77 6e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 6f 75 74 to.slow.down.............the.out
0820 70 75 74 2e 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 6d 6f 73 74 20 79 6f 75 20 63 61 6e 20 put..Note.that.the.most.you.can.
0840 73 6c 6f 77 20 64 6f 77 6e 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 70 75 74 slow.down.the.............output
0860 20 64 75 65 20 74 6f 20 57 69 6e 61 6d 70 20 61 72 63 68 69 74 65 63 74 75 72 65 20 6c 69 6d 69 .due.to.Winamp.architecture.limi
0880 74 61 74 69 6f 6e 73 20 69 73 20 62 79 20 35 30 25 29 0d 0a 0d 0a 4e 6f 77 20 74 6f 20 74 68 65 tations.is.by.50%)....Now.to.the
08a0 20 69 6d 70 6f 72 74 61 6e 74 20 70 61 72 74 2c 20 68 6f 77 20 74 6f 20 61 63 74 75 61 6c 6c 79 .important.part,.how.to.actually
08c0 20 6d 61 6b 65 20 6d 65 61 6e 69 6e 67 66 75 6c 20 65 66 66 65 63 74 73 3a 0d 0a 20 20 41 20 73 .make.meaningful.effects:....A.s
08e0 69 6d 70 6c 65 20 76 6f 6c 75 6d 65 20 63 6f 6e 74 72 6f 6c 20 6d 69 67 68 74 20 62 65 3a 0d 0a imple.volume.control.might.be:..
0900 20 20 20 20 73 70 6c 30 20 3d 20 73 70 6c 30 2a 73 6c 69 64 65 72 31 3b 20 73 70 6c 31 3d 73 70 ....spl0.=.spl0*slider1;.spl1=sp
0920 6c 31 2a 73 6c 69 64 65 72 31 3b 0d 0a 20 20 54 6f 20 73 6c 6f 77 20 64 6f 77 6e 20 74 68 65 20 l1*slider1;....To.slow.down.the.
0940 6f 75 74 70 75 74 20 74 6f 20 68 61 6c 66 20 73 70 65 65 64 3a 0d 0a 20 20 20 20 74 6d 70 3d 62 output.to.half.speed:......tmp=b
0960 6e 6f 74 28 74 6d 70 29 3b 20 72 65 70 65 61 74 3d 74 6d 70 3b 0d 0a 20 20 54 6f 20 73 70 65 65 not(tmp);.repeat=tmp;....To.spee
0980 64 20 75 70 20 74 68 65 20 6f 75 74 70 75 74 20 74 6f 20 64 6f 75 62 6c 65 20 73 70 65 65 64 3a d.up.the.output.to.double.speed:
09a0 0d 0a 20 20 20 20 74 6d 70 3d 62 6e 6f 74 28 74 6d 70 29 3b 20 73 6b 69 70 3d 74 6d 70 3b 0d 0a ......tmp=bnot(tmp);.skip=tmp;..
09c0 20 20 54 6f 20 73 77 61 70 20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 63 68 61 6e 6e 65 6c ..To.swap.left.and.right.channel
09e0 73 3a 0d 0a 20 20 20 20 74 6d 70 3d 73 70 6c 30 3b 20 73 70 6c 30 3d 73 70 6c 31 3b 20 73 70 6c s:......tmp=spl0;.spl0=spl1;.spl
0a00 31 3d 74 6d 70 3b 0d 0a 20 20 65 74 63 00 1=tmp;....etc.