Re: [LAU] PianoBooster 0.6.2 - See if you are playing ahead or behind the beat.

From: David Baron <d_baron@email-addr-hidden>
Date: Fri Apr 03 2009 - 10:24:38 EEST

On Friday 03 April 2009 02:15:01 Louis B. wrote:
> Hi David,
>
> Thanks for your helpful comments and suggestions.
>
> The assignable left and right hand midi channels are on my to do list
> for the next release.

Great. Simply use (optionally) the channel's voice as the correct note play if
I want to play something other than piano. PianoBooster is as much a sight-
reading tool as a keyboard tool!
>
>
> There are admittedly issues with the timing (made worse by soft synths
> which also eats up cpu time). I do not know how to fix myself but
> hopefully others on this list can help.
>
> 1. How do I give P.B. some sort of real-time status so that the timer
> ticks arrive with out any jitter IN MY APP? (Yes I have tried 'sudo
> nice' it did not make much difference and also it is not suitable for
> the end user). I am currently using the QT4 QBasicTimer for the timer
> ticks. Will switching to using the ALSA timer result in ticks arriving
> with low jitter IN MY APP? (Thanks to Pedro I have the code ready to
> switch use the ALSA timer which I will integrate soon). But what I
> really want to know is will switching to the alsa timer fix all my
> real-time jitter problems or do I need to do something else as well? I
> have already tried hard to minimise the CPU load by offloading as much
> as possible to the OpenGL GPU processor.
1. Use acceleration where detected. On any animated reatlime oriented program,
for example a flight simulator, this can make the difference between go and
no-go.

2. Jack/ jack-midi. Admittedly problematic but jack can get real time as
enabled in pam/rlimits. However, most sequencers do not really need this
unless latency becomes a problem. Use of soft-synths for live MIDI is
generally not great but using jack, it can be OK.

3. Try the alsa timer (or whatever jack offers).

4. Sudo nice? Nice -n -5 might help. Too high a negative value will paralize
the system. Best to solve things without relying on nice.

> Regarding the scrolling note display, yes it eats up some CPU time but
> I am trying to do something a bit different here by doing a version of
> guitar hero but with notes that scrolls sideways along a real musical
> stave. Adding more gaming/fun features is also on my todo list. For
> the serious musician is was always intended that they read the notes
> from the printed musical score. I am fairly confident that it is
> possible to get the scrolling horizontal musical stave working
> successfully but with some help from others.

Not just CPU, HW interrupts, etc., etc. A game is not as critical as live-
performance keyboard. The game will certainly need HW-acceleration to work.

I have seen no sequencer/audio program/cubase/sonar, etc., that attempts to
scroll all their graphics, even predrawn (sonar caches audio plots),
continuously. They all use a vertical bar that moves, a simple XOR, I believe
and then scroll the graphics as I suggested. I would much rather the music
play than watch lovely animations and have the music stutter.

> 2. If the are any OpenGl whiz kids on this list. I have a very high
> frame rate (83 hz) to prevent the "openGL tearing" problem. But I
> cannot sync the frame rate to the screen refresh rate. using QT
> QGLFormat::setSwapInterval(0) as it does not work any ideas?. (I have
> set setSwapInterval(100) in my code just to test it type
> "./pianoboster -X2" to enable this test)
I'll try that. You cannot control the frame rate, I do not think.
>
>
> Finally, I am not quite sure what you mean in point 2. Do you mean
> that when you play a different part eg the string part that your piano
> playing should automatically switch to use the string sound rather
> than sticking with the piano sound. Also I do not know what you are
> refering to by "the combination confuses the program"
I would want the option to play the program of the selected channel rathter
than always piano program=0.

