Files
Automixbot/record_from_usb.py
2025-10-27 19:26:42 +01:00

42 lines
1.8 KiB
Python

import sounddevice as sd
import numpy as np
from scipy.io.wavfile import write
# --- 1. Identificazione del Dispositivo ---
# Esegui questo blocco di codice per primo per trovare l'indice del tuo dispositivo.
# print(sd.query_devices())
# Una volta trovato, inserisci l'indice corretto qui sotto.
# --- 2. Impostazioni della Registrazione ---
DEVICE_INDEX = 26 # ESEMPIO: Sostituisci con l'indice del tuo dispositivo Yamaha TF5
CHANNELS = 2 # Numero di canali da registrare (la TF5 ne supporta fino a 34)
SAMPLE_RATE = 48000 # Frequenza di campionamento in Hz (deve corrispondere a quella della console)
DURATION = 10 # Durata della registrazione in secondi
OUTPUT_FILENAME = 'registrazione_multicanale.wav'
try:
# --- 3. Registrazione dell'Audio ---
print(f"Inizio registrazione di {DURATION} secondi dal dispositivo {DEVICE_INDEX}...")
# sd.rec() avvia una registrazione non bloccante e restituisce immediatamente
# I dati audio vengono memorizzati in un array NumPy
myrecording = sd.rec(int(DURATION * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=CHANNELS, device=DEVICE_INDEX, dtype='float32')
# sd.wait() attende che la registrazione sia completata
sd.wait()
print("Registrazione completata.")
# --- 4. Salvataggio del File WAV ---
print(f"Salvataggio della registrazione in corso su '{OUTPUT_FILENAME}'...")
# Scrive l'array NumPy in un file WAV
# La funzione si aspetta dati in un formato specifico (es. int16 o float32)
# È consigliabile scalare i dati se necessario, ma sounddevice con dtype='float32'
# di solito produce un output compatibile.
write(OUTPUT_FILENAME, SAMPLE_RATE, myrecording)
print("File salvato con successo.")
except Exception as e:
print(f"Si è verificato un errore: {e}")