JES, ses düzenleme için temel desteğe sahiptir, ancak bazı faydalı görevleri gerçekleştirmek için kullanabilirsiniz.

JES, görüntüleri, sesleri ve videoları programlı olarak değiştirmenize izin veren bir programdır. JES, Jython dilini öğrenmenize yardımcı olacak birçok yerleşik işleve ve hata ayıklama aracına sahiptir.

JES kullanarak bir dosyayı içe aktarırken, ayrı bir pencere kullanarak ses dalgalarını görsel olarak inceleyebilirsiniz. Ayrıca bu ses dalgalarının genlik değerlerini belirli noktalarda değiştirebilirsiniz. Bu, farklı efektler elde etmek için ses dosyasını düzenlemenize yardımcı olabilir.

Bir Ses Klibinin Ses Düzeyi Nasıl Değiştirilir

Sen ne zaman JES'te bir görüntü oluştur, içerdiği tek tek piksellere erişebilirsiniz. Belirli elde edebilirsiniz görüntü işleme teknikleri her piksel için kırmızı, yeşil ve mavi renk değerlerini düzenleyerek.

Benzer şekilde, bir ses dosyası, küçük ses verisi parçaları olan birçok bireysel "örnek" içerir. Her örnekteki genlik değerini değiştirerek içe aktarılan bir sesi düzenleyebilirsiniz.

instagram viewer

Bu projede kullanılan kod burada mevcuttur. GitHub deposu MIT lisansı altında.

  1. Bilgisayarınızda JES uygulamasını açın.
  2. Değiştirmek istediğiniz hacmi girdi olarak alan changeVolume() adlı yeni bir işlev oluşturun:
    kesinhacmi değiştir(hacim):
  3. İşlevin içinde, kullanıcıdan geçerli bir ses dosyası seçmesini istemek için bir bilgi istemi açın. JES, mp3 dosyalarıyla uyumlu olmasa da, yine de WAV dosyalarını içe aktarabilirsiniz. Dosyanın uyumlu olduğundan emin olmak için biraz doğrulama ekleyin:
    dosya = pickAFile() 

    eğer dosya != HiçbiriVe dosya.biter(".wav"):
    # Geçerli dosya için kod
    başka:
    Yazdır("Geçersiz dosya seçildi. Lütfen geçerli bir WAV dosyası seçin.")

  4. Seçilen dosya geçerliyse, ondan bir ses nesnesi oluşturun:
    ses = makeSound (dosya)
  5. Sesin her örneğinde döngü yapın:
    için Ben içinde menzil(0, getLength (ses)):
  6. Kullanıcının geçip geçmediğini kontrol edin yukarı sesi daha da yükseltmek için fonksiyona girin. Öyleyse, yerleşik getSampleValueAt() işlevini kullanarak o dizindeki örnek değeri alın. Genişliği iki katına çıkararak sesi artırın ve yeni değeri ayarlamak için setSampleValueAt() öğesini kullanın:
    eğer hacim == 'yukarı':
    sampleVal = getSampleValueAt (ses, ben)
    setSampleValueAt (ses, i, sampleVal * 2)
  7. Kullanıcının geçip geçmediğini kontrol edin aşağı sesi daha yumuşak yapmak için fonksiyona Eğer öyleyse, genliği azaltmak için o indeksteki örnek değeri alın ve bunun yerine 2'ye bölün:
    eğer hacim == 'aşağı':
    sampleVal = getSampleValueAt (ses, ben)
    setSampleValueAt (ses, i, sampleVal / 2)
  8. Ses için gezgin penceresini açmak üzere explore() işlevini kullanın:
    keşfetmek (ses)
  9. Tıkla Programı Yükle programlama alanı ile komut satırı arasında bulunan düğme. İstenirse dosyayı kaydedin:
  10. Komut satırında changeVolume() işlevini çalıştırın ve işleve argüman olarak "yukarı" iletin:
    changeVolume("yukarı")
  11. Dosya gezgini penceresini kullanarak geçerli bir ses dosyasına gidin:
  12. Tıkla Tüm Sesi Çal yeni pencereyi kullanarak düğme:
  13. Komut satırında, değişken olarak "aşağı" değeriyle changeVolume()'u yeniden çalıştırın ve bir dosya seçin:
    changeVolume("aşağı")
  14. Explorer penceresinde ses dalgalarının daha küçük olduğunu göreceksiniz. Tıkla Tüm Sesi Çal yeni pencereyi kullanarak düğme:

Bir Ses Klibini Tersine Çevirme

