A JES alapvetően támogatja a hangszerkesztést, de használható néhány hasznos feladat elvégzésére.

A JES egy olyan program, amely lehetővé teszi a képek, hangok és videók programozott módosítását. A JES számos beépített funkcióval és hibakereső eszközzel rendelkezik a Jython nyelv megtanulásához.

Amikor egy fájlt JES-sel importál, vizuálisan is megvizsgálhatja a hanghullámait, egy külön ablak segítségével. Ezen hanghullámok amplitúdóértékeit adott pontokon is módosíthatja. Ez segíthet a hangfájl szerkesztésében különböző hatások elérése érdekében.

Hogyan változtassuk meg a hangklip hangerejét

Amikor te rendereljen képet JES-ben, elérheti a benne lévő egyes képpontokat. Biztosat elérhetsz képfeldolgozási technikák az egyes pixelekhez tartozó piros, zöld és kék színértékek szerkesztésével.

Hasonlóképpen, egy hangfájl sok egyedi „mintát” tartalmaz, amelyek hangadatok kis darabjai. Az importált hangokat úgy szerkesztheti, hogy minden egyes mintánál módosítja az amplitúdó értékét.

A projektben használt kód itt érhető el GitHub repó az MIT engedélye alapján.

instagram viewer
  1. Nyissa meg a JES alkalmazást a számítógépén.
  2. Hozzon létre egy új függvényt changeVolume() néven, amely bemenetként veszi azt a kötetet, amelyre módosítani kíván:
    defchangeVolume(vol):
  3. A funkción belül nyisson meg egy promptot, és kérje meg a felhasználót, hogy válasszon ki egy érvényes hangfájlt. Bár a JES nem kompatibilis az mp3 fájlokkal, továbbra is importálhat WAV fájlokat. Adjon hozzá némi érvényesítést, hogy megbizonyosodjon arról, hogy a fájl kompatibilis:
    file = pickAFile() 

    ha fájl != Egyik semés file.endswith(".wav"):
    # Érvényes fájl kódja
    más:
    nyomtatás("Érvénytelen fájl van kiválasztva. Kérjük, válasszon érvényes WAV-fájlt.")

  4. Ha a kiválasztott fájl érvényes, hozzon létre belőle hangobjektumot:
    hang = makeSound (fájl)
  5. Lépjen végig a hangmintákon:
    számára én ban ben hatótávolság(0, getLength (hang)):
  6. Ellenőrizze, hogy a felhasználó megfelelt-e fel a funkcióba a hangerő növeléséhez. Ha igen, a beépített getSampleValueAt() függvény segítségével szerezze be az index mintaértékét. Növelje a hangerőt az amplitúdó megkétszerezésével, és használja a setSampleValueAt()-t az új érték beállításához:
    ha vol == 'fel':
    sampleVal = getSampleValueAt (hang, i)
    setSampleValueAt (hang, i, sampleVal * 2)
  7. Ellenőrizze, hogy a felhasználó megfelelt-e le- a funkcióba, hogy a hangerő lágyabb legyen. Ha igen, kapja meg a mintaértéket az adott indexen, és ossza el 2-vel, hogy csökkentse az amplitúdót:
    ha vol == 'le':
    sampleVal = getSampleValueAt (hang, i)
    setSampleValueAt (hang, i, sampleVal / 2)
  8. Használja az explore() függvényt a hang felfedező ablakának megnyitásához:
    felfedezni (hang)
  9. Kattintson a Program betöltése gomb, amely a programozási terület és a parancssor között található. Mentse el a fájlt, ha a rendszer kéri:
  10. Futtassa a changeVolume() függvényt a parancssorban, és adja át a "up"-t argumentumként a függvénynek:
    changeVolume("fel")
  11. A fájlkezelő ablakban keresse meg az érvényes hangfájlt:
  12. Kattintson a Teljes hang lejátszása gombot az új ablak használatával:
  13. A parancssorban futtassa újra a changeVolume() parancsot a "down" értékkel argumentumként, és válasszon ki egy fájlt:
    changeVolume("le")
  14. Az Intéző ablakban látni fogja, hogy a hanghullámok kisebbek. Kattintson a Teljes hang lejátszása gombot az új ablak használatával:

Hogyan lehet megfordítani a hangfelvételt

