Comments (5)
Hi!
My initial thoughts are that the mp3 library you are using is either too slow or is introducing artifacts. You can test the first hypothesis by decoding your mp3 ahead of time. If the problem persists then the second hypothesis must be true.
Also, check the int
return from decoder.Read
to be sure it is filling the whole buffer.
I hope this helps.
from portaudio.
Thanks for the advice! I'll try out your suggestions in the upcoming days and post an update here.
from portaudio.
I played around with the code and discovered the following. It turns out that decoder.Read
always reads a specific number of bytes (4608 in my case) regardless of the provided buffer's size, which is why I get the glitches unless I set the buffer length to that specific value.
Do you know, is that the usual case for mp3 decoders? Or have I not found some hidden switch that lets me set or at least see that buffer length in advance?
UPD: the hidden switch is to use io.ReadFull
(as suggested here) :)
from portaudio.
I see. That must be an optimization in the mp3 library to return fewer than the requested number of bytes. To avoid unnecessary buffering, I guess.
Glad you found the solution. I assume your code works as expected now?
from portaudio.
Yes, everything works now. @gordonklaus thank you for your help and for your work on the library!
from portaudio.
Related Issues (20)
- Opening a stream with a framesPerBuffer of 0 causes a buffer underrun and a stutter HOT 1
- "Unknow Error" in MacOS Big Sur HOT 1
- Get nothing using OpenDefaultStream in the latest mac os Big Sur. HOT 1
- unable to open on a device HOT 6
- Does not appear to work with PipeWire HOT 3
- Playing Opus stream causes playback half speed HOT 3
- Issues installing on Windows HOT 5
- how can I use go get ? HOT 2
- GEt live audio from microphone HOT 2
- Resulting windows apps built with golang 1.17.5 crash on startup. HOT 1
- windows dll HOT 4
- MacOS compile Windows error HOT 2
- Example `play.go` not working correctly HOT 1
- "go install <your portaudio module>" doesn't work HOT 3
- play.go example aiff file sounds "strange" HOT 2
- How do I get microphone level? [HELP] HOT 2
- fatal error: checkptr: pointer arithmetic result points to invalid allocation HOT 7
- examples/record.go not working keep getting panice error
- The built binary file cannot run another Windows HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from portaudio.