Yeni bir boş ses oluşturarak ve orijinal sesin her bir örneğini yeni sese ters sırayla kopyalayarak sesi tersine çevirebilirsiniz.

  1. Yeni bir işlevde, kullanıcıdan bir WAV dosyası seçmesini isteyin ve dosyanın geçerli olup olmadığını kontrol edin:
    kesinters ses():
    dosya = pickAFile()

    eğer dosya != HiçbiriVe dosya.biter(".wav"):
    # Geçerli dosya için kod
    başka:
    Yazdır("Geçersiz dosya seçildi. Lütfen geçerli bir WAV dosyası seçin.")

  2. Seçilen dosyadan yeni bir ses nesnesi oluşturun:
    ses = makeSound (dosya) 
  3. Yeni bir boş ses nesnesi oluşturmak için yerleşik makeEmptySound() işlevini kullanın. Bu, orijinal sesle aynı sayıda örnekten oluşacaktır. Her örnek için genlik değeri 0 olacaktır:
    newReversedSound = makeEmptySound (getLength (ses))
  4. Yeni boş ses nesnesinin her örneğinde döngü yapın:
    için Ben içinde menzil(0, getLength (yeni Ters Ses)):
  5. Bu noktadaki her örnek için, sesin karşı ucundaki örneği alın. Örneğin, numune uzunluğu 100 ise ve mevcut indeks 0 ise, bu, indeks 99'daki numune değerini alacaktır. Benzer şekilde, mevcut indeks 3 ise, bu indeks 96'daki örnek değeri alacaktır:
    sampleVal = getSampleValueAt (ses, getLength (ses) - 1 - Ben)
  6. Örnek değeri sesin diğer ucundan yeni sesin geçerli dizinine kopyalayın:
    setSampleValueAt (newReversedSound, i, sampleVal)
  7. Yeni ters çevrilmiş sesi keşfedin. Karşılaştırma amacıyla orijinal sesi de keşfedebilirsiniz:
    keşfetmek (ses)
    keşfet (newReversedSound)
  8. Tıkla Programı Yükle programlama alanı ile komut satırı arasında bulunan düğme. İstenirse dosyayı kaydedin.
  9. İşlevi komut satırını kullanarak çalıştırın:
    tersSes()
  10. Gezgin pencerelerini kullanarak orijinal sesi ve ters sesi görüntüleyin. Tıkla Tüm Sesi Çal farkları duymak için düğmesine basın:

İki Ses Klibini Birlikte Nasıl Birleştirirsiniz?

İki ses klibini birleştirmek için kullanıcıdan iki ayrı WAV dosyası seçmesini isteyebilirsiniz. Her iki ses örneğini de yeni ses nesnesine kopyalayın.

  1. joinSounds() adlı yeni bir işlev oluşturun:
    kesinseslere katıl():
  2. Kullanıcıdan ilk dosyayı seçmesini istemek için pickAFile() işlevini kullanın. Geçersizse, bir hata mesajı yazdırın:
    dosya1 = seçimAFile()

    eğer dosya1 == HiçbiriveyaOlumsuz dosya1.biter(".wav"):
    Yazdır("Geçersiz dosya seçildi. Lütfen geçerli bir WAV dosyası seçin.")

  3. Kullanıcıdan ikinci bir geçerli ses dosyası istemek için pickAFile() işlevini tekrar kullanın:
    dosya2 = seçimAFile() 

    eğer dosya2 == HiçbiriveyaOlumsuz dosya2.bitiyor(".wav"):
    Yazdır("Geçersiz dosya seçildi. Lütfen geçerli bir WAV dosyası seçin.")

  4. Seçilen iki ses dosyasından iki ses nesnesi oluşturun:
    ses1 = ses yap (dosya1) 
    ses2 = ses yap (dosya2)
  5. Yeni birleştirilen sesin uzunluğunu hesaplamak için iki sesin uzunluklarını toplayın. Uzunluğu kullanarak yeni bir boş ses nesnesi oluşturun:
    yeniSesUzunluğu = getLength (ses1) + getLength (ses2)
    birleştirilmiş Ses = makeEmptySound (yeni SesUzunluğu)
  6. İlk sesin her örneğinde döngü yapın. Her indeksteki örnek değeri yeni sese kopyalayın:
    için Ben içinde menzil(0, getLength (ses1)):
    sampleVal = getSampleValueAt (ses1, i)
    setSampleValueAt (joinedSound, i, sampleVal)
  7. İkinci sesin her örneğinde döngü yapın. Her indeksteki örnek değeri ilk sesten sonra yeni sese kopyalayın:
    için Ben içinde menzil(0, getLength (ses2)):
    sampleVal = getSampleValueAt (ses2, i)
    endOfFirstSound = getLength (ses1) - 1
    setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal)
  8. explore() işlevini kullanarak sesi keşfedin:
    keşfet (joinedSound)
  9. Tıkla Programı Yükle programlama alanı ile komut satırı arasında bulunan düğme. İstenirse dosyayı kaydedin.
  10. İşlevi komut satırını kullanarak çalıştırın:
    seslere katıl()
  11. Yeni pencereyi kullanarak birleştirilen sesi görüntüleyin ve Tüm Sesi Çal sesi duymak için düğme:

JES Kullanarak Ses Dosyalarını İçe Aktarma ve Düzenleme

Artık ses dosyalarını nasıl içe aktaracağınızı ve JES kullanarak düzenleyeceğinizi anlıyorsunuz. JES'in sunduğu, daha da gelişmiş ses düzenlemesi yapmanıza izin verecek pek çok başka yerleşik işlev vardır.

JES yardım penceresini kullanarak mevcut diğer işlevler hakkında daha fazla bilgi edinebilirsiniz.