User Tools

Site Tools


how_to_use_midibox_cv_with_a_dout

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
how_to_use_midibox_cv_with_a_dout [2006/03/27 14:30]
talion
how_to_use_midibox_cv_with_a_dout [2009/05/06 14:23] (current)
129.120.95.63
Line 1: Line 1:
-Midibox CV to extend "douts"+**Midibox CV to extend "DOUTs"**
  
-Who considers 2 or rather ​8 gates to less or wants to trigger ​Vintage Drummer ​(Roland x0x) will find out  +Anyone who considers 2 or 8 gates too few, or wants to trigger ​vintage drum synths/​modules ​(Roland x0x style), may find the existing hardware of the Midibox CV insufficient. The solution is simple.
-that the existing hardware of the Midibox CV will not be sufficient. The solution is plain simple.+
  
-Hardware+**Hardware**
-A dout module is needed which will be connected to J8 of the coremodule. A doutx4 provides 32 gates/​triggers. +
-At this point some advice: Because it will be worked without any optokopller or transistors it is necessary  +
-not to energize the Gates/​Triggers and to prevent short circuit.+
  
-Software: +dout module is needed, which will be connected to J8 of the coremoduleA doutx4 provides 32 gates/​triggers
-few changes have to be made in the sourcecodeOn the one hand the dout has to activate the gates/​triggers at +Some advice ​at this point: because it will be built without any optocouplers or transistors ​to protect ​the DOUT, it is essential not to apply any external voltage to the Gates/​Triggersand also to prevent short circuit.
-a NoteOn of the corresponding note on the other hand you can reduce the duration of an impulse optionally ​to 1ms +
-independent from the duration of the Note.  +
-Background ​is the characteristic of some drummers. The x0x-boxes (606,808,909...) trigger the sound at decrease  +
-of voltage at the gate instead of increase.+
  
-Activate dout:+**Software**
  
-Download sources of Midibox CV at http://www.ucapps.de/mios_download.html and search for the following in  +A few changes have to be made to the sourcecodeOn the one hand, the dout has to activate the gate/trigger on receiving ​the appropriate NoteOn: on the other hand you may want to reduce the duration of an impulse to 1ms 
-"main.asm":+independent of the Note duration
  
 +Here as background is the trigger characteristic of some drum machines. The x0x-boxes (606,​808,​909...) trigger the sound at decrease of voltage at the gate instead of increase.\\ ​ //IE at the trailing edge of the +ve pulse rather than the leading edge? I'm not sure if this is correct.\\ ​ [[http://​en.wikipedia.org/​wiki/​CV/​Gate#​Gate|Wikipedia]] says that Roland and Sequential gear is V-Trig {normal low, set high to trigger} and Moog, Korg and Yamaha is S-Trig {normal high, set low to trigger}. ​ The [[http://​66.102.7.104/​search?​q=cache:​IBefydaCrJIJ:​www.kentonuk.com/​kmanualspdf/​psoloman.pdf+%22V-trig%22+edge&​hl=en&​gl=au&​ct=clnk&​cd=5&​client=firefox|manual]] for the Kenton Pro Solo MIDI-CV converter says: " ... Most synths / sequencers & drum machines will want the Positive edge pulse, but a few require the Negative edge instead. (e.g. Korg Monopoly) .. " I've also seen written elsewhere that the 606 trigger out is V-Trig, but the 707 internal triggering for it's own voices is S-Trig\\ Also, if the trailing edge was the trigger, how would gates and envelopes work ie ADSR when AD happens at leading edge, D as gate is held high, and R when gate drops low? - Bunsen//
 +
 +__Activate dout:__
 +
 +Download the source of Midibox CV at http://​www.ucapps.de/​mios_download.html and search for the following in 
 +"​main.asm":​
 +<​code>​
 USER_MPROC_NotifyReceivedEvent USER_MPROC_NotifyReceivedEvent
  ;; process MIDI event  ;; process MIDI event
Line 28: Line 27:
  ;; will be mapped immediately  ;; will be mapped immediately
  rgoto USER_Tick  rgoto USER_Tick
 +</​code>​
  
 Replace it with: Replace it with:
 +<​code>​
 USER_MPROC_NotifyReceivedEvent USER_MPROC_NotifyReceivedEvent
  
Line 45: Line 44:
  
  movlw 0x90 ;​ check for Note On at channel #1  movlw 0x90 ;​ check for Note On at channel #1
- IFNEQ MIOS_PARAMETER1,​ ACCESSrgoto USER_MPROC_NRE_NoNoteChn1+ cpfseq ​MIOS_PARAMETER1,​ ACCESS 
 + rgoto USER_MPROC_NRE_NoNoteChn1
 USER_MPROC_NRE_NoteChn1 USER_MPROC_NRE_NoteChn1
  ;; MIOS_DOUT_PinSet expects pin number in WREG, value in MIOS_PARAMETER1  ;; MIOS_DOUT_PinSet expects pin number in WREG, value in MIOS_PARAMETER1
