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(a)012.net.il> 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(a)lists.linuxaudio.org
 
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user 
 _______________________________________________
 Linux-audio-user mailing list
 Linux-audio-user(a)lists.linuxaudio.org
 
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user 
 _______________________________________________
 Linux-audio-user mailing list
 Linux-audio-user(a)lists.linuxaudio.org
 
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user