summaryrefslogtreecommitdiffstats
path: root/flow/gsl/gslwave.header
blob: 2b0bf5b17abc5e5f5e11d9c34ac50e5b261bb3c9 (plain)
ofshex dumpascii
0000 23 47 73 6c 57 61 76 65 0a 0a 23 20 47 73 6c 57 61 76 65 20 66 69 6c 65 20 73 61 6d 70 6c 65 20 #GslWave..#.GslWave.file.sample.
0020 68 65 61 64 65 72 2e 20 61 6c 6c 20 67 73 6c 77 61 76 65 20 66 69 6c 65 73 20 73 68 6f 75 6c 64 header..all.gslwave.files.should
0040 20 63 6f 6e 74 61 69 6e 0a 23 20 22 23 47 73 6c 57 61 76 65 22 20 61 73 20 74 68 65 69 72 20 69 .contain.#."#GslWave".as.their.i
0060 6e 69 74 69 61 6c 20 62 79 74 65 73 2c 20 74 6f 20 61 6c 6c 6f 77 20 6d 61 67 69 63 28 35 29 20 nitial.bytes,.to.allow.magic(5).
0080 69 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 2e 0a 0a 23 20 73 69 6e 67 6c 65 20 6c 69 6e 65 20 63 identification...#.single.line.c
00a0 6f 6d 6d 65 6e 74 73 20 61 72 65 20 65 6e 63 6c 6f 73 65 64 20 69 6e 20 27 23 27 20 61 6e 64 20 omments.are.enclosed.in.'#'.and.
00c0 6e 65 77 6c 69 6e 65 73 2e 0a 23 20 6e 65 77 6c 69 6e 65 73 20 28 61 6c 73 6f 20 63 6f 6e 73 65 newlines..#.newlines.(also.conse
00e0 63 75 74 69 76 65 29 2c 20 74 61 62 73 20 61 6e 64 20 73 70 61 63 65 73 20 61 72 65 20 61 6c 6c cutive),.tabs.and.spaces.are.all
0100 20 74 72 65 61 74 65 64 20 61 73 0a 23 20 61 20 73 69 6e 67 6c 65 20 27 73 70 61 63 65 27 2c 20 .treated.as.#.a.single.'space',.
0120 69 2e 65 2e 20 77 6f 72 64 20 62 6f 75 6e 64 61 72 79 2e 0a 0a 23 20 57 61 76 65 20 64 65 66 69 i.e..word.boundary...#.Wave.defi
0140 6e 69 74 69 6f 6e 2c 20 61 20 77 61 76 65 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 6f 6e 65 20 6f nition,.a.wave.consists.of.one.o
0160 72 20 6d 6f 72 65 20 73 61 6d 70 6c 65 73 20 28 63 68 75 6e 6b 73 29 2c 0a 23 20 77 68 69 63 68 r.more.samples.(chunks),.#.which
0180 20 75 73 75 61 6c 6c 79 20 63 6f 6d 70 6f 73 65 20 61 20 73 69 6e 67 6c 65 20 69 6e 73 74 72 75 .usually.compose.a.single.instru
01a0 6d 65 6e 74 2e 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 73 61 6d 70 6c 65 73 0a 23 20 61 ment..the.individual.samples.#.a
01c0 72 65 20 70 72 6f 76 69 64 65 64 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 20 6e 6f 74 65 73 20 re.provided.for.different.notes.
01e0 6f 72 20 73 61 6d 70 6c 69 6e 67 20 66 72 65 71 75 65 6e 63 65 73 2c 20 74 68 65 20 77 61 76 65 or.sampling.frequences,.the.wave
0200 0a 23 20 63 61 6e 20 62 65 20 70 6c 61 79 65 64 20 61 74 2e 0a 77 61 76 65 20 7b 0a 20 20 20 20 .#.can.be.played.at..wave.{.....
0220 20 20 20 20 6e 61 6d 65 20 3d 20 22 71 75 6f 74 65 64 20 73 74 72 69 6e 67 22 09 23 20 65 61 63 ....name.=."quoted.string".#.eac
0240 68 20 77 61 76 65 20 6d 75 73 74 20 68 61 76 65 20 61 20 64 65 73 63 72 69 70 74 69 76 65 20 6e h.wave.must.have.a.descriptive.n
0260 61 6d 65 0a 20 20 20 20 20 20 20 20 6d 69 78 5f 66 72 65 71 20 3d 20 34 34 31 30 30 09 23 20 74 ame.........mix_freq.=.44100.#.t
0280 68 65 20 64 65 66 61 75 6c 74 20 73 61 6d 70 6c 69 6e 67 20 66 72 65 71 75 65 6e 63 79 20 66 6f he.default.sampling.frequency.fo
02a0 72 20 74 68 65 0a 20 20 20 20 20 20 20 20 09 09 09 23 20 77 61 76 65 20 63 68 75 6e 6b 73 20 74 r.the............#.wave.chunks.t
02c0 6f 20 66 6f 6c 6c 6f 77 2e 20 64 65 66 61 75 6c 74 73 20 74 6f 20 34 34 31 30 30 2e 0a 0a 20 20 o.follow..defaults.to.44100.....
02e0 20 20 20 20 20 20 23 20 61 20 63 68 75 6e 6b 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 20 73 61 ......#.a.chunk.definition,.a.sa
0300 6d 70 6c 65 20 63 68 75 6e 6b 20 70 6f 69 6e 74 73 20 74 6f 20 65 6e 63 6f 64 65 64 20 73 61 6d mple.chunk.points.to.encoded.sam
0320 70 6c 65 0a 20 20 20 20 20 20 20 20 23 20 64 61 74 61 20 77 68 69 63 68 20 72 65 63 6f 72 64 73 ple.........#.data.which.records
0340 20 68 6f 77 20 74 68 65 20 77 61 76 65 20 73 6f 75 6e 64 73 20 61 74 20 67 69 76 65 6e 20 6e 6f .how.the.wave.sounds.at.given.no
0360 74 65 2e 0a 20 20 20 20 20 20 20 20 63 68 75 6e 6b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 te..........chunk.{.............
0380 20 20 20 20 6f 73 63 5f 66 72 65 71 20 3d 20 34 34 30 2e 30 09 23 20 6e 6f 74 65 20 66 72 65 71 ....osc_freq.=.440.0.#.note.freq
03a0 75 65 6e 63 79 20 74 68 65 20 63 68 75 6e 6b 20 69 73 20 74 6f 20 62 65 0a 20 20 20 20 20 20 20 uency.the.chunk.is.to.be........
03c0 20 20 20 20 20 20 20 20 20 09 09 09 23 20 70 6c 61 79 65 64 20 61 74 2e 20 28 6f 72 2c 20 74 68 ............#.played.at..(or,.th
03e0 65 20 6e 6f 74 65 20 74 68 61 74 20 77 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.note.that.was.................
0400 09 09 09 23 20 70 6c 61 79 65 64 20 77 68 65 6e 20 74 68 65 20 63 68 75 6e 6b 20 77 61 73 20 72 ...#.played.when.the.chunk.was.r
0420 65 63 6f 72 64 65 64 29 2e 0a 09 09 6d 69 64 69 5f 6e 6f 74 65 20 3d 20 35 37 09 09 23 20 61 6c ecorded)....midi_note.=.57..#.al
0440 74 65 72 6e 61 74 69 76 65 20 77 61 79 20 74 6f 20 73 70 65 63 69 66 79 20 6f 73 63 5f 66 72 65 ternative.way.to.specify.osc_fre
0460 71 2e 0a 09 09 09 09 09 23 20 65 2e 67 2e 20 74 68 65 20 6d 69 64 69 20 6e 6f 74 65 20 6e 75 6d q.......#.e.g..the.midi.note.num
0480 62 65 72 20 27 35 37 27 20 6d 65 61 6e 73 0a 09 09 09 09 09 23 20 34 34 30 20 48 7a 20 28 41 2d ber.'57'.means......#.440.Hz.(A-
04a0 31 29 2e 0a 09 20 20 20 20 20 20 20 20 6d 69 78 5f 66 72 65 71 20 3d 20 34 34 31 30 30 09 23 20 1)...........mix_freq.=.44100.#.
04c0 74 68 65 20 73 61 6d 70 6c 69 6e 67 20 66 72 65 71 75 65 6e 63 79 20 77 69 74 68 20 77 68 69 63 the.sampling.frequency.with.whic
04e0 68 0a 09 20 20 20 20 20 20 20 20 09 09 09 23 20 74 68 69 73 20 63 68 75 6e 6b 20 68 61 73 20 62 h.............#.this.chunk.has.b
0500 65 65 6e 20 72 65 63 6f 72 64 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 een.recorded..................fi
0520 6c 65 20 3d 20 22 66 69 6c 65 6e 61 6d 65 22 09 23 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 69 6e le.=."filename".#.file.containin
0540 67 20 74 68 69 73 20 63 68 75 6e 6b 27 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 g.this.chunk's..................
0560 09 09 23 20 73 61 6d 70 6c 65 64 20 64 61 74 61 2e 0a 09 09 69 6e 64 65 78 20 3d 20 22 77 61 76 ..#.sampled.data....index.=."wav
0580 65 6e 61 6d 65 22 09 23 20 77 61 76 65 6e 61 6d 65 20 6f 66 20 73 61 6d 70 6c 65 20 74 6f 20 72 ename".#.wavename.of.sample.to.r
05a0 65 61 64 20 66 72 6f 6d 0a 09 09 09 09 09 23 20 66 69 6c 65 6e 61 6d 65 2c 20 69 6e 64 65 78 69 ead.from......#.filename,.indexi
05c0 6e 67 20 74 68 69 73 20 63 68 75 6e 6b 27 73 0a 09 09 09 09 09 23 20 73 61 6d 70 6c 65 64 20 64 ng.this.chunk's......#.sampled.d
05e0 61 74 61 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 66 66 73 65 74 20 3d 20 32 ata..................boffset.=.2
0600 35 36 09 09 23 20 66 6f 72 20 72 61 77 20 73 61 6d 70 6c 65 73 2c 20 74 68 65 20 6e 75 6d 62 65 56..#.for.raw.samples,.the.numbe
0620 72 20 6f 66 20 62 79 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 23 20 r.of.bytes....................#.
0640 74 6f 20 73 6b 69 70 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 66 69 6c 65 6e 61 6d 65 to.skip.at.beginning.of.filename
0660 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 5f 76 61 6c 75 65 73 20 3d 20 35 31 32 09 .................n_values.=.512.
0680 09 23 20 6e 75 6d 62 65 72 20 6f 66 20 76 61 6c 75 65 73 20 72 65 63 6f 72 64 65 64 20 69 6e 0a .#.number.of.values.recorded.in.
06a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 23 20 66 69 6c 65 6e 61 6d 65 2e 20 28 ...................#.filename..(
06c0 6d 61 79 62 65 20 30 20 66 6f 72 20 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 maybe.0.for.default)............
06e0 20 20 20 20 20 09 09 09 23 20 64 65 66 61 75 6c 74 73 20 74 6f 20 66 69 6c 65 6c 65 6e 67 74 68 ........#.defaults.to.filelength
0700 20 77 69 74 68 6f 75 74 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 .without.the....................
0720 23 20 6f 66 66 73 65 74 2c 20 64 69 76 69 64 65 64 20 62 79 20 74 68 65 20 66 6f 72 6d 61 74 20 #.offset,.divided.by.the.format.
0740 73 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 6c 6f 6f 70 20 64 65 66 69 size.................#.loop.defi
0760 6e 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 66 6f 72 20 73 61 6d nition.................#.for.sam
0780 70 6c 65 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 70 61 72 74 73 20 77 68 69 63 68 20 61 72 ples.that.contain.parts.which.ar
07a0 65 20 74 6f 20 62 65 20 6c 6f 6f 70 65 64 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.to.be.looped,.................
07c0 23 20 74 68 65 20 6c 6f 6f 70 20 64 65 66 69 6e 69 74 69 6f 6e 20 73 70 65 63 69 66 69 65 73 20 #.the.loop.definition.specifies.
07e0 74 68 65 20 73 74 61 72 74 20 61 6e 64 20 65 6e 64 20 70 6f 69 6e 74 73 20 6f 66 0a 20 20 20 20 the.start.and.end.points.of.....
0800 20 20 20 20 20 20 20 20 20 20 20 20 23 20 74 68 65 20 6c 6f 6f 70 2c 20 61 6e 64 20 68 6f 77 20 ............#.the.loop,.and.how.
0820 6f 66 74 65 6e 20 69 74 20 69 73 20 73 75 70 70 6f 73 65 64 20 74 6f 20 62 65 20 72 65 70 65 61 often.it.is.supposed.to.be.repea
0840 74 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 74 68 65 20 6c 6f 6f 70 20 ted..................#.the.loop.
0860 73 74 61 72 74 20 61 6e 64 20 65 6e 64 20 70 6f 73 69 74 69 6f 6e 73 20 61 72 65 20 73 75 70 70 start.and.end.positions.are.supp
0880 6f 73 65 64 20 74 6f 20 62 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 6e 5f 63 osed.to.be.................#.n_c
08a0 68 61 6e 6e 65 6c 73 20 61 6c 69 67 6e 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hannels.aligned.................
08c0 20 6c 6f 6f 70 5f 74 79 70 65 20 3d 20 6a 75 6d 70 09 23 20 74 68 65 20 6c 6f 6f 70 20 74 79 70 .loop_type.=.jump.#.the.loop.typ
08e0 65 20 63 61 6e 20 62 65 20 6f 6e 65 20 6f 66 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.can.be.one.of:................
0900 20 09 09 09 23 20 6e 6f 6e 65 2c 20 6a 75 6d 70 20 6f 72 20 70 69 6e 67 70 6f 6e 67 2e 0a 20 20 ....#.none,.jump.or.pingpong....
0920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 09 09 09 23 20 64 65 66 61 75 6c 74 73 20 74 6f 20 6a .................#.defaults.to.j
0940 75 6d 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 6f 70 5f 73 74 61 72 74 20 ump..................loop_start.
0960 3d 20 31 36 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 6f 70 5f 65 6e 64 20 3d 20 =.16.................loop_end.=.
0980 33 32 09 09 23 20 73 68 6f 75 6c 64 20 62 65 20 3e 3d 6c 6f 6f 70 5f 73 74 61 72 74 0a 20 20 20 32..#.should.be.>=loop_start....
09a0 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 6f 70 5f 63 6f 75 6e 74 20 3d 20 34 32 09 09 23 20 .............loop_count.=.42..#.
09c0 64 65 66 61 75 6c 74 73 20 74 6f 20 6d 61 78 69 6d 75 6d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 defaults.to.maximum.........}...
09e0 20 20 20 20 20 20 23 20 6d 6f 72 65 20 63 68 75 6e 6b 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 6d ......#.more.chunk.definitions.m
0a00 61 79 20 66 6f 6c 6c 6f 77 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 6d 61 74 20 3d 20 73 69 67 6e ay.follow..........format.=.sign
0a20 65 64 5f 38 20 20 20 20 20 20 20 23 20 66 6f 72 20 72 61 77 20 73 61 6d 70 6c 65 73 2c 20 70 6f ed_8.......#.for.raw.samples,.po
0a40 73 73 69 62 6c 65 20 66 6f 72 6d 61 74 73 20 61 72 65 3a 0a 20 20 20 20 20 20 20 20 09 09 09 23 ssible.formats.are:............#
0a60 20 73 69 67 6e 65 64 5f 38 2c 20 75 6e 73 69 67 6e 65 64 5f 38 2c 20 73 69 67 6e 65 64 5f 31 32 .signed_8,.unsigned_8,.signed_12
0a80 2c 0a 20 20 20 20 20 20 20 20 09 09 09 23 20 75 6e 73 69 67 6e 65 64 5f 31 32 2c 20 73 69 67 6e ,............#.unsigned_12,.sign
0aa0 65 64 5f 31 36 2c 20 75 6e 73 69 67 6e 65 64 5f 31 36 20 6f 72 0a 20 20 20 20 20 20 20 20 09 09 ed_16,.unsigned_16.or...........
0ac0 09 23 20 66 6c 6f 61 74 2e 20 64 65 66 61 75 6c 74 73 20 74 6f 20 73 69 67 6e 65 64 5f 31 36 2e .#.float..defaults.to.signed_16.
0ae0 0a 20 20 20 20 20 20 20 20 62 79 74 65 5f 6f 72 64 65 72 20 3d 20 6c 69 74 74 6c 65 09 23 20 66 .........byte_order.=.little.#.f
0b00 6f 72 20 72 61 77 20 73 61 6d 70 6c 65 73 2c 20 70 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 or.raw.samples,.possible.values.
0b20 61 72 65 3a 0a 20 20 20 20 20 20 20 20 09 09 09 23 20 6c 69 74 74 6c 65 5f 65 6e 64 69 61 6e 2c are:............#.little_endian,
0b40 20 6c 69 74 74 6c 65 2c 20 62 69 67 5f 65 6e 64 69 61 6e 20 6f 72 20 62 69 67 2e 0a 20 20 20 20 .little,.big_endian.or.big......
0b60 20 20 20 20 09 09 09 23 20 64 65 66 61 75 6c 74 73 20 74 6f 20 6c 69 74 74 6c 65 5f 65 6e 64 69 .......#.defaults.to.little_endi
0b80 61 6e 2e 0a 20 20 20 20 20 20 20 20 6e 5f 63 68 61 6e 6e 65 6c 73 20 3d 20 32 09 09 23 20 66 6f an..........n_channels.=.2..#.fo
0ba0 72 20 72 61 77 20 73 61 6d 70 6c 65 73 2c 20 6d 75 73 74 20 62 65 20 67 72 65 61 74 65 72 20 74 r.raw.samples,.must.be.greater.t
0bc0 68 61 6e 20 30 2e 0a 20 20 20 20 20 20 20 20 09 09 09 23 20 64 65 66 61 75 6c 74 73 20 74 6f 20 han.0.............#.defaults.to.
0be0 31 20 28 6d 6f 6e 6f 29 2e 0a 7d 0a 0a 23 20 61 20 6c 69 74 65 72 61 6c 20 22 5c 30 30 30 22 20 1.(mono)..}..#.a.literal."\000".
0c00 62 79 74 65 20 69 6e 20 74 68 65 20 68 65 61 64 65 72 20 64 65 6e 6f 74 65 73 20 74 68 65 20 70 byte.in.the.header.denotes.the.p
0c20 61 72 73 69 6e 67 20 65 6e 64 2e 0a 23 20 74 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 arsing.end..#.this.can.be.used.t
0c40 6f 20 63 6f 6e 73 74 72 75 63 74 20 67 73 6c 77 61 76 65 20 66 69 6c 65 73 20 74 68 61 74 20 63 o.construct.gslwave.files.that.c
0c60 6f 6e 74 61 69 6e 3a 0a 23 20 31 29 20 74 68 65 20 67 73 6c 77 61 76 65 20 68 65 61 64 65 72 0a ontain:.#.1).the.gslwave.header.
0c80 23 20 32 29 20 61 20 6c 69 74 65 72 61 6c 20 22 5c 30 30 30 22 20 62 79 74 65 0a 23 20 33 29 20 #.2).a.literal."\000".byte.#.3).
0ca0 65 6e 63 6f 64 65 64 20 73 61 6d 70 6c 65 20 64 61 74 61 20 77 68 69 63 68 20 74 68 65 20 63 68 encoded.sample.data.which.the.ch
0cc0 75 6e 6b 73 20 72 65 66 65 72 20 74 6f 0a 0a 0a 00 0a 0a 46 69 6c 65 20 63 6f 6e 74 65 6e 74 20 unks.refer.to......File.content.
0ce0 77 68 69 63 68 20 69 73 20 69 67 6e 6f 72 65 20 62 79 20 74 68 65 20 67 73 6c 77 61 76 65 20 68 which.is.ignore.by.the.gslwave.h
0d00 65 61 64 65 72 20 70 61 72 73 65 72 2e 0a eader.parser..