Which part of Audacity's source code that handle audio recording?
Forum rules
This forum is for Audacity on GNU/Linux.
Please state:
Audacity 1.2.x and 1.3.x are obsolete and no longer supported. If you still have those versions, please upgrade (see https://www.audacityteam.org/download/).
The old forums for those versions are now closed, but you can still read the archives of the 1.2.x and 1.3.x forums.
Please state:
- which version of Linux you are using,
- the exact three-section version number of Audacity from Help menu > About Audacity,
- whether you installed your distribution's release, PPA version, or compiled Audacity from source code.
Audacity 1.2.x and 1.3.x are obsolete and no longer supported. If you still have those versions, please upgrade (see https://www.audacityteam.org/download/).
The old forums for those versions are now closed, but you can still read the archives of the 1.2.x and 1.3.x forums.
-
Achmad_Fathoni
- Posts: 2
- Joined: Fri Aug 17, 2018 2:20 pm
- Operating System: OS X 10.9 Mavericks
Which part of Audacity's source code that handle audio recording?
I am making simple c++ program that can record audio from laptop microphone and maybe other USB microphone to circular double array buffer. Because I have very limited time, I try to duplicate Audacity source rather than learning entire new sound library manual(Gstreamer, ALSA, jackaudio, etc). When I look at Audacity source code on Github I get overwhelmed and give up looking for line that captures microphone audio, can somebody help me point where is it? I am using Ubuntu MATE 16.04
Re: Which part of Audacity's source code that handle audio recording?
Audacity uses the PortAudio library to capture audio: http://www.portaudio.com/
Audacity has to do a lot of complex stuff when capturing audio, because of:
Depending on your licensing requirements, it may be worth considering Juce (https://juce.com/)
Audacity has to do a lot of complex stuff when capturing audio, because of:
- cross-platform support
- simultaneous updating of the project XML data
- must support full duplex
- multi-threaded to allow simultaneous writing to disk, updating of the waveform, and remain responsive to the GUI
- simultaneous capture of peak and rms for metering and the XML data
- on the fly resampling when required
- on the fly mixing of playback tracks during recording
- synchronization with Note tracks and MIDI playback
- ...
Depending on your licensing requirements, it may be worth considering Juce (https://juce.com/)
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)