dseq32
This is an old revision of the document!
DSEQ32 (aka yet another TR clone)
is based on the classic TR drumsequencers
see trsequencer for more drumsequencer designs
Features
- 32 step 8 track drum seq, each step has trig/acc/roll
- one track can be used as note track for bass sequencing
- independant length/tempo divisor for each track, all can be synced to a master track
- 8 banks of 16 patterns
- patterns are saved on a bankstick
- song mode (not sure how I will implement this..)
- all functions can be executed while running
- forward/backward playing direction
- 24 PPQ resolution
- midi clock master/slave (maybe also taptempo)
- settings are stored on internal eeprom
note that these features are not final!
Interface
- lcd: displaying (bpm pat trknr edited_par)
- 32 step buttons + stepleds, leds are dual color to display trig/acc
- step edit behaviour: step off/trig/trig+acc
- all functions are accessed with a stepkey + shift combination
- pattern selection: stepkey + pattern button
- track select/mute: stepkey + track button
- rotary encoder for bpm, also used for editing values
- Step button layout:
- Track layer
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select |
Trk1 | Trk2 | Trk3 | Trk4 | Trk5 | Trk6 | Trk7 | Trk8 | Trk9 | Trk10 | Trk11 | Trk12 | Trk13 | Trk14 | Trk15 | Trk16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
Mute | Mute | Mute | Mute | Mute | Mute | Mute | Mute | Mute | Mute | Mute | Mute | Mute | Mute | Mute | Mute |
Trk1 | Trk2 | Trk3 | Trk4 | Trk5 | Trk6 | Trk7 | Trk8 | Trk9 | Trk10 | Trk11 | Trk12 | Trk13 | Trk14 | Trk15 | Trk16 |
- Pattern layer
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select |
Bank A | Bank B | Bank C | Bank D | Bank E | Bank F | Bank G | Bank 8 |
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select | Select |
Pat 1 | Pat 2 | Pat 3 | Pat 4 | Pat 5 | Pat 6 | Pat 7 | Pat 8 | Pat 9 | Pat 10 | Pat 11 | Pat 12 | Pat 13 | Pat 14 | Pat 15 | Pat 16 |
- Function layer
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Cut | Copy | Paste | Delete | NoteNr | Length | Divisor | Normal | Accent | Cut | Copy | Paste | Delete | Format | Midi | Fwd/Backwd |
Track | Track | Track | Track | Track | Track | Track | Velocity | Velocity | Pattern | Pattern | Pattern | Pattern | Bankstick | Mode | Playdir |
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
Fill | MidiCh | MidiCh | LCD | Reset | |||||||||||
Track | Drum | NoteSeq | Mode | Seq |
Progress
- first prototype
- new layout design
- ledmatrix/buttonmatrix finished (see matrix page)
- frontpanel finished/wired
- first take on controll surface handler (step, track and pattern handling)
- sequencer works, timing is not stable yet
- made a temporary case
- fixed flickering leds when pushing a button
- bankstick error handling added
- default pattern is loaded when no BS is available at startup
- independant length/divider for each track implemented
- LCD optimalisations
- loading and saving of patterns works now
- backward playing direction implemented
- midi mode implemented with simple slave mode (no interpolation)
- improved bpm handling (pattern bpm is saved with pattern)
- fill function implemented
- CS interface improved (the edit functions are now accessed with stepbutton+shift)
- settings are saved in internal eeprom
- notetrack implemented, this track will be used to program basslines
- changed data structure, new pattern is 256bytes
- cs is updated for notetrack (shift + track selects notetrack)
- shift + stop resets the song position
- due to code/ram space limitations the project is ported to a pic18f4620
- the core board was modified so that the backlight can be controlled by the software
- new bankstick routines to handle the larger pattern size
- 2 new functions added: Seq Reset and Backlight mode
- CC layer added
- tracks don't go out of sync after changing divisor
- the note track now has a note length parameter
- pattern banks are implemented
- new function: shift track
- the note-on status of tracks is displayed in the track layer
- note-off handling when seq is stopped added
- the pattern bpm is now loaded when the seq is not running
Software
most of the software will be written in C, some of the critical parts will be optimised in ASM to increase performance
the software will be based on the midibox clockbox example uCApps
- Application code
- Bankstick code (updated)
Hardware
Components:
- CORE module CORE Module uCApps
- DOUTX3 DOUT Module uCApps
- DINX1 DIN Module uCApps
- BANKSTICK BANKSTICK Module uCApps
The leds/buttons are wired in a matrix configuration to reduce the number of DIN/DOUT modules needed DSEQ32_matrix
Development
First prototype:
used for development of data structure, bankstick code, sequencer core
New version:
- Construction of frontpanel
- Wiring of the 32 step leds/buttons
- Testing of the step buttons with the SM_example application
- Testing of the step leds with modified SM_example app (modified version includes leddriver)
- Development of user interface code
- Button and led handling finished
- The flickering led problem is solved with MIOS v 1.9c
- Encoder handling works, but there's still a small bug
- Updated LCD layout for new functions
- The leds to indicate play/save/vel/special function button work now
- Some LCD optimalisations
- Development of seq code
- Sequencer edit functions work as expected
- Sequencer runs!
- Fixed sequencer mute track bug
- Some tracks didn't send the note off messages correctly, corrected
- Bankstick error handling added
- Default pattern is loaded when no BS is available at startup
- Note length/divider is implemented
- Independant length/divider for each track
back to user_projects
dseq32.1164713086.txt.gz · Last modified: 2006/11/28 11:29 (external edit)