how_to_use_midibox_cv_with_a_dout_german
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Last revisionBoth sides next revision | ||
how_to_use_midibox_cv_with_a_dout_german [2006/03/27 14:46] – talion | how_to_use_midibox_cv_with_a_dout_german [2006/10/15 09:35] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | Midibox CV um dout's erweitern | ||
+ | Wem zwei bzw. acht Gates zu wenig sind, oder Vintage Drummer (Roland x0x) Triggern will, wird schnell feststellen, | ||
+ | vorhandenen Hardwareausstattung der Midibox CV nicht auskommt. Die Lösung ist denkbar einfach und wird im Folgenden | ||
+ | erläutert. | ||
+ | |||
+ | Hardwareseitig - | ||
+ | wird ein dout Modul benötigt, welches mit J8 des Coremodules verbunden wird. Ein doutx4 stellt 32 Gates/ | ||
+ | Stelle der Hinweis: Da hier ohne Optokopller oder Transistoren gearbeitet wird, unbedingt darauf achten das die Gates/ | ||
+ | " | ||
+ | |||
+ | Softwareseitig - | ||
+ | sind einige Änderungen am Code zu machen. Zum einen muss das dout bei einem NoteOn der entsprechenden Note den Gate/ | ||
+ | aktivieren, zum anderen kann man optional die Dauer des Impulses, unabhängig der Länge der Note, auf 1ms reduzieren. Hintergrund | ||
+ | ist die eigenart mancher Drummer. So lösen die x0x-Boxen (606, 808, 909 ...) den Sound nicht bei Anschwellen der Gatespannung, | ||
+ | beim wieder Abflachen aus. | ||
+ | |||
+ | DOUT AKTIVIEREN: | ||
+ | |||
+ | Sourcen von Midibox CV herunterladen http:// | ||
+ | |||
+ | < | ||
+ | USER_MPROC_NotifyReceivedEvent | ||
+ | ;; process MIDI event | ||
+ | call CV_MIDI_NotifyReceivedEvent | ||
+ | |||
+ | ;; for best latency: branch to USER_Tick so that the new CV values | ||
+ | ;; will be mapped immediately | ||
+ | rgoto USER_Tick | ||
+ | </ | ||
+ | |||
+ | Mit diesem Code ersetzen: | ||
+ | < | ||
+ | USER_MPROC_NotifyReceivedEvent | ||
+ | |||
+ | ;; BEGIN --- control DOUT pins via Note events at channel #1 | ||
+ | movf MIOS_PARAMETER1, | ||
+ | andlw 0xf0 | ||
+ | xorlw 0x80 | ||
+ | bnz USER_MPROC_NRE_NoNoteOff | ||
+ | USER_MPROC_NRE_NoteOff | ||
+ | bsf MIOS_PARAMETER1, | ||
+ | clrf MIOS_PARAMETER3 | ||
+ | USER_MPROC_NRE_NoNoteOff | ||
+ | |||
+ | movlw 0x90 ; | ||
+ | IFNEQ MIOS_PARAMETER1, | ||
+ | USER_MPROC_NRE_NoteChn1 | ||
+ | ;; MIOS_DOUT_PinSet expects pin number in WREG, value in MIOS_PARAMETER1 | ||
+ | movf MIOS_PARAMETER3, | ||
+ | skpz | ||
+ | movlw 0x01 | ||
+ | movwf MIOS_PARAMETER1 | ||
+ | |||
+ | movf MIOS_PARAMETER2, | ||
+ | addlw -0x24 | ||
+ | andlw 0x7f | ||
+ | call MIOS_DOUT_PinSet | ||
+ | USER_MPROC_NRE_NoNoteChn1 | ||
+ | ;; END --- control DOUT pins via Note events at channel #1 | ||
+ | |||
+ | ;; process MIDI event | ||
+ | call CV_MIDI_NotifyReceivedEvent | ||
+ | |||
+ | ;; for best latency: branch to USER_Tick so that the new CV values | ||
+ | ;; will be mapped immediately | ||
+ | rgoto USER_Tick | ||
+ | </ | ||
+ | |||
+ | |||
+ | Was passiert hier? Midibox CV lauscht nun auf dem ersten Channel ab der Note C-2 auf einen NoteOn und aktiviert bei gespielter Note | ||
+ | den entsprechenden dout. Bei einem NoteOff wird dieser wieder abgeschaltet. | ||
+ | |||
+ | |||
+ | 1MS ERWEITERUNG FÜR VINTAGE DRUMMER: | ||
+ | |||
+ | Wer Vintage Drummer triggern will muss diesen Code zusätzlich in die main.asm einsetzen. Nach folgender Stelle suchen: | ||
+ | < | ||
+ | USER_SR_Service_Finish | ||
+ | ;; ---[ handle with control surface variables (flashing cursor, etc) ]--- | ||
+ | goto CS_MENU_TIMER | ||
+ | </ | ||
+ | |||
+ | Und mit diesem Code ersetzen: | ||
+ | < | ||
+ | USER_SR_Service_Finish | ||
+ | clrf MIOS_PARAMETER1 | ||
+ | movlw | ||
+ | call MIOS_DOUT_SRSet | ||
+ | movlw | ||
+ | call MIOS_DOUT_SRSet | ||
+ | movlw | ||
+ | call MIOS_DOUT_SRSet | ||
+ | movlw | ||
+ | call MIOS_DOUT_SRSet | ||
+ | |||
+ | ;; ---[ handle with control surface variables (flashing cursor, etc) ]--- | ||
+ | goto CS_MENU_TIMER | ||
+ | </ | ||
+ | |||
+ | Hiermit erreicht man, dass bei jedem Cycle die dout's zurückgesetzt werden - das dauert 1ms. Somit kann man die Drummodule mit 1ms Latenz | ||
+ | triggern. | ||
+ | |||
+ | |||
+ | |||
+ | Themen im Forum: | ||
+ | |||
+ | http:// | ||
+ | http:// |
how_to_use_midibox_cv_with_a_dout_german.txt · Last modified: 2009/05/04 15:55 by 129.120.95.63