User Tools

Site Tools


how_to_use_midibox_cv_with_a_dout

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

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 that the existing hardware of the Midibox CV will not be sufficient. The solution is plain simple. 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: A few changes have to be made in the sourcecode. On the one hand the dout has to activate the gates/triggers at 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: Download sources of Midibox CV at http://www.ucapps.de/mios_download.html and search for the following in "main.asm": <code> 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 </code> Replace it with: <code> USER_MPROC_NotifyReceivedEvent ;; BEGIN --- control DOUT pins via Note events at channel #1 movf MIOS_PARAMETER1, W ; Note Off -> Note On with velocity 0 andlw 0xf0 xorlw 0x80 bnz USER_MPROC_NRE_NoNoteOff USER_MPROC_NRE_NoteOff bsf MIOS_PARAMETER1, 4 clrf MIOS_PARAMETER3 USER_MPROC_NRE_NoNoteOff movlw 0x90 ; check for Note On at channel #1 IFNEQ MIOS_PARAMETER1, ACCESS, rgoto USER_MPROC_NRE_NoNoteChn1 USER_MPROC_NRE_NoteChn1 ;; MIOS_DOUT_PinSet expects pin number in WREG, value in MIOS_PARAMETER1 movf MIOS_PARAMETER3, W ; velocity == 0: off, velocity != 0: on skpz movlw 0x01 movwf MIOS_PARAMETER1 movf MIOS_PARAMETER2, W ; pin number: note number - 0x24, we start with C-2 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 </code> 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. 1mw extension for Vintage Drummer: Those who want to trigger Vintage Drummer have to modify the sourcecode as follows: Search for the following: <code> USER_SR_Service_Finish ;; ---[ handle with control surface variables (flashing cursor, etc) ]--- goto CS_MENU_TIMER </code> Replayce it with: <code> USER_SR_Service_Finish clrf MIOS_PARAMETER1 movlw 0x00 call MIOS_DOUT_SRSet movlw 0x01 call MIOS_DOUT_SRSet movlw 0x02 call MIOS_DOUT_SRSet movlw 0x03 call MIOS_DOUT_SRSet ;; ---[ handle with control surface variables (flashing cursor, etc) ]--- goto CS_MENU_TIMER </code> 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. Forum articles: http://www.midibox.org/forum/index.php?topic=2701.0\\ http://www.midibox.org/forum/index.php?topic=6333.0

how_to_use_midibox_cv_with_a_dout.1143470176.txt.gz · Last modified: 2006/10/15 09:35 (external edit)