Rallentare la riproduzione di un file audio senza modificarne l'intonazione?
Domanda
Sto lavorando a una domanda per specializzarmi in musica al college.Una caratteristica che sto prendendo in considerazione è rallentare la riproduzione della musica senza cambiarne il tono.L'ho visto fare in software commerciale, ma non riesco a trovare librerie o app open source che facciano qualcosa del genere.
- Ci sono biblioteche là fuori?
- Come è possibile farlo da zero da vari formati di file?
Nota:Sto lavorando in Java ma non sono contrario a cambiare lingua.
Soluzione
Il timestretching è piuttosto difficile.Più rallenti o acceleri il suono, più artefatti ottieni.Se vuoi sapere come suonano ascolta "The Rockafeller Skank" di Fat Boy Slim.Ci sono molti modi per farlo e ognuno ha i propri punti di forza e di debolezza.I conti possono diventare davvero complessi.Ecco perché esistono così tanti algoritmi proprietari.
Questa pagina spiega le cose in modo un po' più chiaro di quanto potrei fare io e si collega alla libreria Dirac.http://www.dspdimension.com/admin/time-pitch-overview/
Ho trovato questo collegamento per il codice Java per eseguire il pitch shifting/timestretchinghttp://www.adetorres.com/keychanger/KeyChangerReadme.html
Altri suggerimenti
Io uso tratto sonoro per velocizzare i podcast che funziona abbastanza bene, però non l'ho provato sulla musica.
Questo sito spiega come è fatto nel mondo fisico:http://www.wendycarlos.com/other/Eltro-1967/index.html
Non so come potresti emularlo nel software però ...Continuerò a cercare
Un modo per farlo sarebbe raddoppiare la frequenza di campionamento senza modificare la frequenza di campionamento della sorgente.(Esempio di bassa qualità, ma facile da implementare.Nota:Puoi anche diminuire la frequenza di campionamento).
Controlla tutti i calcoli relativi ai vocoder di fase.
Un altro metodo comune è creare una serie di contenitori FFT che memorizzano i dati per intervalli programmati del tuo suono.Quindi puoi scegliere la velocità con cui scorrere i contenitori e puoi ri-sintetizzare i dati audio per tutto il tempo che desideri, consentendoti così di allungare un breve segmento del tuo suono per tutto il tempo che desideri.
Audacity lo fa fuori dagli schemi ed è gratuito.Esistono anche diversi plug-in gratuiti per lettori mp3.Apparentemente è abbastanza semplice farlo con un mp3 poiché è già codificato nel dominio della frequenza.