Peter Cai
149dcf9001
use PROGMEM for the pitch-to-period lookup table
1 year ago
Peter Cai
b6de9ecaee
"randomize" rotation
1 year ago
Peter Cai
c33009867f
motor_control: tweak the between-notes delay
...
Also, we need unsigned long to avoid overflowing
1 year ago
Peter Cai
ac3036011e
motor_control: add a little bit of delay between notes
1 year ago
Peter Cai
6ca0fb07ea
motor_control: refactor: cache next_tick_half_micros
1 year ago
Peter Cai
6efea4f89d
motor_control: refactor: Extract TickController logic
...
While we are at it, fix the MIDI bend implementation so that it doesn't
reset every time a new note is played.
1 year ago
Peter Cai
606015ee5a
motor_control: correct for MIDI_PITCHBEND_MIN offset
1 year ago
Peter Cai
eeb92cb75b
gen_pitch_table: remove workaround for resonance frequencies
...
Hard-coding this here is not appropriate since we can tune the current
and microstep to move the resonance frequency around.
But really, we should be avoiding the resonating notes during
arrangement, not here as a hard-coded workaround.
1 year ago
Peter Cai
dea29d97fc
pitch_table: expand bend to 2048 levels
1 year ago
Peter Cai
7a3f62499f
pitch_table: use PROGMEM for pitch bend lookup table
...
This way we can fit more bend values inside our synthesizer
1 year ago
Peter Cai
c0d04c13fc
Makefile: rename program properly
1 year ago
Peter Cai
afbf0a886b
motor_control: stop VS Code from complaining about missing pitch_table.h
1 year ago
Peter Cai
e64e4c19e8
initial implementation of pitch bending
1 year ago
Peter Cai
e30766e799
Makefile: build pitch_table.h properly
...
make it an actual target
1 year ago
Peter Cai
00d233ebe5
gen_pitch_table: account for drop in higher frequency notes
1 year ago
Peter Cai
882f164a24
reduce MIDI_CMD_INTERVAL_MIN to 1ms
1 year ago
Peter Cai
e3517d6fa3
motor_control: operate on units of half micro seconds
1 year ago
Peter Cai
2a4670009b
limit frequency of reading & parsing MIDI data
...
To improve note accuracy
1 year ago
Peter Cai
7d2f555ee4
main: use NUM_MOTORS everywhere
1 year ago
Peter Cai
8e1b13345a
use a higher-precision timer implementation
1 year ago
Peter Cai
7bd6bb1073
Makefile: enable -O3
1 year ago
Peter Cai
3c43881716
gen_pitch_table: avoid main resonance frequencies
1 year ago
Peter Cai
a7bc05506d
implement serial MIDI interface
1 year ago
Peter Cai
105388310b
gen_pitch_table: add "ul" suffix to integer literals
1 year ago
Peter Cai
534850a4ff
test: play Twinkle Twinkle Little Star
1 year ago
Peter Cai
adb9d5444b
generate MIDI pitch lookup table
1 year ago
Peter Cai
636f18d70d
replace number of motors with a constant
1 year ago
Peter Cai
1ab11a72b1
add comment
1 year ago
Peter Cai
29ad62627b
randomize the order of tick processing
1 year ago
Peter Cai
c667006ca0
initial commit: basic control working
1 year ago