Hi Alexandre, Thanks for the detailed message. I've trimmed by .midishrc to the following: dnew 0 "28:0" rw dnew 1 "24:0" rw tnew sonder dmtcrx nil dmmctx {} dclkrx 0 dclktx {1} When I hit play on the keystep I see the clock tick messages it's generating, but I don't see them being passed to device 1 ( where the Uno is ) and the uno doesn't start playing. Here's the debug log: [0000:00]> p [0000:00]> # it stays on 0000:00 till I hit play on the keystep ... [0000:00]> # enabling debug here [0000:00]> debug mididev 1 mididev_flush: 45924054: dev 1: fe mididev_flush: 45924054: dev 0: fe mididev_inputcb: 45925087: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 46175051: dev 1: fe mididev_flush: 46175051: dev 0: fe mididev_inputcb: 46177052: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 46426045: dev 1: fe mididev_flush: 46426045: dev 0: fe mididev_inputcb: 46427108: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 46677038: dev 1: fe mididev_flush: 46677038: dev 0: fe mididev_inputcb: 46678083: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 46928035: dev 1: fe mididev_flush: 46928035: dev 0: fe mididev_inputcb: 46929057: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 47179030: dev 1: fe mididev_flush: 47179030: dev 0: fe mididev_inputcb: 47180116: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 47430061: dev 1: fe mididev_flush: 47430061: dev 0: fe mididev_inputcb: 47431063: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 47680071: dev 1: fe mididev_flush: 47680071: dev 0: fe mididev_inputcb: 47681117: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 47931027: dev 1: fe mididev_flush: 47931027: dev 0: fe mididev_inputcb: 47931027: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 48182009: dev 1: fe mididev_flush: 48182009: dev 0: fe mididev_inputcb: 48183093: dev 1: ff mididev_inputcb: ff : skipped unimplemented message Hi play on the keystep here: mididev_inputcb: 48335006: dev 0: f0 7f 7f 6 2 f7 mididev_inputcb: 48345023: dev 0: fa f8 mididev_inputcb: 48419022: dev 0: f8 mididev_flush: 48433039: dev 1: fe mididev_flush: 48433039: dev 0: fe mididev_inputcb: 48434044: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_inputcb: 48504018: dev 0: f8 mididev_inputcb: 48584000: dev 0: f8 mididev_inputcb: 48668999: dev 0: f8 mididev_flush: 48683998: dev 1: fe mididev_flush: 48683998: dev 0: fe mididev_inputcb: 48685024: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_inputcb: 48753994: dev 0: f8 mididev_inputcb: 48833993: dev 0: f8 mididev_inputcb: 48919990: dev 0: f8 mididev_flush: 48935007: dev 1: fe mididev_flush: 48935007: dev 0: fe mididev_inputcb: 48936993: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_inputcb: 49004993: dev 0: f8 mididev_inputcb: 49084991: dev 0: f8 mididev_inputcb: 49168987: dev 0: f8 mididev_flush: 49185987: dev 1: fe mididev_flush: 49185987: dev 0: fe mididev_inputcb: 49186993: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_inputcb: 49253985: dev 0: f8 mididev_inputcb: 49333983: dev 0: f8 mididev_inputcb: 49418982: dev 0: f8 mididev_flush: 49436981: dev 1: fe mididev_flush: 49436981: dev 0: fe mididev_inputcb: 49437987: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_inputcb: 49503979: dev 0: f8 mididev_inputcb: 49583978: dev 0: f8 mididev_inputcb: 49668976: dev 0: f8 mididev_flush: 49687976: dev 1: fe mididev_flush: 49687976: dev 0: fe mididev_inputcb: 49689977: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_inputcb: 49754975: dev 0: f8 mididev_inputcb: 49834974: dev 0: f8 mididev_inputcb: 49919971: dev 0: f8 mididev_flush: 49938970: dev 1: fe mididev_flush: 49938970: dev 0: fe mididev_inputcb: 49939976: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_inputcb: 50003969: dev 0: f8 mididev_inputcb: 50083968: dev 0: f8 mididev_inputcb: 50168966: dev 0: f8 mididev_flush: 50189965: dev 1: fe mididev_flush: 50189965: dev 0: fe mididev_inputcb: 50190971: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_inputcb: 50253964: dev 0: f8 mididev_inputcb: 50333962: dev 0: f8 mididev_inputcb: 50418960: dev 0: f8 mididev_flush: 50440960: dev 1: fe mididev_flush: 50440960: dev 0: fe mididev_inputcb: 50442961: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_inputcb: 50503959: dev 0: f8 mididev_inputcb: 50584958: dev 0: f8 # hit stop on the keystep mididev_inputcb: 50624957: dev 0: f0 7f 7f 6 1 f7 mididev_inputcb: 50633956: dev 0: fc mididev_flush: 50691955: dev 1: fe mididev_flush: 50691955: dev 0: fe mididev_inputcb: 50692962: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 50942947: dev 1: fe mididev_flush: 50942947: dev 0: fe mididev_inputcb: 50943956: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 51193942: dev 1: fe mididev_flush: 51193942: dev 0: fe mididev_inputcb: 51194961: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 51444940: dev 1: fe mididev_flush: 51444940: dev 0: fe mididev_inputcb: 51446940: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 51695934: dev 1: fe mididev_flush: 51695934: dev 0: fe mididev_inputcb: 51696940: dev 1: ff [0000:01]> debug mididev 0 When I rely on midish to send the clock ticks the debug log show them being explicitly sent: dnew 0 "28:0" rw dnew 1 "24:0" rw tnew sonder dmtcrx nil dmmctx {} dclkrx nil dclktx {1} [0000:00]> debug mididev 1 [0000:00]> p mididev_flush: 0: dev 1: f8 fa mididev_inputcb: 0: dev 1: fc mididev_inputcb: 2009: dev 1: f8 mididev_inputcb: 2295: dev 1: fa mididev_flush: 250003: dev 1: fe mididev_flush: 250003: dev 0: fe mididev_inputcb: 252005: dev 1: ff mididev_inputcb: ff : skipped unimplemented message mididev_flush: 334002: dev 1: f8 mididev_inputcb: 336020: dev 1: f8 mididev_inputcb: 336423: dev 1: 9e 27 7a mididev_flush: 336423: dev 1: 9e 27 7a mididev_inputcb: 340003: dev 1: 27 7a mididev_flush: 340003: dev 1: 27 0 norm_kill: noff {1 e} 27 64: killed mididev_inputcb: 340740: dev 1: 8e 27 0 mididev_inputcb: 344002: dev 1: 9e 27 0 mididev_flush: 355003: dev 1: f8 mididev_inputcb: 356024: dev 1: f8 mididev_flush: 376016: dev 1: f8 mididev_inputcb: 378001: dev 1: f8 mididev_flush: 397001: dev 1: f8 mididev_inputcb: 398005: dev 1: f8 mididev_flush: 418000: dev 1: f8 mididev_inputcb: 419006: dev 1: f8 mididev_flush: 439000: dev 1: f8 mididev_inputcb: 441001: dev 1: f8 mididev_flush: 460000: dev 1: f8 mididev_inputcb: 461006: dev 1: f8 mididev_flush: 480000: dev 1: f8 mididev_inputcb: 481005: dev 1: f8 mididev_flush: 500999: dev 0: fe mididev_flush: 500999: dev 1: f8 mididev_inputcb: 502005: dev 1: f8 mididev_flush: 521998: dev 1: f8 mididev_inputcb: 523999: dev 1: f8 mididev_flush: 542997: dev 1: f8 Thanks again, Matt On Sat, Sep 17, 2022 at 5:41 AM Alexandre Ratchov <alex_at_caoua.org> wrote: > Hi, > > I don't know how works your hardware, but let me summarize how this is > handled by midish > > There are 3 protocols: > > - MIDI clock: there's a start/stop signals and clock ticks (1/24-th of > quarter note). They are sent by the master clock source (sequencer) > and allows slave sequencers to start synchronously and to stay > synchronized. There's no tempo concept, the clock tick rate defines > the tempo. > > midish may generate these (if "dclkrx" is nil, the default) or > follow a master clock (if "dclkrx" is set). MIDI clock information > is transmitted to all devices in the "dclktx" list. > > If all of your equipment supports MIDI clock, you could setup the > keystep as "dclkrx" and put all other devices in the "dclktx" list. > Then type "p" in midish. Playback won't start, midish will wait the > keystep to send the start & clock signals. Tempo changes in the > midish project will be ignored as well, midish will follow the > keystep clock. > > So when you push the "start" button, everything starts and, most > importantly, stays in sync. > > - MIDI machine control (MMC). These messages correspond to bare > buttons on MIDI control surfaces. A sequencer receiving a MMC start > will act as if it's start button was pressed. > > As you want to control everything from the keystep interfacee, I > recommend to disable transmission of MMC (run "dmmctx {}") > > - MIDI time code (MTC). This similar to the MIDI clock, but uses > seconds instead of musical time units (like 1/24-th of quarter > notes). It's used to synchronize a MIDI sequencer to audio/video > equipement. > > Basically, the sequencer receives MTC and uses it as time reference > to generate the MIDI clock. It's controlled by dmtcrx and > disabled by defaut. > > > On Fri, Sep 16, 2022 at 01:02:17AM -0500, Matthew Bockol wrote: > > Just another addendum... > > > > I ran debug mididev 1 to see what was being sent/received: > > > > without dclkrx 0 where the Uno and Volca start their internal sequences: > > > > [0000:00]> debug mididev 1 > > [0000:00]> p > > ... starts immediately ... > > mididev_flush: 0: dev 1: f8 fa <-- signal to the USB to MIDI device to > start > > mididev_flush: 0: dev 1: f0 7f 7f 6 2 f7 > > mididev_flush: 333997: dev 1: f8 > > mididev_flush: 396997: dev 1: f8 > > mididev_flush: 459995: dev 1: f8 > > mididev_flush: 521994: dev 1: f8 > > > > I believe it's the f8 fa message being sent on dev 1 ( the usb to midi > that the > > volca and uno are listening to ) that triggers them to start playback. > > > > seems correct, as "dclkrx" is not set, midish is the master clock source > and it starts immediately. > > > > > Verses with dclkrx 0 > > > > [0000:00]> debug mididev 1 > > [0000:00]> p > > ... nothing happens till ... > > mididev_inputcb: 87842193: dev 0: f0 7f 7f 6 2 f7 <-- hit start on > keystep > > mididev_inputcb: 87852194: dev 0: fa f8 > > mididev_inputcb: 87922192: dev 0: f8 > > ... > > mididev_inputcb: 89257164: dev 0: f8 > > mididev_inputcb: 89342162: dev 0: f8 > > mididev_inputcb: 89422160: dev 0: f8 > > mididev_inputcb: 89507158: dev 0: f8 > > mididev_inputcb: 89572156: dev 0: f0 7f 7f 6 1 f7 <-- hit stop on keystep > > mididev_inputcb: 89583156: dev 0: fc > > > > Where I see a fa f8 message coming from the Keystep ( dev 0 ) but it's > not > > being passed out to dev 1 so they don't start. > > > > seems correct, midish waits for the start signal and starts and sees > the clock ticks. > > you need "dclktx {1}" for the clock information to be forwarded > > > This is with dclktx { 1 } and various permutations of dmtcrx 0 / dmmctx > { 1 }. > > > > To summarize, AFAIU, you need these: > > dmtcrx nil # disable MTC, just in case > dmmctx {} # disable MMC to not disturb any device > dclkrx 0 # make device 0 the master: receive start/stop/spp/clock > dclktx {1} # transmit start/stop/spp/clock to device 1 > p > > at this point pressing start on the keystep should make device 1 > start. Make sure it's not already started. > > If it doesn't work, could you send me the output with "debug mididev 1" > as you did? > > Once this works, you could setup the "fmap" rules so that the voice > events flow between devices > > Alexandre > >Received on Mon Sep 19 2022 - 04:11:58 CEST
This archive was generated by hypermail 2.3.0 : Tue Sep 20 2022 - 01:30:01 CEST