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