ofs | hex dump | ascii |
---|
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. |