Initial commit: RecorderStudio:PyQt5 高保真录音软件,无损 WAV / WASAPI 独占、BS.1770 响度与 ffmpeg 交叉验证

This commit is contained in:
WpyQwq
2026-09-19 11:56:01 +08:00
commit b7f9098ccd
62 changed files with 10796 additions and 0 deletions
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
@@ -0,0 +1,131 @@
name: Build PortAudio lib
on:
push:
branches-ignore:
- master
permissions:
# This is needed for pushing a new commit to the repo:
contents: write
env:
CMAKE_POLICY_VERSION_MINIMUM: "3.5"
jobs:
macos:
runs-on: macos-latest
env:
CMAKE_OSX_ARCHITECTURES: "arm64;x86_64"
MACOSX_DEPLOYMENT_TARGET: "10.9"
steps:
- name: checkout portaudio
uses: actions/checkout@v5
with:
repository: PortAudio/portaudio
ref: v19.7.0
path: portaudio
- name: cmake configure
run: |
cmake -S portaudio -B build -D CMAKE_BUILD_TYPE=Release
- name: cmake build
run: |
cmake --build build
- name: move dylib
run: |
mv build/libportaudio.dylib .
- name: show some information about dylib
run: |
file libportaudio.dylib
otool -L libportaudio.dylib
- name: upload dylib
uses: actions/upload-artifact@v5
with:
name: macos-dylib
path: libportaudio.dylib
windows:
runs-on: windows-2022
strategy:
matrix:
platform: [x64, Win32, ARM64]
asio: ["", "-asio"]
include:
- platform: x64
platform-suffix: 64bit
- platform: Win32
platform-suffix: 32bit
- platform: ARM64
platform-suffix: arm64
env:
# Reproducible build by avoiding time stamp
LDFLAGS: "/Brepro"
steps:
- name: checkout portaudio
uses: actions/checkout@v5
with:
repository: PortAudio/portaudio
ref: v19.7.0
path: portaudio
# The next portaudio release will have an auto-download feature:
- name: download and extract ASIO SDK
if: matrix.asio
run: |
curl -L -o asiosdk.zip https://www.steinberg.net/asiosdk
7z x asiosdk.zip
- name: cmake configure
run: |
cmake -S portaudio -B build -A ${{ matrix.platform }} -D PA_USE_ASIO=${{ matrix.asio && 'ON' || 'OFF' }}
- name: cmake build
run: |
cmake --build build --config Release
- name: rename DLL
run: |
mv build/Release/portaudio_*.dll libportaudio${{ matrix.platform-suffix }}${{ matrix.asio }}.dll
- name: show some information about DLL
run: |
ldd libportaudio${{ matrix.platform-suffix }}${{ matrix.asio }}.dll
- name: upload DLL
uses: actions/upload-artifact@v5
with:
name: windows-${{ matrix.platform }}-dll${{ matrix.asio }}
path: libportaudio${{ matrix.platform-suffix }}${{ matrix.asio }}.dll
push:
runs-on: ubuntu-latest
needs: [macos, windows]
steps:
- name: Clone Git repository
uses: actions/checkout@v5
- name: Retrieve dylib
uses: actions/download-artifact@v6
with:
name: macos-dylib
- name: Retrieve x64 DLL
uses: actions/download-artifact@v6
with:
name: windows-x64-dll
- name: Retrieve x64 DLL with ASIO support
uses: actions/download-artifact@v6
with:
name: windows-x64-dll-asio
- name: Retrieve Win32 DLL
uses: actions/download-artifact@v6
with:
name: windows-Win32-dll
- name: Retrieve Win32 DLL with ASIO support
uses: actions/download-artifact@v6
with:
name: windows-Win32-dll-asio
- name: Retrieve ARM64 DLL
uses: actions/download-artifact@v6
with:
name: windows-ARM64-dll
- name: Retrieve ARM64 DLL with ASIO support
uses: actions/download-artifact@v6
with:
name: windows-ARM64-dll-asio
- name: Commit and push binaries (if there are changes)
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git commit -am "Update binaries" && git push || true
@@ -0,0 +1,34 @@
PortAudio binaries
==================
This repository provides pre-compiled dynamic libraries for
[PortAudio](http://www.portaudio.com/).
DLLs for Windows (32-bit and 64-bit)
------------------------------------
There are two sets of DLL files,
one including the default host APIs,
namely MME, DirectSound, WDM/KS and WASAPI,
and another one (`*-asio.dll`) where ASIO is enabled as well.
For more information about the ASIO SDK see
http://www.steinberg.net/en/company/developers.html.
dylib for macOS (64-bit, "universal")
----------------------------------------
The file `libportaudio.dylib` is compatible both
with Intel (`x86_64`) and with Apple Silicon (`arm64`) CPUs.
Details
-------
All files were auto-created with Github Actions.
For all the details, see [the config file](.github/workflows/build-libs.yml).
Copyright
---------
* PortAudio by Ross Bencina and Phil Burk, MIT License.
* Steinberg Audio Stream I/O API by Steinberg Media Technologies GmbH.
@@ -0,0 +1,42 @@
Metadata-Version: 2.4
Name: sounddevice
Version: 0.5.6
Summary: Play and Record Sound with Python
Author-email: Matthias Geier <[email protected]>
License-Expression: MIT
Project-URL: Documentation, https://python-sounddevice.readthedocs.io/
Project-URL: Repository, https://github.com/spatialaudio/python-sounddevice/
Project-URL: Issues, https://github.com/spatialaudio/python-sounddevice/issues
Keywords: sound,audio,PortAudio,play,record,playrec
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Sound/Audio
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: cffi
Provides-Extra: numpy
Requires-Dist: numpy; extra == "numpy"
Dynamic: license-file
Play and Record Sound with Python
=================================
This Python_ module provides bindings for the PortAudio_ library and a few
convenience functions to play and record NumPy_ arrays containing audio signals.
The ``sounddevice`` module is available for Linux, macOS and Windows.
Documentation:
https://python-sounddevice.readthedocs.io/
Source code repository and issue tracker:
https://github.com/spatialaudio/python-sounddevice/
License:
MIT -- see the file ``LICENSE`` for details.
.. _Python: https://www.python.org/
.. _PortAudio: http://www.portaudio.com/
.. _NumPy: https://numpy.org/
@@ -0,0 +1,18 @@
_sounddevice.py,sha256=2bWMz3S9scJIfu083UejZ_JSkpzFB5CQ69NDt3lINTE,13837
sounddevice.py,sha256=13v0C6lFSRU43WqTtfuPRdBRwQaJ8OEMC5KO-J8XKJE,111712
_sounddevice_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
_sounddevice_data/portaudio-binaries/README.md,sha256=s8sFNWa284w4vfSCLlP4-KKjd-BcUD_dacUuXRxsEEw,974
_sounddevice_data/portaudio-binaries/libportaudio.dylib,sha256=9Ivtt_T3nAygUHdq_pQ0WFVdtzQeDa4AUR0QnM3pB8A,236064
_sounddevice_data/portaudio-binaries/libportaudio32bit-asio.dll,sha256=uW2BfevhdH2Mo6XltX0QIb8CB-u9kHJCMxNXuXxl5tc,280576
_sounddevice_data/portaudio-binaries/libportaudio32bit.dll,sha256=PSc4OgA5fa5ksmYYl5GsIPhKGYIHeHJOBXBcL2AS39k,260608
_sounddevice_data/portaudio-binaries/libportaudio64bit-asio.dll,sha256=44YYoMuDoCh77juL1opxCuDTQXghfvT6Ie1W92URGUM,343040
_sounddevice_data/portaudio-binaries/libportaudio64bit.dll,sha256=7AgBlPAeQJXH-0Pb1-0Fr5IsWzQpUFap_1Z4J0HWVIE,307712
_sounddevice_data/portaudio-binaries/libportaudioarm64-asio.dll,sha256=V7eCb9OIPaq7uJUYFGVaTsJTrLgiwP9s5AAtqUYwZPU,316416
_sounddevice_data/portaudio-binaries/libportaudioarm64.dll,sha256=456V6VwMsmLHDKTmduRAzzS-VkP-WjHN_iPoq28UIss,293888
_sounddevice_data/portaudio-binaries/.github/dependabot.yml,sha256=iDuV475VT7rdkrMV5KjG6mymiLZJJOIt1hIisH9oNQc,118
_sounddevice_data/portaudio-binaries/.github/workflows/build-libs.yml,sha256=qC2El-ijMJGxdom0STTDMLnIJ7sf_vXuetSSztLDVNs,4035
sounddevice-0.5.6.dist-info/licenses/LICENSE,sha256=tu6iG7r7r3ohd-SS8b5rXvxvTnCLGYB3PeUc2qUvghE,1063
sounddevice-0.5.6.dist-info/METADATA,sha256=DpViAIPEbIktPHj1yuXbAdY4FNs5XBsXDSwBPLngtN4,1450
sounddevice-0.5.6.dist-info/WHEEL,sha256=3I5VVWZdsFlU417aCS2bMRuerS8wsfvBq99MyatBV3A,97
sounddevice-0.5.6.dist-info/top_level.txt,sha256=4x_9IJSWMb6StbHBe-jbHWC1cJf_unhQwxaMBghH_L4,43
sounddevice-0.5.6.dist-info/RECORD,,
@@ -0,0 +1,5 @@
Wheel-Version: 1.0
Generator: setuptools (84.0.0)
Root-Is-Purelib: true
Tag: py3-none-win_amd64
@@ -0,0 +1,19 @@
Copyright (c) 2015-2025 Matthias Geier
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
@@ -0,0 +1,3 @@
_sounddevice
_sounddevice_data
sounddevice
File diff suppressed because it is too large Load Diff