DSEQ32 (aka yet another TR clone)
is based on the classic TR drumsequencers\\
see [[trsequencer]] for more drumsequencer designs
{{http://webs.hogent.be/~032573mh/DSEQ32d.JPG?800}}
====== 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
* settings are stored on internal eeprom
* song mode
* all functions can be executed while running
* forward/backward playing direction
* 24 PPQ resolution
* midi clock master/slave (maybe also taptempo)
* sysex functionality
====== 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
trk button + track select: solo track
track select + play button: manually trigger note
|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 |Shift | MidiCh | MidiCh |MidiCh |Offset |Notelen |Sync to |Sync Ld | |Dump cur| |Dump BS | |LCD |Reset|
| Track |Track | Drum | NoteSeq|CC |CC |NoteTrk |Track |Pattern | |Pattern | |Pattern | |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
* 0.7e
* pattern banks implemented, bug fixed in bankstick routines
* manual trigger and solo implemented
* basic sysex support
* songmode now works
* note length implementation for note track
* it is now possible to sync pattern changes to begin of pattern
* lots of core tick optimalisations
* obsolete functions removed
====== Software ======
Most of the code is written in C
the software will be based on the midibox [[http://www.midibox.org/forum/index.php?topic=5691.0|clockbox example]] uCApps
* [[DSEQ_DATA|Data structure]]
* Application code
* [[DSEQ_BS|Bankstick]] (updated)
* [[DSEQ_CS|Control surface]]
* [[DSEQ_CORE|Sequencer core]]
* [[DSEQ_FUNCTIONS|Sequencer get/set and helper rountines]]
* you can find DSEQ32 v0.7e [[http://webs.hogent.be/~032573mh/midibox/dseq32/dseq32_latest.zip|here]]
* the [[www.doxygen.org|doxygen]] generated documentation is available [[http://webs.hogent.be/~032573mh/midibox/dseq32/doc|here]]
====== Hardware ======
Components:
* CORE module [[http://www.ucapps.de/mbhp_core.html|CORE Module]] uCApps
* DOUTX3 [[http://www.ucapps.de/mbhp_dout.html|DOUT Module]] uCApps
* DINX1 [[http://www.ucapps.de/mbhp_din.html|DIN Module]] uCApps
* BANKSTICK [[http://www.ucapps.de/mbhp_bankstick.html|BANKSTICK Module]] uCApps
The leds/buttons are wired in a matrix configuration
to reduce the number of DIN/DOUT modules needed
[[DSEQ32_matrix]]
====== Construction ======
* Assembly of frontpanel
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/button_boards.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/back_nobutton.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/boardsinplace.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring1.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring2.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring3.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring4.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring5.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly/wiring6.JPG?400}}
* Painting the case
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/paintcase/case_after_cleaning.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/paintcase/front_after_cleaning.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/paintcase/back_grondverf2.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/paintcase/front_grondverf.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/paintcase/case_together_grondverf.JPG?400}}
* Assembly after painting
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/inside_case.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/boards.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/front_back.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/front_with_nuts.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/boardsinplace_back.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/inside_case_w_board.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction/assembly_after_paint/assembled.JPG?400}}
* Finished hardware
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction//finished_hw/dseq32.JPG?400}}
{{http://webs.hogent.be/~032573mh/midibox/dseq32/construction//finished_hw/dseq32_w_nord.JPG?400}}
====== Development ======
First prototype:\\
[[http://www.midibox.org/forum/index.php?topic=6980.msg45082#msg45082|forum topic]]
{{http://users.skynet.be/sky92755/testsetup.JPG?400}}
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]]
more project by [[mess]]