JES ir pamata atbalsts skaņas rediģēšanai, taču varat to izmantot, lai veiktu dažus noderīgus uzdevumus.
JES ir programma, kas ļauj programmatiski modificēt attēlus, skaņas un videoklipus. JES ir daudzas iebūvētas funkcijas un atkļūdošanas rīki, kas palīdz apgūt Jython valodu.
Importējot failu, izmantojot JES, varat vizuāli pārbaudīt tā skaņas viļņus, izmantojot atsevišķu logu. Varat arī manipulēt ar šo skaņas viļņu amplitūdas vērtībām noteiktos punktos. Tas var palīdzēt rediģēt skaņas failu, lai iegūtu dažādus efektus.
Kā mainīt skaņas klipa skaļumu
Kad jūs renderēt attēlu JES, varat piekļūt atsevišķiem tajā esošajiem pikseļiem. Jūs varat sasniegt noteiktus attēlu apstrādes metodes rediģējot sarkanās, zaļās un zilās krāsas vērtības katram pikselim.
Tāpat skaņas failā ir daudz atsevišķu "paraugu", kas ir nelieli skaņas datu fragmenti. Varat rediģēt importēto skaņu, mainot amplitūdas vērtību katrā paraugā.
Šajā projektā izmantotais kods ir pieejams šajā GitHub repo saskaņā ar MIT licenci.
- Datorā atveriet lietojumprogrammu JES.
- Izveidojiet jaunu funkciju ar nosaukumu changeVolume(), kas kā ievadi uzņem sējumu, uz kuru vēlaties mainīt:
defmainītSkaļums(tilpums):
- Funkcijā atveriet uzvedni, lai lūgtu lietotājam atlasīt derīgu skaņas failu. Lai gan JES nav saderīgs ar mp3 failiem, jūs joprojām varat importēt WAV failus. Pievienojiet kādu apstiprinājumu, lai pārliecinātos, ka fails ir saderīgs:
fails = pickAFile()
ja fails != Navun file.endswith(".wav"):
# Kods derīgam failam
cits:
drukāt ("Atlasīts nederīgs fails. Lūdzu, izvēlieties derīgu WAV failu.") - Ja atlasītais fails ir derīgs, izveidojiet no tā skaņas objektu:
skaņa = makeSound (fails)
- Pārlūkojiet katru skaņas paraugu:
priekš i iekšā diapazons(0, getLength (skaņa)):
- Pārbaudiet, vai lietotājs ir nokārtojis uz augšu ieslēgtu funkciju, lai palielinātu skaļumu. Ja tā, iegūstiet šī indeksa parauga vērtību, izmantojot iebūvēto funkciju getSampleValueAt(). Palieliniet skaļumu, dubultojot amplitūdu, un izmantojiet setSampleValueAt(), lai iestatītu jauno vērtību:
ja tilpums == "augšā":
sampleVal = getSampleValueAt (skaņa, i)
setSampleValueAt (skaņa, i, sampleVal * 2) - Pārbaudiet, vai lietotājs ir nokārtojis uz leju funkcijā, lai padarītu skaļumu maigāku. Ja tā, iegūstiet parauga vērtību šajā indeksā un daliet to ar 2, lai samazinātu amplitūdu:
ja tilpums == 'lejā':
sampleVal = getSampleValueAt (skaņa, i)
setSampleValueAt (skaņa, i, sampleVal / 2) - Izmantojiet funkciju explore(), lai atvērtu skaņas izpētes logu:
izpētīt (skaņa)
- Noklikšķiniet uz Ielādēt programmu pogu, kas atrodas starp programmēšanas apgabalu un komandrindu. Saglabājiet failu, ja tiek prasīts:
- Palaidiet funkciju changeVolume() komandrindā, nododot "up" kā argumentu funkcijai:
changeVolume("uz augšu")
- Izmantojot failu pārlūka logu, pārejiet uz derīgu skaņas failu:
- Noklikšķiniet uz Atskaņot visu skaņu pogu, izmantojot jauno logu:
- Komandrindā vēlreiz palaidiet changeVolume() ar vērtību "down" kā argumentu un atlasiet failu:
changeVolume("uz leju")
- Pētnieka logā redzēsit, ka skaņas viļņi ir mazāki. Noklikšķiniet uz Atskaņot visu skaņu pogu, izmantojot jauno logu:
Kā apgriezt skaņas klipu
Varat mainīt skaņu, izveidojot jaunu tukšu skaņu un apgrieztā secībā kopējot katru sākotnējās skaņas paraugu jaunajā skaņā.
- Jaunā funkcijā aiciniet lietotāju izvēlēties WAV failu un pārbaudiet, vai fails ir derīgs:
defapgrieztā skaņa():
fails = pickAFile()ja fails != Navun file.endswith(".wav"):
# Kods derīgam failam
cits:
drukāt ("Atlasīts nederīgs fails. Lūdzu, izvēlieties derīgu WAV failu.") - Izveidojiet jaunu skaņas objektu no atlasītā faila:
skaņa = makeSound (fails)
- Izmantojiet iebūvēto funkciju makeEmptySound(), lai izveidotu jaunu tukšu skaņas objektu. Tas sastāvēs no tāda paša paraugu skaita kā sākotnējā skaņa. Katra parauga amplitūdas vērtība būs 0:
newReversedSound = makeEmptySound (getLength (skaņa))
- Pārlūkojiet katru jaunā tukšā skaņas objekta paraugu:
priekš i iekšā diapazons(0, getLength (newReversedSound)):
- Katram paraugam tajā brīdī iegūstiet paraugu skaņas pretējā galā. Piemēram, ja izlases garums ir 100 un pašreizējais indekss ir 0, tas iegūs izlases vērtību ar indeksu 99. Līdzīgi, ja pašreizējais indekss ir 3, tas iegūs parauga vērtību indeksā 96:
sampleVal = getSampleValueAt (skaņa, getLength (skaņa) - 1 - i)
- Kopējiet parauga vērtību no skaņas otrā gala uz jaunās skaņas pašreizējo indeksu:
setSampleValueAt (newReversedSound, i, sampleVal)
- Izpētiet jauno apgriezto skaņu. Salīdzināšanas nolūkos varat arī izpētīt sākotnējo skaņu:
izpētīt (skaņa)
izpētīt (newReversedSound) - Noklikšķiniet uz Ielādēt programmu pogu, kas atrodas starp programmēšanas apgabalu un komandrindu. Saglabājiet failu, ja tiek prasīts.
- Palaidiet funkciju, izmantojot komandrindu:
reverseSound ()
- Skatiet sākotnējo skaņu un apgriezto skaņu, izmantojot pārlūkprogrammas logus. Noklikšķiniet uz Atskaņot visu skaņu pogu, lai dzirdētu atšķirības:
Kā apvienot divus skaņu klipus kopā
Lai apvienotu divus skaņas klipus, varat lūgt lietotājam atlasīt divus atsevišķus WAV failus. Kopējiet katru abu skaņu paraugu jaunajā skaņas objektā.
- Izveidojiet jaunu funkciju ar nosaukumu joinSounds ():
defjoinSounds():
- Izmantojiet funkciju pickAFile(), lai aicinātu lietotāju atlasīt pirmo failu. Ja tas nav derīgs, izdrukājiet kļūdas ziņojumu:
fails1 = pickAFile()
ja fails1 == Navvainē file1.endswith(".wav"):
drukāt ("Atlasīts nederīgs fails. Lūdzu, izvēlieties derīgu WAV failu.") - Vēlreiz izmantojiet funkciju pickAFile(), lai pieprasītu lietotājam otru derīgu skaņas failu:
fails2 = pickAFile()
ja fails2 == Navvainē file2.endswith(".wav"):
drukāt ("Atlasīts nederīgs fails. Lūdzu, izvēlieties derīgu WAV failu.") - Izveidojiet divus skaņas objektus no diviem atlasītajiem skaņas failiem:
sound1 = makeSound (fails1)
sound2 = makeSound (fails2) - Pievienojiet abu skaņu garumus kopā, lai aprēķinātu jaunās apvienotās skaņas garumu. Izveidojiet jaunu tukšu skaņas objektu, izmantojot garumu:
newSoundLength = getLength (skaņa1) + getLength (skaņa2)
joinedSound = makeEmptySound (newSoundLength) - Pārlūkojiet katru pirmās skaņas paraugu. Kopējiet katra indeksa parauga vērtību jaunajā skaņā:
priekš i iekšā diapazons(0, getLength (skaņa1)):
sampleVal = getSampleValueAt (skaņa1, i)
setSampleValueAt (joinedSound, i, sampleVal) - Pārlūkojiet katru otrās skaņas paraugu. Kopējiet parauga vērtību katrā rādītājā jaunajā skaņā pēc pirmās skaņas:
priekš i iekšā diapazons(0, getLength (skaņa2)):
sampleVal = getSampleValueAt (skaņa2, i)
endOfFirstSound = getLength (skaņa1) - 1
setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal) - Izpētiet skaņu, izmantojot funkciju explore():
izpētīt (joinedSound)
- Noklikšķiniet uz Ielādēt programmu pogu, kas atrodas starp programmēšanas apgabalu un komandrindu. Saglabājiet failu, ja tiek prasīts.
- Palaidiet funkciju, izmantojot komandrindu:
joinSounds ()
- Skatiet pievienoto skaņu, izmantojot jauno logu, un noklikšķiniet uz Atskaņot visu skaņu pogu, lai dzirdētu skaņu:
Skaņas failu importēšana un rediģēšana, izmantojot JES
Tagad jūs saprotat, kā importēt skaņas failus un rediģēt tos, izmantojot JES. Ir tik daudz citu iebūvēto funkciju, ko JES piedāvā, kas ļaus jums veikt vēl sarežģītāku skaņas rediģēšanu.
Jūs varat uzzināt vairāk par citām pieejamajām funkcijām, izmantojot JES palīdzības logu.