Visualizzazione post con etichetta Audacity. Mostra tutti i post
Visualizzazione post con etichetta Audacity. Mostra tutti i post

venerdì 7 maggio 2021

Elgato controller clone

Per automatizzare Audacity mentre cerco di registrare la chitarra stavo pensando di costruirmi con Arduino una consolle di controllo tipo quello di Elgato quando mi e' venuta in mente una soluzione piu' semplice: utilizzare un controller midi per interagire con Audacity tramite xdotool , un software che simula l'interazione utente con una applicazione X e tramite la libreria Python https://pypi.org/project/python-rtmidi/



In estrema sintesi da rtmidi si riceve un codice del tasto midi premuto sul controller e con xdotool si invia la corrispondente sequenza di caratteri per generare un evento di Audacity

================================================================

import sys
import rtmidi
import threading
import os

def print_message(midi, port):
    if midi.isNoteOn():
        #print '%s: ON: ' % port, midi.getMidiNoteName(midi.getNoteNumber()), midi.getVelocity()
        print midi.getNoteNumber() 
        if (midi.getNoteNumber() == 60):
        print "Play/Stop"
        os.system("xdotool search --onlyvisible --class 'Audacity' windowfocus key 'space'")
        if (midi.getNoteNumber() == 61):
        print "Play/Stop Cursor"
        os.system("xdotool search --onlyvisible --class 'Audacity' windowfocus key 'x'")
        if (midi.getNoteNumber() == 62):
        print "Track start"
        os.system("xdotool search --onlyvisible --class 'Audacity' windowfocus key 'J'")
       
        if (midi.getNoteNumber() == 64):
        print "Record"
        os.system("xdotool search --onlyvisible --class 'Audacity' windowfocus key 'shift+R'")
        if (midi.getNoteNumber() == 65):
        print "Pause"
        os.system("xdotool search --onlyvisible --class 'Audacity' windowfocus key 'p'")
class Collector(threading.Thread):
    def __init__(self, device, port):
        threading.Thread.__init__(self)
        self.setDaemon(True)
        self.port = port
        self.portName = device.getPortName(port)
        self.device = device
        self.quit = False
    def run(self):
        self.device.openPort(self.port)
        self.device.ignoreTypes(True, False, True)
        while True:
            if self.quit:
                return
            msg = self.device.getMessage()
            if msg:
                print_message(msg, self.portName)

dev = rtmidi.RtMidiIn()
collectors = []
for i in range(dev.getPortCount()):
    device = rtmidi.RtMidiIn()
    print 'OPENING',dev.getPortName(i)
    collector = Collector(device, i)
    collector.start()
    collectors.append(collector)

print 'HIT ENTER TO EXIT'
sys.stdin.read(1)
for c in collectors:
    c.quit = True


lunedì 28 agosto 2017

Deezer 2

In un post precedente avevo descritto come catturare l'audio da uno stream di Deezer...ovviamente esiste una soluzione piu' semplice.
Su Mac e' sufficiente installare SoundFlower, andare in impostazione e settare come ingresso ed uscita SoundFlower (2D)

A questo punto si apre Audacity e si impostano come sorgente ed uscita SoundFlower


giovedì 17 agosto 2017

Deezer

Deezer e' un servizio molto comodo ma i dati vengono salvati sul proprio dispositivo in un formato proprietario e per questo motivo non e' possibile copiare i file MP3 e trasportarli per esempio su un IPod Nano


Ci sono diverse soluzioni per ovviare al problema, piu' che altro di tipo software. Io ho risolto con una scheda audio esterna SoundBlaster Live collegata all'uscita audio del computer. Eseguo l'ascolto dal browser e poi tramite Audacity registro sul'uscita audio per crearmi il file MP3.
Certo, con questo sistema perdo i metadati ed e' noioso avere le tracce singole delle canzoni, ma meglio che niente

giovedì 21 maggio 2015

Salvare uno stream radio su file con Audacity

Oggi un amico ha tenuto una intervista radiofonica presso una radio locale che trasmetteva anche in streaming. Per salvare l'audio della trasmissione era necessario dirotta il flusso dalla scheda audio verso gli altoparlanti verso un file, cosa effettuabile con Audacity.
Il programma usato per leggere lo stream e' stato VLC

La procedura e' leggermente differente in Mac e Windows

MAC
Si deve prima andare in Preferenze di Sistema/ Suono. Nel tab Uscita si deve selezionare Soundflower (2ch) ed nel tab Effetti Sonori/Riproduci effetti audio mediante Soundflower (2ch)

A questo punto non si sentira' piu' nessun suono dagli altoparlanti ma aprendo Audacity con input Soundflower (2ch) e mandando in registrazione Audacity si osserva lo stream catturato

Windows
Su questa piattaforma la cosa e' ancora piu' semplice perche' basta impostare come sorgente il missaggio della scheda audio. Si potra' inoltre ascoltare in diretta la registrazione mentre viene effettuata









Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...