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}")