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@xxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxx > >> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user > > > > _______________________________________________ > > Linux-audio-user mailing list > > Linux-audio-user@xxxxxxxxxxxxxxxxxxxx > > http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user > > _______________________________________________ > Linux-audio-user mailing list > Linux-audio-user@xxxxxxxxxxxxxxxxxxxx > http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user