Thanks guys.
On Sun, May 24, 2009 at 11:22 AM, Lenard Lindstrom<le...@telus.net> wrote: > I can't reproduce the problem (Pygame 1.8.1, Python 2.5.4, Windows 98). If > anything should crash it is my system. I ran the test program for over two > hours without a problem So I will be of no help here. Good luck. > > Lenard > > René Dudfield wrote: >> >> hi, >> >> yeah, he had numeric and numpy installed... >> >> I modified the script slightly to tell it to use numpy by default: >> http://rene.f0o.com/~rene/stuff/MAKE_SOUND_BUG.py >> <http://rene.f0o.com/%7Erene/stuff/MAKE_SOUND_BUG.py> >> >> >> cu, >> >> >> On Sun, May 24, 2009 at 10:05 AM, <le...@telus.net >> <mailto:le...@telus.net>> wrote: >> >> Hi, >> >> Does DR0ID have Numeric installed? Pygame 1.8.1 sndarray uses >> Numeric by default. >> >> Lenard >> >> >> May 23, 2009 03:31:02 AM, pygame-users@seul.org >> <mailto:pygame-users@seul.org> wrote: >> >> hi again, >> >> DR0ID tested it on windows and got both the traceback you got, >> and the segfault (with python2.6 and pygame 1.8.1). Will get >> around to debugging it on windows later. >> >> cu, >> >> On Sat, May 23, 2009 at 6:33 PM, René Dudfield >> <ren...@gmail.com <mailto:ren...@gmail.com>> wrote: >> >> hello, >> >> I haven't been able to reproduce the problem... I tried >> on a ubuntu 32bit, and an osx 10.5.7 32bit python. >> >> So maybe the bug happens only on windows. >> >> >> I haven't been able to find any places in the code where >> make_sound could return anything but a Sound object. >> >> Will try it out on vista later. >> >> >> cu, >> >> >> >> On Wed, May 20, 2009 at 1:22 PM, Brian Brown >> <bro...@gmail.com <mailto:bro...@gmail.com>> wrote: >> >> Here's an attachment. >> >> >> On Wed, May 13, 2009 at 9:15 PM, René Dudfield >> <ren...@gmail.com <mailto:ren...@gmail.com>> wrote: >> > hi, >> > >> > thanks for the awesome bug report. >> > >> > Is it possible you could send me the file as an >> attachment? The email seems >> > to have messed with the formatting. >> > >> > cheers, >> > >> > >> > >> > >> > On Fri, May 8, 2009 at 8:31 AM, Brian Brown >> <bro...@gmail.com <mailto:bro...@gmail.com>> wrote: >> >> >> >> >> >> >> >> ################################################################################################### >> >> # A Pygame BUG Report: (Bug found about May 2009) >> >> # >> >> # To Pygame People: >> >> # >> >> # (Best when viewed with a monospaced font.) >> >> # >> >> # I think I found a glitch/bug . . . >> >> # >> >> # pygame.sndarray.make_sound() sometimes >> returns a "channel"? >> >> # >> >> # Below is a program that can possibley re-do the >> glitch. >> >> # >> >> >> >> >> >> ################################################################################################### >> >> # >> >> # requirements to run: >> >> # (python 2.5 or higher)? >> >> # and: (pygame 2.8.0 or pygame 2.8.1)? >> >> # and: (numpy)? >> >> # >> >> >> >> >> >> ################################################################################################### >> >> # >> >> # On my computer: >> >> # >> >> # The glitch was found with: (python 2.5.2 + >> pygame 2.8.0 + numpy >> >> 1.2.1) and: (python 2.6.2 + pygame 2.8.1 + numpy >> 1.3.0 ). >> >> # >> >> # >> >> # after a while of running (About 2 to 10 >> minutes), this program >> >> closes and give one of these errors?: >> >> # >> >> # This one: TypeError: argument 1 must be >> >> pygame.mixer.Sound, not Channel <--(common) >> >> # >> >> # Or this one: Fatal Python error: >> (pygame parachute) >> >> Segmentation Fault <--(rare) >> >> # This application has >> requested the Runtime >> >> to terminate in an unusual way. >> >> # . . . >> >> # >> >> # (I did a google search to see if anybody else >> had discovered this >> >> glitch-- >> >> # But-- I didn't find any pages about it . . . ) >> >> # >> >> >> >> >> >> ################################################################################################### >> >> # My computer stats: >> >> # >> >> # Windows Vista Home Premium >> >> # Service Pack 1 >> >> # win32/32-bit Operating System >> >> # Processor: Intel(R) Pentium(R) Dual CPU >> E2180 @ 2.00GHz 2.00 >> >> GHz >> >> # RAM/memmory: 3.00 GB >> >> # >> >> >> >> >> >> ################################################################################################### >> >> # >> >> # Here's the program: >> >> # >> >> >> >> def HE_HE_init(): >> >> global screen >> >> global screen_x_size >> >> global screen_y_size >> >> global channel_max >> >> if sys.platform == 'win32' or sys.platform == >> 'win64': >> >> os.environ['SDL_VIDEO_CENTERED'] = '1' >> >> >> >> # init the pygame.mixer according to the >> pygame version number: >> >> versiony_numbery = pygame.version.vernum >> >> numby = int(str(versiony_numbery[0]) + >> str(versiony_numbery[1]) + >> >> str(versiony_numbery[2])) >> >> if numby >= 181: pygame.mixer.init(44100, -16, 1) >> >> else: pygame.mixer.init(22050, -16, 2) >> >> >> >> pygame.init() >> >> random.seed() >> >> channel_max = 5 >> >> pygame.mixer.set_num_channels(channel_max) >> >> screen_x_size = 640 >> >> screen_y_size = 480 >> >> screen = pygame.display.set_mode((screen_x_size, >> screen_y_size)) >> >> pygame.mouse.set_visible(1) >> >> pygame.display.set_caption('BUG? --> >> pygame.sndarray.make_sound() <-- >> >> BUG?') >> >> pygame.display.flip() >> >> >> >> >> >> def Lets_ROLL(): >> >> >> >> previous_channel = None >> >> >> >> # Some frequencies/Hz/Cycles-per-second: >> (ABCDEFGs) >> >> noteyish = (440, 493.883, 261.626, 293.665, >> 329.628, 349.228, 391.995, >> >> 440*2.0, 493.883*2.0, 261.626*2.0, >> 293.665*2.0, >> >> 329.628*2.0, 349.228*2.0, 391.995*2.0, >> >> 440/2.0, 493.883/2.0, 261.626/2.0, >> 293.665/2.0, >> >> 329.628/2.0, 349.228/2.0, 391.995/2.0 >> >> ) >> >> >> >> t = time.time() >> >> >> >> >> >> >> >> >> >> while True: # <-- Main loop >> >> >> >> >> >> # Keep program from running/executing >> "too fast": >> >> while t > time.time(): pass >> >> t = time.time() + 0.10 >> >> >> >> >> >> >> >> screen.fill((0, 0, 0)) >> >> >> >> >> >> # Close the window/program if: [Esc is >> pressed] or: [The >> >> X button is pressed] >> >> key = pygame.key.get_pressed() >> >> if key[K_ESCAPE]: END() >> >> for event in pygame.event.get(): >> >> if event.type == QUIT: END() >> >> >> >> >> >> ##### generate/create and display/draw >> numpy_sound_data: ##### >> >> >> >> total_duration_in_seconds = .25 >> >> samples_per_second = 22050 >> >> total_amount_of_samples = >> total_duration_in_seconds * >> >> samples_per_second >> >> cicles_per_every_second = >> noteyish[int(random.random() * ((7 * >> >> 3) - 1) )] #440.0 >> >> numpy_sound_data = array([0] * >> int(total_amount_of_samples)) >> >> >> >> >> >> # setup some variables for >> drawing/displaying numpy_sound_data >> >> x = 0 >> >> y = 200 >> >> x_dividey = 10 >> >> y_dividey = 1000 >> >> y_addy = 200 >> >> x2 = 0 >> >> y2 = 400 >> >> x2_dividey = 2 >> >> y2_addy_addy = 200 >> >> >> >> >> >> # yyygr should cause a "slight" "waver" in the >> >> frequencies/Hz/Cycles-per-second >> >> yyygr = 0.00001 >> >> yyygr_speed = 0.0 >> >> #yyygr_speed = (0.0005 / 2.0) - >> random.random() * 0.0005 >> >> >> >> specialy = len(numpy_sound_data) - 1 >> >> specialyy2 = specialy - 1000 >> >> specialyy3 = 0 + 300 >> >> if specialy > 2000: specialy -= 2000 >> >> >> >> for n in range(0, len(numpy_sound_data)): >> >> >> >> if yyygr < 0: >> >> yyygr_speed -= 0.0000005 >> >> elif yyygr > 0: >> >> yyygr_speed += 0.0000005 >> >> yyygr += yyygr_speed >> >> >> >> wavey_gurgy = ( float(n) * >> float(cicles_per_every_second + >> >> yyygr) / float(samples_per_second) ) >> >> >> >> numpy_sound_data[n] = int( math.sin( >> wavey_gurgy * >> >> radians(360) ) * 20000.0 ) >> >> >> >> >> >> # This "pinches" the ends of the >> "numpy_sound_data": >> >> if n >= specialyy2: >> >> numpy_sound_data[n] *= (1.0 - (n - >> specialyy2) / 1000.0) >> >> if n <= specialyy3: >> >> numpy_sound_data[n] *= (n / 300.0) >> >> >> >> # Draw/plot two stretched versions of >> the "numpy_sound_data": >> >> xa = x >> >> ya = y >> >> x = n / x_dividey >> >> y = numpy_sound_data[n] / y_dividey + y_addy >> >> xa2 = x2 >> >> ya2 = y2 >> >> x2 = n / x2_dividey >> >> y2 = y + y2_addy_addy >> >> pygame.draw.line(screen, (200, 200, 200), >> (x, y), (xa, ya)) >> >> pygame.draw.line(screen, (200, 200, 200), >> (x2, y2), (xa2, ya2)) >> >> >> >> pygame.display.flip() >> >> >> >> >> >> >> >> >> >> >> >> >> >> ###### convert "numpy_sound_data" to >> pygame.mixer.Sound and >> >> play it: ####### >> >> >> >> >> >> sound_thing = pygame.sndarray.make_sound( >> numpy_sound_data ) >> >> # <-- This should always return a sound, right? >> >> >> >> >> >> if previous_channel != None: >> previous_channel.fadeout(300) # >> >> <-- Fade out previous sound. (if any) >> >> >> >> >> >> print type(sound_thing) >> # >> >> <-- Should print: >> >> >> >> >> previous_channel = >> >> pygame.mixer.find_channel(True).play(sound_thing, >> 0) # <-- This line >> >> is where the program "should" give an error. >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> def END(): >> >> print '' >> >> print 'Program ended?' >> >> print >> >> >> >> "###############################################################################" >> >> print >> >> >> >> "###############################################################################" >> >> print '' >> >> pygame.quit() >> >> raise SystemExit, '' >> >> >> >> >> >> import os >> >> import sys >> >> import math >> >> import random >> >> import time >> >> #import gc >> >> #import copy as pythoncopy >> >> #import string >> >> #import struct >> >> #from time import strftime, localtime >> >> #import wave >> >> >> >> print "" >> >> print >> >> >> >> "###############################################################################" >> >> print >> >> >> >> "###############################################################################" >> >> print "Program started? " >> >> print "" >> >> print "" >> >> print "" >> >> print "" >> >> print "" >> >> try: >> >> >> import >> >> pygame >> >> >> from >> >> pygame.locals import * >> >> >> if not >> >> pygame.font: print '?? "pygame.font" not "found" ??' >> >> >> if not >> >> pygame.mixer: print '?? "pygame.mixer" not "found" ??' >> >> >> from >> >> pygame import scrap >> >> except: print >> >> '"pygame" not "found"???' >> >> try: >> >> >> import >> >> numpy; from numpy import * >> >> except: print >> >> '"numpy" not "found"??? (Oh well! Who cares!)' >> >> #try: >> >> # >> import >> >> numarray; from numarray import * >> >> #except: print >> >> '"numarray" not "found"??? (Oh well! Who cares!)' >> >> #try: >> >> # >> import >> >> Numeric; from Numeric import * >> >> #except: print >> >> '"numeric" not "found"??? (Oh well! Who cares!)' >> >> >> >> HE_HE_init() >> >> Lets_ROLL() >> >> END() >> >> >> >> # Thanks for your effort! I hope the bug will be fixed! >> > >> > >> >> >> >> > > > -- > Lenard Lindstrom > <le...@telus.net> > >