Line 66: Line 66:
  ;; will be mapped immediately  ;; will be mapped immediately
  rgoto USER_Tick  rgoto USER_Tick
 +</​code>​
  
 What happens here? Midibox CV is listening to the first channel (beginning from tune C-2) for a NoteOn and  What happens here? Midibox CV is listening to the first channel (beginning from tune C-2) for a NoteOn and 
 activates the corresponding dout. A NoteOff deactivates the dout. activates the corresponding dout. A NoteOff deactivates the dout.
  
 +__Define the number of connected DOUT shift registers:​__
  
-1mw extension for Vintage Drummer:+If you're using more than one DOUT shift register, you must also change this code in "​main.inc"​ to reflect the number of shift registers: 
 +<​code>​ 
 + ;; initialize the SRIO driver 
 + movlw 0x01 
 + call MIOS_SRIO_NumberSet 
 +</​code>​ 
 +To set it to the maximum (16), just replace the code with this: 
 +<​code>​ 
 + ;; initialize the SRIO driver 
 + movlw 0x0F 
 + call MIOS_SRIO_NumberSet 
 +</​code>​
  
-Those who want to trigger Vintage Drummer have to modify the sourcecode as follows: 
-Search for the following: 
  
 +
 +__1ms Extension For Vintage Drum Machines:__
 +
 +Those who want to trigger vintage drums have to modify the sourcecode as follows:
 +Search for the following:
 +<​code>​
 USER_SR_Service_Finish USER_SR_Service_Finish
  ;; ---[ handle with control surface variables (flashing cursor, etc) ]---  ;; ---[ handle with control surface variables (flashing cursor, etc) ]---
  goto CS_MENU_TIMER  goto CS_MENU_TIMER
 +</​code>​
  
- +Replace ​it with: 
-Replayce ​it with: +<​code>​
 USER_SR_Service_Finish USER_SR_Service_Finish
  clrf    MIOS_PARAMETER1 ​     ​  clrf    MIOS_PARAMETER1 ​     ​
Line 97: Line 113:
  ;; ---[ handle with control surface variables (flashing cursor, etc) ]---  ;; ---[ handle with control surface variables (flashing cursor, etc) ]---
  goto CS_MENU_TIMER  goto CS_MENU_TIMER
 +</​code>​
  
- +This leads to a reset of all DOUTs once per cycle - this lasts 1ms. So the drum modules can be triggered ​
-This leads to a reset of all douts at every cicle - this lasts 1ms. So the drumm modules can be triggered ​+
 with a 1ms latency. with a 1ms latency.
  
 +MIDIbox SEQ allows up to 48 digital outputs as this type of trigger. [[http://​ucapps.de/​midibox_seq_options.html]]
 +
 +__Changing the midi channel:__
 +
 +If you want the DOUT triggers to respond to MIDI events on a channel other than #1, replace instances of "​0x80"​ and "​0x90"​ with the following values:
 +
 +  * Channel 1: 0x80, 0x90
 +  * Channel 2: 0x81, 0x91
 +  * Channel 3: 0x82, 0x92
 +  * Channel 4: 0x83, 0x93
 +  * Channel 5: 0x84, 0x94
 +  * Channel 6: 0x85, 0x95
 +  * Channel 7: 0x86, 0x96
 +  * Channel 8: 0x87, 0x97
 +  * Channel 9: 0x88, 0x98
 +  * Channel 10: 0x89, 0x99
 +  * Channel 11: 0x8A, 0x9A
 +  * Channel 12: 0x8B, 0x9B
 +  * Channel 13: 0x8C, 0x9C
 +  * Channel 14: 0x8D, 0x9D
 +  * Channel 15: 0x8E, 0x9E
 +  * Channel 16: 0x8F, 0x9F
 +
 +__Forum articles:__
  
-Forum articles:+[[http://​www.midibox.org/​forum/​index.php/​topic,​13478.0.html]] -- Information on receiving on ALL channels, information on excluding specific DOUT pins from being reset with the 1ms trigger extension code
  
-http://​www.midibox.org/​forum/​index.php?​topic=2701.0 +[[http://​www.midibox.org/​forum/​index.php?​topic=2701.0]] (German)\\ 
-http://​www.midibox.org/​forum/​index.php?​topic=6333.0+[[http://​www.midibox.org/​forum/​index.php?​topic=6333.0]] (German)
how_to_use_midibox_cv_with_a_dout.1143469849.txt.gz · Last modified: 2006/10/15 09:35 (external edit)