Comments (3)
Hi James,
I suggest using the programs in the “tests” directory to test things. That would at least rule out problems with the code.
—gary
On Sep 24, 2014, at 2:54 AM, James Heliker [email protected] wrote:
Hello -
I am currently testing RtAudio in hopes to use it on a project, and am getting unexpected results!
Given my code below (hooked up to a known-good ASIO device), I would expect my output to be essentially a copy of my input; that said it is very distorted and only somewhat recognizable with all the static / noise. Using Audacity or other known-good software I can run the same test on my hardware with no audible problems.
My setup is very simple:
audioDriver->openStream(¶meters, ¶meters, RTAUDIO_SINT16, sampleRate, &bufferFrames, &input, NULL, &options);
audioDriver->startStream();And my callback is very simple too:
int input(void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames,
double streamTime, RtAudioStreamStatus status, void *userData)
{if (status)
std::cout << "input: " << status << std::endl;
memcpy(outputBuffer, inputBuffer, nBufferFrames);
return 0;
}Any insight you could offer would be so appreciated!! Sorry if this is the wrong place to post a question / issue of this nature.
Kind Regards,
• James Heliker
—
Reply to this email directly or view it on GitHub.{"@context":"http://schema.org","@type":"EmailMessage","description":"View this Issue on GitHub","action":{"@type":"ViewAction","url":"https://github.com/thestk/rtaudio/issues/24","name":"View Issue"}}
from rtaudio.
memcpy(outputBuffer, inputBuffer, nBufferFrames);
If you look at, e.g., record.cpp, you'll see a line like,
bufferBytes = frames * iData->channels * sizeof( MY_TYPE );
In other words, memcpy should take the number of bytes as the 3rd parameter, but you are passing it the number of frames. Since you are using type RTAUDIO_SINT16, then outputBuffer and inputBuffer point to signed short, and your line should be,
memcpy(outputBuffer, inputBuffer, nBufferFrames * sizeof(short));
Without this, the second half of every buffer would be random values, and therefore the audio would sound crunchy and weird. Don't forget to also consider the number of channels.
from rtaudio.
Closing because no response in several months.
from rtaudio.
Related Issues (20)
- Stream recording on PulseAudio starts before startStream being called HOT 4
- Question: Is it possible to get the audio data of the outputDevice HOT 2
- Tests fail to compile HOT 2
- meson build fails with non-matching version number HOT 3
- soname version bump for RtAudio-6.0.0 HOT 2
- Missing symbols in version >= 6 HOT 7
- Undefined Reference to pthread_mutex_* in MinGW since 6.0.0 HOT 1
- Unstable ASIO support? HOT 4
- Please set 6.0.1 as latest GitHub release HOT 1
- Is it possible to record the sound from the speaker on MacOSX?
- Could someone provide an example for using RtAudioErrorCallback in constructor?
- fyi: working on a new python-rtaudio project
- Was 6.0.1 retagged? HOT 2
- Incorrect implementation of the amplitude when calculating the output signal
- Build with PulseAudio support fails on macOS: `RtAudio.cpp: error: 'sched_getscheduler' was not declared in this scope` HOT 2
- some tests use signed long instead of int32_t causing issues on 64-bit systems
- Update the changelog HOT 1
- VS2022 deprecation warning for std::code_cvt and friends ... HOT 3
- ALSA error on Linux: RtApiAlsa::probeDeviceInfo: snd_pcm_open (...) error for device (...), Invalid argument.
- Add support for record system audio on macOS
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 rtaudio.