Megfordíthat egy hangot úgy, hogy új üres hangot hoz létre, és az eredeti hang minden egyes mintáját fordított sorrendben átmásolja az új hangba.

  1. Egy új funkcióban kérje meg a felhasználót, hogy válasszon WAV-fájlt, és ellenőrizze, hogy a fájl érvényes-e:
    deffordított Hang():
    file = pickAFile()

    ha fájl != Egyik semés file.endswith(".wav"):
    # Érvényes fájl kódja
    más:
    nyomtatás("Érvénytelen fájl van kiválasztva. Kérjük, válasszon érvényes WAV-fájlt.")

  2. Hozzon létre egy új hangobjektumot a kiválasztott fájlból:
    hang = makeSound (fájl) 
  3. Használja a beépített makeEmptySound() függvényt egy új üres hangobjektum létrehozásához. Ez ugyanannyi mintából áll majd, mint az eredeti hang. Az egyes minták amplitúdója 0 lesz:
    newReversedSound = makeEmptySound (getLength (hang))
  4. Lapozzon végig az új üres hangobjektum minden egyes mintáján:
    számára én ban ben hatótávolság(0, getLength (newReversedSound)):
  5. Minden egyes mintához ezen a ponton szerezze be a mintát a hang másik végén. Például, ha a minta hossza 100, és az aktuális index 0, akkor ez a 99-es indexű mintaértéket kapja. Hasonlóképpen, ha az aktuális index 3, akkor ez a mintaértéket a 96-os indexnél kapja meg:
    sampleVal = getSampleValueAt (hang, getLength (hang) - 1 - i)
  6. Másolja a mintaértéket a hang másik végéről az új hang aktuális indexébe:
    setSampleValueAt (newReversedSound, i, sampleVal)
  7. Fedezze fel az új fordított hangzást. Összehasonlítás céljából felfedezheti az eredeti hangot is:
    felfedezni (hang)
    felfedezni (újReversedSound)
  8. Kattintson a Program betöltése gomb, amely a programozási terület és a parancssor között található. Mentse el a fájlt, ha a rendszer kéri.
  9. Futtassa a függvényt a parancssor segítségével:
    reverseSound()
  10. Tekintse meg az eredeti hangot és a fordított hangot az Explorer ablakaiban. Kattintson a Teljes hang lejátszása gombot a különbségek meghallgatásához:

Hogyan kapcsoljunk össze két hangfelvételt

Két hangfájl egyesítéséhez megkérheti a felhasználót, hogy válasszon ki két különálló WAV-fájlt. Másolja mindkét hang mintáját az új hangobjektumra.

  1. Hozzon létre egy új függvényt joinSounds() néven:
    defjoinSounds():
  2. A pickAFile() függvény segítségével kérje meg a felhasználót, hogy válassza ki az első fájlt. Ha érvénytelen, nyomtasson hibaüzenetet:
    file1 = pickAFile()

    ha fájl1 == Egyik semvagynem file1.endswith(".wav"):
    nyomtatás("Érvénytelen fájl van kiválasztva. Kérjük, válasszon érvényes WAV-fájlt.")

  3. Használja ismét a pickAFile() függvényt, hogy egy második érvényes hangfájlt kérjen a felhasználótól:
    file2 = pickAFile() 

    ha fájl2 == Egyik semvagynem file2.endswith(".wav"):
    nyomtatás("Érvénytelen fájl van kiválasztva. Kérjük, válasszon érvényes WAV-fájlt.")

  4. Hozzon létre két hangobjektumot a két kiválasztott hangfájlból:
    hang1 = makeSound (fájl1) 
    hang2 = makeSound (fájl2)
  5. Adja össze a két hang hosszát az új összekapcsolt hang hosszának kiszámításához. Hozzon létre egy új üres hangobjektumot a hossz használatával:
    newSoundLength = getLength (hang1) + getLength (hang2)
    joinedSound = makeEmptySound (newSoundLength)
  6. Lapozzon végig az első hang minden egyes mintáján. Másolja a mintaértéket minden indexnél az új hangra:
    számára én ban ben hatótávolság(0, getLength (hang1)):
    sampleVal = getSampleValueAt (hang1, i)
    setSampleValueAt (joinedSound, i, sampleVal)
  7. Lapozzon végig a második hang minden egyes mintáján. Másolja a mintaértéket minden indexnél az új hangra, az első hang után:
    számára én ban ben hatótávolság(0, getLength (hang2)):
    sampleVal = getSampleValueAt (hang2, i)
    endOfFirstSound = getLength (hang1) - 1
    setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal)
  8. Fedezze fel a hangot az explore() függvény segítségével:
    felfedezni (joinedSound)
  9. Kattintson a Program betöltése gomb, amely a programozási terület és a parancssor között található. Mentse el a fájlt, ha a rendszer kéri.
  10. Futtassa a függvényt a parancssor segítségével:
    joinSounds()
  11. Tekintse meg az összekapcsolt hangot az új ablakban, majd kattintson a gombra Teljes hang lejátszása gomb a hang meghallgatásához:

Hangfájlok importálása és szerkesztése JES használatával

Most már megérti, hogyan importálhat hangfájlokat és szerkesztheti őket a JES használatával. A JES számos egyéb beépített funkciót kínál, amelyek még fejlettebb hangszerkesztést tesznek lehetővé.

A többi elérhető funkcióról a JES súgóablakában tudhat meg többet.