bastibe / SoundCard

A Pure-Python Real-Time Audio Library
https://soundcard.readthedocs.io
BSD 3-Clause "New" or "Revised" License
659 stars 71 forks source link

[Report] soundcard with synthplayer module on macos. #179

Open noboruatkek opened 1 month ago

noboruatkek commented 1 month ago

I test an example script for synthplayer module, examples/synth_demo.py, on macos, then I got the following message:

File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/soundcard/coreaudio.py", line 464, in init raise TypeError("blocksize must be between {} and {}" TypeError: blocksize must be between 14.0 and 512

After studying soundcard/synthplaer, I noticed that maxblcoksize of AudioUnit may be changed internally. So that requested blocksize may exceed the maxblocksize, then we will get the error message above. I modified soundcard/coreaudio.py slightly, shown below:

@@ -458,12 +458,14 @@

there are two maximum block sizes for some reason:

     maxblocksize = min(self.blocksizerange[1],
                        self.maxblocksize)

Now I can run the synthplayer example script, synth_demo.py, with some parameter adjustment( params.norm_frames_per_chunk=1024) .

Thank you very much for make the nice program available to u.s.

bastibe commented 1 month ago

Please reformat so it makes sense on Github.