JES har grundlæggende understøttelse af lydredigering, men du kan bruge den til at udføre nogle nyttige opgaver.

JES er et program, der lader dig ændre billeder, lyde og videoer programmatisk. JES har mange indbyggede funktioner og fejlfindingsværktøjer til at hjælpe dig med at lære Jython-sproget.

Når du importerer en fil ved hjælp af JES, kan du undersøge dens lydbølger visuelt ved hjælp af et separat vindue. Du kan også manipulere amplitudeværdierne for disse lydbølger på bestemte punkter. Dette kan hjælpe dig med at redigere lydfilen for at opnå forskellige effekter.

Sådan ændres lydstyrken på et lydklip

Når du gengiv et billede i JES, kan du få adgang til de individuelle pixels, som den indeholder. Du kan opnå visse billedbehandlingsteknikker ved at redigere de røde, grønne og blå farveværdier for hver pixel.

På samme måde indeholder en lydfil mange individuelle "samples", som er små stykker lyddata. Du kan redigere en importeret lyd ved at ændre amplitudeværdien ved hver sample.

Koden brugt i dette projekt er tilgængelig i dette GitHub repo under MIT-licensen.

instagram viewer
  1. Åbn JES-applikationen på din computer.
  2. Opret en ny funktion kaldet changeVolume(), som tager den volumen, du vil ændre til, som input:
    defskift volumen(vol):
  3. Inde i funktionen skal du åbne en prompt for at bede brugeren om at vælge en gyldig lydfil. Selvom JES ikke er kompatibel med mp3-filer, kan du stadig importere WAV-filer. Tilføj noget validering for at sikre, at filen er kompatibel:
    fil = pickAFile() 

    hvis fil != Ingenog file.endswith(".wav"):
    # Kode for gyldig fil
    andet:
    Print("Ugyldig fil er valgt. Vælg venligst en gyldig WAV-fil.")

  4. Hvis den valgte fil er gyldig, skal du oprette et lydobjekt fra den:
    lyd = lav lyd (fil)
  5. Loop gennem hver prøve af lyden:
    til jeg i rækkevidde(0, getLength (lyd)):
  6. Tjek om brugeren bestod op ind i funktionen for at skrue op for lydstyrken. Hvis det er tilfældet, skal du hente eksempelværdien ved det indeks ved hjælp af den indbyggede getSampleValueAt()-funktion. Forøg lydstyrken ved at fordoble amplituden, og brug setSampleValueAt() til at indstille den nye værdi:
    hvis vol == 'op':
    sampleVal = getSampleValueAt (lyd, i)
    setSampleValueAt (lyd, i, sampleVal * 2)
  7. Tjek om brugeren bestod ned ind i funktionen for at gøre lydstyrken blødere. Hvis ja, få prøveværdien ved det indeks, og divider den med 2 i stedet for at reducere amplituden:
    hvis vol == 'ned':
    sampleVal = getSampleValueAt (lyd, i)
    setSampleValueAt (lyd, i, sampleVal / 2)
  8. Brug funktionen explore() til at åbne stifindervinduet for lyden:
    udforske (lyd)
  9. Klik på Indlæs program knap, placeret mellem programmeringsområdet og kommandolinjen. Gem filen, hvis du bliver bedt om det:
  10. Kør funktionen changeVolume() på kommandolinjen, og send "op" som et argument til funktionen:
    changeVolume("op")
  11. Brug filstifindervinduet til at navigere til en gyldig lydfil:
  12. Klik på Spil hele lyden knap ved hjælp af det nye vindue:
  13. På kommandolinjen, kør changeVolume() igen med værdien "down" som et argument, og vælg en fil:
    changeVolume("ned")
  14. I Explorer-vinduet vil du se, at lydbølgerne er mindre. Klik på Spil hele lyden knap ved hjælp af det nye vindue:

Sådan vender du et lydklip

