[sdiy] MIDI I/O c code..
sleepy_dog at gmx.de
sleepy_dog at gmx.de
Fri Mar 20 22:39:20 CET 2020
I only had a handful of devices so far,
but from those, from different manufacturers, I started to wonder
whether actually any device uses the real note-off thing.
All I ever saw "out there" was note-on with zero velocity.
Am 20.03.2020 um 21:37 schrieb ShedSynth:
>
> Hi all,
>
> is note-off-sent-as-zero-velocity-note-on a thing?
>
> Who would?
>
> Is there a particular instrument/controller that typically behaves
> like this?
>
> Thanks,
>
> Al
>
> (who suspects that his MIDI code hasn’t thought of this)
>
> *From:*Synth-diy <synth-diy-bounces at synth-diy.org> *On Behalf Of
> *Jean-Pierre Desrochers
> *Sent:* 20 March 2020 01:27
> *To:* 'dougall' <dougalli at gmail.com>; eidorian at aladan.net
> *Cc:* Synth-diy at synth-diy.org
> *Subject:* Re: [sdiy] MIDI I/O c code..
>
> >Are you handling running status and note off sent as zero velocity
> note on?
>
> Yes I handle both.
>
> Running status are ignored here,
>
> And I consider both NOTE OFF and NOTE ON with zero velocity
>
> As the end of a note.
>
> *De :*dougall [mailto:dougalli at gmail.com]
> *Envoyé :* 19 mars 2020 21:06
> *À :* eidorian at aladan.net <mailto:eidorian at aladan.net>
> *Cc :* Jean-Pierre Desrochers; Synth-diy at synth-diy.org
> <mailto:Synth-diy at synth-diy.org>
> *Objet :* Re: [sdiy] MIDI I/O c code..
>
> Are you handling running status and note off sent as zero velocity
> note on?
>
> -d
>
> On Fri, 20 Mar 2020 at 11:55, <eidorian at aladan.net
> <mailto:eidorian at aladan.net>> wrote:
>
> Sorry, I don't have example code for you, but here is some
> analysis that I hope might help point you in the right direction:
>
> 20MHz / 31,250Hz => ~640 instructions per MIDI data bit, or 6,400
> instructions per MIDI data byte. That's quite a lot of
> instruction execution time between notes, so I'd be checking the
> efficiency/optimisation of the code.
>
> How long is it taking to update the analog outputs and do other
> processing? If it's updating all 8 CVs via a "slow" protocol like
> I2C every time it loops then that might be taking a while, and
> maybe you need a different approach (i.e. only update a CV output
> when it changes).
>
> How have you implemented the FIFO? Do you have locking to ensure
> the interrupt isn't writing to it while the main loop is updating it?
>
> Create a debug version that has checks on the FIFO size in the
> interrupt, and sets an LED on if it overflows, so you can confirm
> for certainly whether or not that's the problem.
>
> What I do (with 30+ years of programming experience) is pretend
> I'm the CPU, and "execute" the code in my head (or on paper if
> complex) in order to try to work out what unplanned or unexpected
> things might be happening to cause the problematic behaviour.
>
> Cheers,
> A.
>
> ---
>
> On 20-03-2020 11:14, Jean-Pierre Desrochers wrote:
>
> I’m working on a new polyphonic MIDI to CV module (8 voices).
>
> So far I did my tests with an old PIC16F887 @ 20Mhz micro I
> had on hand.
>
> I use a USART interrupt driven c function to ‘catch’ all the
> incoming MIDI bytes.
>
> My code is pretty fast, but still, since I only read one MIDI
> channel (1-16) at the time
> when I play very fast chords on an external keyboard
>
> all the notes are read in the incoming queue but sometimes
>
> I get stuck notes or unread ones..
>
> Same thing happens when playing MIDI files on Cakewalk SONAR
> feeding my prototype with a MIDI cable.
> The interrupt function grabs each incoming byte and put them
>
> In a receive buffer of 32 bytes and the main () reads and
> treats them in a FIFO manner
>
> Later in the main loop.
>
> /-Would a 32Mhz micro do a difference in the USART interrupt
> reading speed ?/
>
> /-And is 32 bytes long enough for the RxBuffer to handle a 6
> voices chords ?/
>
> /-And finaly I checked the web for a ‘decent’ C code examples/
>
> / for MIDI reception (MIDI Tx is much easier to implement)
> with no success..//
> /‘Obscure’ Arduino libraries all around with no explainations
> of its inner code.//
>
> Did anybody use good C code available ?
>
> JP
>
> Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org>
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org>
> http://synth-diy.org/mailman/listinfo/synth-diy
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org>
> http://synth-diy.org/mailman/listinfo/synth-diy
>
>
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org
> http://synth-diy.org/mailman/listinfo/synth-diy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20200320/d490391e/attachment.htm>
More information about the Synth-diy
mailing list