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]]