Du kan vende en lyd ved at skabe en ny tom lyd og kopiere hver sample af den originale lyd til den nye lyd i omvendt rækkefølge.

  1. I en ny funktion skal du bede brugeren om at vælge en WAV-fil og kontrollere, at filen er gyldig:
    defomvendt lyd():
    fil = pickAFile()

    hvis fil != Ingenog file.endswith(".wav"):
    # Kode for gyldig fil
    andet:
    Print("Ugyldig fil er valgt. Vælg venligst en gyldig WAV-fil.")

  2. Opret et nyt lydobjekt fra den valgte fil:
    lyd = lav lyd (fil) 
  3. Brug den indbyggede makeEmptySound()-funktion til at oprette et nyt tomt lydobjekt. Dette vil bestå af det samme antal samples som den originale lyd. Amplitudeværdien for hver prøve vil være 0:
    newReversedSound = makeEmptySound (getLength (lyd))
  4. Gå gennem hver prøve af det nye tomme lydobjekt:
    til jeg i rækkevidde(0, getLength (newReversedSound)):
  5. For hver sample på det tidspunkt, få samplet i den modsatte ende af lyden. For eksempel, hvis prøvelængden er 100, og det aktuelle indeks er 0, vil dette få prøveværdien ved indeks 99. På samme måde, hvis det aktuelle indeks er 3, vil dette få prøveværdien ved indeks 96:
    sampleVal = getSampleValueAt (lyd, getLength (lyd) - 1 - i)
  6. Kopier sampleværdien fra den anden ende af lyden til det aktuelle indeks for den nye lyd:
    setSampleValueAt (newReversedSound, i, sampleVal)
  7. Udforsk den nye omvendte lyd. Du kan også udforske den originale lyd til sammenligningsformål:
    udforske (lyd)
    udforske (newReversedSound)
  8. Klik på Indlæs program knap, placeret mellem programmeringsområdet og kommandolinjen. Gem filen, hvis du bliver bedt om det.
  9. Kør funktionen ved hjælp af kommandolinjen:
    reverseSound()
  10. Se den originale lyd og den omvendte lyd ved hjælp af Explorer-vinduerne. Klik på Spil hele lyden knap for at høre forskellene:

Sådan forbinder du to lydklip sammen

For at sammenføje to lydklip kan du bede brugeren om at vælge to separate WAV-filer. Kopier hver prøve af begge lyde til det nye lydobjekt.

  1. Opret en ny funktion kaldet joinSounds():
    defjoinSounds():
  2. Brug funktionen pickAFile() til at bede brugeren om at vælge den første fil. Hvis den er ugyldig, udskriv en fejlmeddelelse:
    fil1 = pickAFile()

    hvis fil1 == Ingenellerikke file1.endswith(".wav"):
    Print("Ugyldig fil er valgt. Vælg venligst en gyldig WAV-fil.")

  3. Brug pickAFile()-funktionen igen for at bede brugeren om en anden gyldig lydfil:
    fil2 = pickAFile() 

    hvis fil2 == Ingenellerikke file2.endswith(".wav"):
    Print("Ugyldig fil er valgt. Vælg venligst en gyldig WAV-fil.")

  4. Opret to lydobjekter fra de to valgte lydfiler:
    lyd1 = lav lyd (fil1) 
    lyd2 = lav lyd (fil2)
  5. Læg længderne af de to lyde sammen for at beregne længden af ​​den nye sammenføjede lyd. Opret et nyt tomt lydobjekt ved hjælp af længden:
    newSoundLength = getLength (sound1) + getLength (sound2)
    joinedSound = makeEmptySound (newSoundLength)
  6. Loop gennem hver sample af den første lyd. Kopier sampleværdien ved hvert indeks til den nye lyd:
    til jeg i rækkevidde(0, getLength (lyd1):
    sampleVal = getSampleValueAt (lyd1, i)
    setSampleValueAt (joinedSound, i, sampleVal)
  7. Gå gennem hver sample af den anden lyd. Kopier sampleværdien ved hvert indeks til den nye lyd, efter den første lyd:
    til jeg i rækkevidde(0, getLength (lyd2)):
    sampleVal = getSampleValueAt (lyd2, i)
    endOfFirstSound = getLength (sound1) - 1
    setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal)
  8. Udforsk lyden ved hjælp af funktionen explore():
    udforske (joinedSound)
  9. Klik på Indlæs program knap, placeret mellem programmeringsområdet og kommandolinjen. Gem filen, hvis du bliver bedt om det.
  10. Kør funktionen ved hjælp af kommandolinjen:
    joinSounds()
  11. Se den samlede lyd ved hjælp af det nye vindue, og klik på Spil hele lyden knap for at høre lyden:

Import og redigering af lydfiler ved hjælp af JES

Nu forstår du, hvordan du importerer lydfiler og redigerer dem ved hjælp af JES. Der er så mange andre indbyggede funktioner, som JES har at tilbyde, som giver dig mulighed for at lave endnu mere avanceret lydredigering.

Du kan lære mere om de andre tilgængelige funktioner ved at bruge JES-hjælpevinduet.