How would I be sure my program has realtime prio? I tried running the
program with sudo nice --20 and also tried setting midi.realtime-prio to
99. I also tried changing the synth.cpu-cores to be 4 since my RPi has 4
cores. Oddly enough this only seemed to work when using the stock
fluidsynth, not the program that I wrote. I can tell if there are actually
4 processes being generated by looking at top and I only see 4 processes in
the stock fluidsynth vs. the program that I wrote there is still 1 even
when I set this setting.

I was able to get my keyboard hooked up to alsa_seq using JACK but the
problem was still there.

I also cloned the 1.1.x branch and compiled it but I am still having the
same problem.

And thanks for the info jjc, I am sure that an event is just being missed
for some reason. Yes, I realized that noteoff is the same as noteon with
velocity 0 when I saw that some midi files only have noteon events.

-Chris

On Fri, Jun 8, 2018 at 12:06 PM <fluid-dev-requ...@nongnu.org> wrote:

> Send fluid-dev mailing list submissions to
>         fluid-dev@nongnu.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://lists.nongnu.org/mailman/listinfo/fluid-dev
> or, via email, send a message with subject or body 'help' to
>         fluid-dev-requ...@nongnu.org
>
> You can reach the person managing the list at
>         fluid-dev-ow...@nongnu.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of fluid-dev digest..."
>
>
> Today's Topics:
>
>    1. Re: Intercepting midi events (Tom M.)
>    2. Re: Intercepting midi events (Ceresa Jean-Jacques)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Fri, 08 Jun 2018 06:27:22 +0200
> From: "Tom M." <tom.m...@googlemail.com>
> To: Christopher Leger <chris.leger...@gmail.com>
> Cc: FluidSynth mailing list <fluid-dev@nongnu.org>
> Subject: Re: [fluid-dev] Intercepting midi events
> Message-ID: <5727954.RNVHtqZ27P@main>
> Content-Type: text/plain; charset="us-ascii"
>
> Make sure your app actually has permission to run fluidsynth in realtime
> prio.
>
> Try using a different midi driver, like hooking up alsa_raw through jack.
>
> > (compiled from the original git source code)
>
> Try stable 1.1.11.
>
>
> Tom
>
>
>
> ------------------------------
>
> Message: 2
> Date: Fri, 8 Jun 2018 15:03:05 +0200 (CEST)
> From: Ceresa Jean-Jacques <jean-jacques.cer...@orange.fr>
> To: FluidSynth mailing list <fluid-dev@nongnu.org>,     "Tom M."
>         <tom.m...@googlemail.com>
> Cc: FluidSynth mailing list <fluid-dev@nongnu.org>
> Subject: Re: [fluid-dev] Intercepting midi events
> Message-ID: <715624354.6560.1528462985906.JavaMail.www@wwinf1n03>
> Content-Type: text/plain; charset="utf-8"
>
> Hello Chris,
>
> ?
>
> ?
>
> >When I am jamming away on a lot of keys at one time on the keyboard it
> seems to sometimes miss midi noteon or noteoff events...
>
> >It also happens that some notes don't turn on sometimes....
>
> ?
>
> >I verified this by adding an error printout to my program to detect
> noteoff events for notes that are already off and noteon events for notes
> that are already on.
>
> Be aware that when releasing a key, we cannot predict that a noteoff
> message will be generated. Most MIDI keyboard (low and medium cost) send a
> MIDI noteon with velocity set to 0.
>
> ?
>
> So as it seems that there is a lost of messages (noteon, and noteoff)
> somewhere in the path between your MIDI keyboard and the
>
> the MIDI driver output (i guess you use a MIDI keyboard).
>
> The first thing to do is to verify that your keyboard send a MIDI message
> when a key is depressed, and another MIDI message when a key is released.
>
> To do this check , we can simply print? "MIDI message received" (
> regardless of the type of MIDI message !) in your intercept() function.
>
> ?
> int intercept(void* data, fluid_midi_event_t* event)
> {
> ? printf(MIDI message received\n");
> ? return fluid_synth_handle_midi_event((fluid_synth_t*) data, event);??
> }
> ?
>
> ?
>
> >The only warning fluidsynth prints out is this: "fluidsynth: warning:
> Requested a period size of 64, got 256 instead"
> >I don't think this would be related to not receiving midi events right??
> ?
>
> Right, this is only related to the audio driver that said that actually
> you have requested a period size of 64 (audio.period-size=64) and it this
>
> value is not possible so the driver had raised the buffer size to 256.
>
> Generally using RPi we get this message when using the default RPI audio
> card (on 3,5 jack output). This audio card is a PWM device and doesn't
>
> allow low latency. In this case we need to set audio.period-size= 1024
> minimum otherwise we get a distorded output. Also, this kind of audio card
>
> is really poor quality. All this is true for RPi 2. For RPi 3, i don't
> know but i am looking forward for your report, thanks.
>
> ?
>
> jjc.
>
> > Message du 08/06/18 05:21
> > De : "Christopher Leger"
> > A : "Tom M."
> > Copie ? : "FluidSynth mailing list"
> > Objet : Re: [fluid-dev] Intercepting midi events
> >
> >
> Thanks Tom for realizing my very stupid mistake! I've made some changes
> and I have got almost everything working how I wanted it to.
>
> >
> However, I have one issue and this problem happens only when I am running
> Fluidsynth on my Raspberry Pi 3. When I am jamming away on a lot of keys at
> one time on the keyboard it seems to sometimes miss midi noteon or noteoff
> events. I know this because when running Fluidsynth (compiled from the
> original git source code) if I set the midi channel to an organ and I press
> a lot of keys and I pull away my hands one or two notes will still be
> sustaining. It also happens that some notes don't turn on sometimes.
>
> >
> I verified this by adding an error printout to my program to detect
> noteoff events for notes that are already off and noteon events for notes
> that are already on. Sure enough I get? one of these error printouts when I
> hear an issue.?
>
> >
> I checked with top and the PI has plenty of memory and cpu power available
> when running fluidsynth. The only warning fluidsynth prints out is this:
>
> >
> fluidsynth: warning: Requested a period size of 64, got 256 instead
> >
>
> >
>
> >
> I don't think this would be related to not receiving midi events right??
>
> >
> Any suggestions?
>
> >
> Thanks for the help,
> -Chris
>
>
> >
>
>
>
> >
>
> On Mon, Jun 4, 2018 at 12:53 AM Tom M.  wrote:
> >
> > #include "fluid_midi.h"
> > > #include "fluid_sfont.h"
> >
> > I will never understand why people keep including fluidsynths private
> headers. And I'm so tired of repeating that this way of programming is
> undefined behaviour as there is no API / ABI stability guarantee for
> internal data types and functions. That's why there are accessor functions
> of all kinds.
> >
> >
> > > new_fluid_midi_driver(settings, intercept, NULL);
> >
> > You bascially asked for the synth instance being NULL. Have you read the
> API doc of new_fluid_midi_driver() ?
> >
> >
> http://www.fluidsynth.org/api/midi_8h.html#ad0971af69fb51398d468b151cba70bee
> >
> >
> > Also you are deleting the synth before deleting the midiDriver. This
> will cause the midiDriver to call a deleted synth instance. You must always
> cleanup all objects exactly in the reverse order you've created them.
> >
> > And your `fluid_midi_driver_t* midiDriver` will be uninitialized if any
> of the `goto cleanup` happens.
> >
> > Tom
> >
> >
>
>
>
>
> _______________________________________________
> fluid-dev mailing list
> fluid-dev@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.nongnu.org/archive/html/fluid-dev/attachments/20180608/b5698df7/attachment.html
> >
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> fluid-dev mailing list
> fluid-dev@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>
>
> ------------------------------
>
> End of fluid-dev Digest, Vol 179, Issue 8
> *****************************************
>
_______________________________________________
fluid-dev mailing list
fluid-dev@nongnu.org
https://lists.nongnu.org/mailman/listinfo/fluid-dev

Reply via email to