This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dseq32 [2007/04/03 12:15] mess |
dseq32 [2008/05/19 19:51] mess |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | 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]] <sup>uCApps</sup> | ||
- | |||
- | * [[DSEQ_DATA|Data structure]] | ||
- | |||
- | * Application code | ||
- | * [[DSEQ_BS|Bankstick code]] (updated) | ||
- | * [[DSEQ_CS|Control surface code]] | ||
- | * [[DSEQ_CORE|Sequencer core code]] | ||
- | * [[DSEQ_FUNCTIONS|Sequencer get/set and helper rountines]] | ||
- | * [[CS_HANDLER| control surface code]] | ||
- | |||
- | |||
- | * 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]] <sup>uCApps</sup> | ||
- | * DOUTX3 [[http://www.ucapps.de/mbhp_dout.html|DOUT Module]] <sup>uCApps</sup> | ||
- | * DINX1 [[http://www.ucapps.de/mbhp_din.html|DIN Module]] <sup>uCApps</sup> | ||
- | * BANKSTICK [[http://www.ucapps.de/mbhp_bankstick.html|BANKSTICK Module]] <sup>uCApps</sup> | ||
- | |||
- | |||
- | The leds/buttons are wired in a matrix configuration | ||
- | to reduce the number of DIN/DOUT modules needed | ||
- | [[DSEQ32_matrix]] | ||
- | |||
- | note: this description is out of date!! | ||
- | |||
- | ====== 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]] |