stew

a monorepo of some sort
git clone git://git.nsmpr.xyz/stew.git
Log | Files | Refs

notes (954B)


      1 The de-facto standard for wavetables seems to be 2048 samples per waveform,
      2  up to 256 waveforms per table.
      3 
      4 wavetable:
      5 	256*2048 array of s16int
      6 
      7 envelope:
      8 	len[]
      9 	val[]
     10 	loop
     11 	hold
     12 
     13 instrument:
     14 	wavetable
     15 	vol, pan, freq, filter, etc envelopes
     16 
     17 voice:
     18 	instrument
     19 	state (osc_t, pos on every envelope)
     20 
     21 ------
     22 # note control commands
     23 
     24 1 byte is enough, I guess
     25 
     26 	0     → no command
     27 	1-12? → note
     28 	????? → ???
     29 	0xFE  → note release
     30 	0xFF  → note off
     31 
     32 # base volume commands
     33 
     34 would like to fit into 1 byte as well
     35 
     36 	no command (can be combined with something else???)
     37 	volume
     38 	volume, relative
     39 	volume, relative, repeat latest ???
     40 	pan ???
     41 	pan, relative ???
     42 	pan, relative, repeat latest ???
     43 
     44 # modifier commands
     45 
     46 [modifier index] [operation] [argument]
     47 argument must be 2 bytes.
     48 
     49 	no command ???
     50 	value
     51 	value relative
     52 	value relative repeat ???
     53 
     54 ????
     55 
     56 ----
     57 # synth input
     58 
     59 	wtsynth: table freq phase mod volume pan
     60 	channel: note prog volume