I have had strange results on large mutlichannel files but this could relate
to timing problems as well as my playing grand-piano on top of a flute channel
or such. To always play piano sounds on the keyboard, you need a dedicated
channel just for that and allow the MIDI to play on the reminaing channels. If
use all 16 in the file, then there is a problem, huh?
>
>
>
> Please remember that is this a very new Open Source software project
> all help is appreciated.
>
> Thanks
>
>
> L o u i s
>
> On Thu, Apr 2, 2009 at 12:11 PM, David Baron <d_baron@email-addr-hidden> wrote:
> > This looks like a nice program. Problems with it are:
> >
> > 1. MUST piano be on 3 and 4. Let me choose so I can use any files I want.
> > I think I suggested this on the first version I tried.
> >
> > 2. I could presumably play with other instruments as well so an option to
> > use the "program" of the chosen tracks is certainly in order. (Now, the
> > combination confuses the program, it seems.) Ditto.
> >
> > 3. It is not playing a tempo, especially with larger multitrack MIDIs.
> > OK, for learning purposes, a two or three track MIDI is adequate, maybe
> > even preferable, but it should be possible for the program to play
> > anything.
> >
> > 4. Video, with or without whatever "optimization" being offered, may be
> > the stumbling block. Scrolling a vertical bar over the music may be less
> > demanding than continuously scrolling the whole picture--this is how the
> > vast majority of these programs do this. Scroll the score with ONE redraw
> > at end of current view or one measure short of this is several are shown.
> > Use hw-acceleration if available.
> >
> > 5. To that end, a zoom in or out is in order.
> >
> >> Hi All,
> >>
> >> Piano Booster version 0.6.2 has just been released. The most
> >> interesting and innovative thing in this release are timing markers
> >> which drawn in real-time as you play on the piano keyboard. They
> >> appear as white crosses that are drawn over each note and they show
> >> if you are playing ahead or behind the beat. See this screen shot:
> >>
> >> http://pianobooster.sourceforge.net/images/timingmarkers.jpeg
> >>
> >> Piano Booster is a new way to learn the piano and is the best way
> >> to play along with a musical accompaniment. It suitable for both
> >> the beginner and an advanced player.
> >>
> >> If you have not seen PianoBooster before then look at the screen shot.
> >>
> >> http://pianobooster.sourceforge.net/images/LinuxScreenShot.png
> >>
> >>
> >> Watch the video of PianoBooster in action on You Tube.
> >>
> >>
> >> http://www.youtube.com/watch?v=UGbfm8Tv-20
> >>
> >>
> >> == Features - new to this release ==
> >>
> >> * Change the start bar to start playing from any bar in the music.
> >> * Repeat bars allows you to practice just a few difficult bars
> >> continuously.
> >> * Timing markers are white crosses that are drawn over each note
> >> and show if you are playing ahead or behind the beat.
> >> * Adjust the volume of the current part or the volume your piano
> >> part.
> >> * Latency fix has been added for sound generators that do not work
> >> in real-time.
> >> * Mute or un-mute the current part that you are following.
> >> * A Mac universal binary now available.
> >>
> >>
> >> == Features - in all versions ==
> >>
> >> * Piano Booster follows your playing when playing along to a
> >> musical accompaniment. (If you stop then so does the music).
> >> * Play a single hand and Piano Booster will play the other hand
> >> in time with you (and will also play the violins, the bass,
> >> the drums etc. in time with you).
> >> * Change the speed of playback to match your playing ability.
> >> * Transpose +/- 12 semitones without stopping the play back.
> >> * Change the Key Signature of the piece.
> >> * Plays any standard midi or kar file.
> >> * Play along to any instrument in the midi file.
> >> * See the accuracy of you playing.
> >>
> >>
> >> == PianoBooster Web Site ==
> >>
> >> PianoBooster is a GPL v3 program available for both Linux and
> >> Windows and now a universal binary for the Mac. Piano Booster is
> >> hosted on sourceforge and can be downloaded from this page.
> >>
> >> http://pianobooster.sourceforge.net/
> >>
> >>
> >> L o u i s J a m e s B a r m a n
> >> _______________________________________________
> >> Linux-audio-user mailing list
> >> Linux-audio-user@email-addr-hidden
> >> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user
> >
> > _______________________________________________
> > Linux-audio-user mailing list
> > Linux-audio-user@email-addr-hidden
> > http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user
>
> _______________________________________________
> Linux-audio-user mailing list
> Linux-audio-user@email-addr-hidden
> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user
Received on Fri Apr 3 12:15:01 2009

This archive was generated by hypermail 2.1.8 : Fri Apr 03 2009 - 12:15:01 EEST