Hello Gilga,

I tried out your code and I was able to get 60 FPS on my dual-core 3GHz machine 
with a very basic Radeon graphics card. But I’m running Kubuntu Linux 15.04 
with OpenGL 3.0 / Mesa 10.5.2. I didn’t experience any crash either, although 
I’m not a piano player so I didn’t do a lot with it.

By the way, I had to modify your code to get it to run. I’m wondering if you 
haven’t checked in your latest code?

Anyway, I had to add 

        # -*- coding: utf-8 -*-

as the 2nd line because the Python 2 parser wouldn’t start without it. Yes, I’m 
using Python 2, and on Linux. Are you using Windows?

In your Key.update() function, I had to change the directory name to 
pythonpiano_pictures instead of pictures.

I also commented out 

        self.background = self.background.convert()

because I don’t see how it’s necessary to change the format of the screen 
buffer to what it already has. I think that function is more for sprite images 
that you load in and that you want to have as the same format as the screen 
buffer.

I just looked at your update function for the Key class. That needs attention. 
And now I can see why it is causing your frame rate to be artificially lower 
that it needs to be; it could be causing your crashes; and is something that no 
one tells you but you find out the hard way. 

In your update function, you need it to be as fast as possible. I see that 
you’re *loading* the appropriate key image from disk every time it needs to 
*draw* the image. Not good. Very slow. Think fast. 

Instead, preload all game assets--images and sound--before the main update loop 
begins. 

Good luck and let us know how it goes!

~ Michael 



> Hi!
> I've created a simple 2D graphic program to play the piano thanks to a 
> computer keyboard: see https://github.com/gustavklopp/pypiano
> (you can clone it, it's only 2 files and the sound ressource)
> 
> Even if setting the FPS to 40, I can't even get that with my not so weak 
> laptop (AMD A4-5000 1.5 GHz, AMD Radeon HD 8330, RAM 4096MB), and I'm stuck 
> to just 30FPS. Sometimes, if I play a  little longer than a few minutes, the 
> program even crash (no more sound and I can't exit without Ctrl+Alt+Sup).
> For a music program, at 30FPS, you can detect the delay between the typing 
> and the playing of the sound...
> 
> I think the problem is with loading my 48 OGG sounds (48-key keyboard) at the 
> beginning: I'm using:
> `pygame.mixer.pre_init(44100, -16, 2, 4096)`
> 
> Is there some solutions to have this program not crashing when trying to play 
> the sounds and improve the FPS?
> Maybe if you try it on your computer, the FPS are better and it's a problem 
> with my OpenGL and Radeon Driver (known to be quite touchy)?
> 
> Thanks a lot for your help!
> 
> 
>                                         

Reply via email to