Skip to content

Unable to record audio on MacOS #184

Description

@TnTora

macOS 15.2 (x86)

I'm trying to run the following script to test this module but it seems I am failing to get proper audio.

import soundcard as sc
import soundfile as sf

default_mic = sc.default_microphone()

data = default_mic.record(samplerate=48000, numframes=48000*5)
print(data)
sf.write(file="out.wav", data=data, samplerate=48000)

Here is the result of print(data)

[[ 0.00875521  0.00859588]
 [ 0.01109303  0.01090191]
 [ 0.01041745  0.01023482]
 ...
 [-0.00246532 -0.00247982]
 [-0.00246533 -0.00247982]
 [-0.00246533 -0.00247983]]

Listening to the output file I hear a few frames of proper audio followed by a short high pitched noise and then silence.
I tried using the internal mic, an external mic and a virtual one (blackhole) but got the same result with all of them.

Something I noticed while testing recording system audio using blackhole as a mic is that if audio is already playing when I run the script I get something like the array above. If I start the script and then immediately play audio I get

[[-0. -0.]
 [-0. -0.]
 [-0. -0.]
 ...
 [-0. -0.]
 [-0. -0.]
 [-0. -0.]]

I tried recording the same system audio as above using the library sounddevice and got proper audio, this is the numpy array

[[ 2.1381495e-03  1.9403318e-03]
 [ 3.4074080e-03  3.1864089e-03]
 [ 4.5137000e-03  4.3309033e-03]
 ...
 [ 1.0739344e-05  2.2570629e-04]
 [ 2.0904181e-04  4.3157060e-04]
 [-2.0285620e-04  3.7671925e-05]]

Am I missing something?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions