JES ha il supporto di base per l'editing del suono, ma puoi usarlo per svolgere alcune attività utili.

JES è un programma che ti consente di modificare immagini, suoni e video in modo programmatico. JES ha molte funzioni integrate e strumenti di debug per aiutarti a imparare il linguaggio Jython.

Quando si importa un file utilizzando JES, è possibile esaminarne visivamente le onde sonore, utilizzando una finestra separata. Puoi anche manipolare i valori di ampiezza di queste onde sonore in punti specifici. Questo può aiutarti a modificare il file audio per ottenere effetti diversi.

Come modificare il volume di una clip audio

Quando tu rendere un'immagine in JES, puoi accedere ai singoli pixel che contiene. Puoi raggiungere certi tecniche di elaborazione delle immagini modificando i valori di colore rosso, verde e blu per ciascun pixel.

Allo stesso modo, un file audio contiene molti singoli "campioni" che sono piccoli pezzi di dati audio. È possibile modificare un suono importato modificando il valore di ampiezza di ciascun campione.

instagram viewer

Il codice utilizzato in questo progetto è disponibile in this Repository GitHub con licenza MIT.

  1. Apri l'applicazione JES sul tuo computer.
  2. Crea una nuova funzione chiamata changeVolume(), che prende il volume che vuoi modificare come input:
    defchangeVolume(volume):
  3. All'interno della funzione, apri un prompt per chiedere all'utente di selezionare un file audio valido. Sebbene JES non sia compatibile con i file mp3, puoi comunque importare file WAV. Aggiungi un po' di convalida per assicurarti che il file sia compatibile:
    file = pickAFile() 

    Se file != NessunoE file.endswith(".wav"):
    # Codice per file valido
    altro:
    stampa("File selezionato non valido. Scegli un file WAV valido.")

  4. Se il file selezionato è valido, crea un oggetto sonoro da esso:
    sound = makeSound (file)
  5. Passa attraverso ogni campione del suono:
    per io In allineare(0, getLength (suono)):
  6. Controlla se l'utente è passato su nella funzione per aumentare il volume. In tal caso, ottenere il valore di esempio in quell'indice utilizzando la funzione incorporata getSampleValueAt(). Aumenta il volume raddoppiando l'ampiezza e usa setSampleValueAt() per impostare il nuovo valore:
    Se volume == 'su':
    sampleVal = getSampleValueAt (suono, i)
    setSampleValueAt (sound, i, sampleVal * 2)
  7. Controlla se l'utente è passato giù nella funzione per rendere il volume più morbido. In tal caso, ottieni il valore del campione in quell'indice e dividilo invece per 2, per ridurre l'ampiezza:
    Se volume == 'giù':
    sampleVal = getSampleValueAt (suono, i)
    setSampleValueAt (sound, i, sampleVal / 2)
  8. Usa la funzione explore() per aprire la finestra di explorer per il suono:
    esplorare (suono)
  9. Clicca sul Carica programma pulsante, situato tra l'area di programmazione e la riga di comando. Salva il file se richiesto:
  10. Esegui la funzione changeVolume() sulla riga di comando, passando "up" come argomento alla funzione:
    cambiaVolume("su")
  11. Utilizzando la finestra Esplora file, vai a un file audio valido:
  12. Clicca sul Riproduci l'intero suono pulsante utilizzando la nuova finestra:
  13. Nella riga di comando, esegui di nuovo changeVolume() con il valore "down" come argomento e seleziona un file:
    cambiaVolume("giù")
  14. Nella finestra dell'esploratore, vedrai che le onde sonore sono più piccole. Clicca sul Riproduci l'intero suono pulsante utilizzando la nuova finestra:

Come invertire una clip audio

Puoi invertire un suono creando un nuovo suono vuoto e copiando ogni campione del suono originale nel nuovo suono in ordine inverso.

  1. In una nuova funzione, chiedi all'utente di selezionare un file WAV e verifica che il file sia valido:
    defreverseSound():
    file = pickAFile()

    Se file != NessunoE file.endswith(".wav"):
    # Codice per file valido
    altro:
    stampa("File selezionato non valido. Scegli un file WAV valido.")

  2. Crea un nuovo oggetto sonoro dal file selezionato:
    sound = makeSound (file) 
  3. Usa la funzione incorporata makeEmptySound() per creare un nuovo oggetto audio vuoto. Questo consisterà nello stesso numero di campioni del suono originale. Il valore di ampiezza per ciascun campione sarà 0:
    newReversedSound = makeEmptySound (getLength (suono))
  4. Passa attraverso ogni campione del nuovo oggetto sonoro vuoto:
    per io In allineare(0, getLength (newReversedSound)):
  5. Per ogni campione in quel punto, prendi il campione all'estremità opposta del suono. Ad esempio, se la lunghezza del campione è 100 e l'indice corrente è 0, questo otterrà il valore del campione all'indice 99. Allo stesso modo, se l'indice corrente è 3, questo otterrà il valore campione all'indice 96:
    sampleVal = getSampleValueAt (suono, getLength (suono) - 1 - io)
  6. Copia il valore del campione dall'altra estremità del suono all'indice corrente del nuovo suono:
    setSampleValueAt (newReversedSound, i, sampleVal)
  7. Esplora il nuovo suono al contrario. Puoi anche esplorare il suono originale a scopo di confronto:
    esplorare (suono)
    esplora (nuovo suono invertito)
  8. Clicca sul Carica programma pulsante, situato tra l'area di programmazione e la riga di comando. Salva il file se richiesto.
  9. Eseguire la funzione utilizzando la riga di comando:
    suono inverso()
  10. Visualizza il suono originale e il suono invertito utilizzando le finestre di Explorer. Clicca sul Riproduci l'intero suono pulsante per ascoltare le differenze:

Come unire due clip audio insieme

Per unire insieme due clip audio, puoi chiedere all'utente di selezionare due file WAV separati. Copia ogni campione di entrambi i suoni sul nuovo oggetto sonoro.

  1. Crea una nuova funzione chiamata joinSounds():
    defjoinSounds():
  2. Utilizzare la funzione pickAFile() per richiedere all'utente di selezionare il primo file. Se non è valido, stampa un messaggio di errore:
    file1 = selezionaFile()

    Se file1 == NessunoOnon file1.endswith(".wav"):
    stampa("File selezionato non valido. Scegli un file WAV valido.")

  3. Utilizzare nuovamente la funzione pickAFile() per chiedere all'utente un secondo file audio valido:
    file2 = selezionaFile() 

    Se file2 == NessunoOnon file2.endswith(".wav"):
    stampa("File selezionato non valido. Scegli un file WAV valido.")

  4. Crea due oggetti sonori dai due file audio selezionati:
    sound1 = makeSound (file1) 
    sound2 = makeSound (file2)
  5. Aggiungi le lunghezze dei due suoni insieme per calcolare la lunghezza del nuovo suono unito. Crea un nuovo oggetto sonoro vuoto usando la lunghezza:
    newSoundLength = getLength (suono1) + getLength (suono2)
    joinSound = makeEmptySound (newSoundLength)
  6. Passa attraverso ogni campione del primo suono. Copia il valore del campione in ogni indice sul nuovo suono:
    per io In allineare(0, getLength (suono1)):
    sampleVal = getSampleValueAt (sound1, i)
    setSampleValueAt (joinedSound, i, sampleVal)
  7. Passa attraverso ogni campione del secondo suono. Copia il valore del campione in ogni indice sul nuovo suono, dopo il primo suono:
    per io In allineare(0, getLength (suono2)):
    sampleVal = getSampleValueAt (sound2, i)
    endOfFirstSound = getLength (suono1) - 1
    setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal)
  8. Esplora il suono usando la funzione explore():
    esplora (joinedSound)
  9. Clicca sul Carica programma pulsante, situato tra l'area di programmazione e la riga di comando. Salva il file se richiesto.
  10. Eseguire la funzione utilizzando la riga di comando:
    unisciSuoni()
  11. Visualizza il suono unito utilizzando la nuova finestra e fai clic su Riproduci l'intero suono pulsante per ascoltare il suono:

Importazione e modifica di file audio tramite JES

Ora sai come importare file audio e modificarli usando JES. Ci sono così tante altre funzioni integrate che JES ha da offrire, che ti permetteranno di fare un editing del suono ancora più avanzato.

Puoi saperne di più sulle altre funzioni disponibili utilizzando la finestra della guida di JES.