42 lines
1.8 KiB
Python
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}") |