22 Mayıs 2020 Cuma

Müzik Teknolojisi

Giriş
Ses ve müzik teknolojisi görüntü işleme kadar büyük bir hızla ilerliyor. Aşağıda ses ve müzik teknolojisi hakkında aldığım genel notlarım var.

RF ve Ses Dalgası
Açıklaması şöyle.
An RF signal can have the same frequency as a sound wave, and most people can hear a 5 kHz audio tone. No one can hear a 5 kHz RF signal.
Kulaklarımız elektro manyetik dalgaları duyamıyor. Açıklaması şöyle. Ancak gözlerimiz elektromanteyik dalga olan ışığı görebiliyor. Onlar da belli bir araşığı görebiliyor.
The audio tone is compression waves traveling through air that your ears can pick up. The RF signal is waves in the electromagnetic field that you ears have no way of picking up.
Sound Generator
İlk ses kartlarında noise generator bileşeni vardı. Bu kartlar  square wave, pulse wave, triangle wave, sawtooth wave gibi tone'ları üretebiliyordu

Audio Jack
Ses çıkışı TSR (Tip, Ring, Sleeve) veya TRS (Tip, Ring, Ring, Sleeve) olabilir.

PCM
PCM basit bir şekilde analog sesin dijital hale getirilmiş şeklidir. Raw bitstream olarak düşünülebilir. Analog ses bir sürekli değişen bir dalga olduğu için sonsuz bilgi içerir. Bu bilgisi dijital hale getirmek için belli aralıklarla örnekler almak gerekir.
samples

Compressed müzik dosyalarında - örneğin MP3 - her zaman kayıp vardır. Ancak bu kayıp fark edilemeyek kadar küçük olabilir. Sıkıştırma algoritmaları farklı farklı şekillerde çalışıyorlar.

Basit bir algoritma yukarıdaki şekildeki birbirlerine çok yakın oldukları için 5T ve 6T değerlerinden sadece birini kaydedebilir.

Audio Feedback
Özellike video konferanslarda sesin gürültü haline gelere sürekli yükselmesidir. Açıklaması şöyle. Çare mikrofonu kapatmaktır :)
This phenomenon is called audio feedback which usually occurs when the sound from the speakers reaches back into the microphone, and then gets amplified because of the speaker-mic loop.

Common and general solutions are to cut off the loop, or at least reduce the loop gain by:

1- Wearing earphone or headphone (isolate the speaker and the mic, prevent the feedback loop completely)
2- Mute the mic when not needed to speak (prevent the chance of feedback loop)
3- Reduce the speaker volume (reduce the volume gain)
4- Take some distance between the speakers (reduce the volume gain)

WAVE Dosya Formatı
Wave dosya formatı uncompressed ve lossless bir formattır. Wave formatı aslında jenerik bir container format olarak düşünülebilir fakat genellikle PCM verisi içerir. CD'lerde Wave dosyaları görülebilir.

WAVE dosya formatı başlık + veri şeklinde tasarlanmış.
1. Dosya önce şöyle RIFF Header ile başlar.
'R', 'I', 'F', 'F'
Arada anlamadığım bazı bilgiler var. RIFF Header WAVE kelimesi ile sonlanır
'W', 'A', 'V', 'E'
Yani şöyle bir yapıdır.
typedef struct  WAV_HEADER
{
   uint8_t         RIFF[4];        // RIFF
   uint8_t         WAVE[4];        // WAVE
}

2. Format Header
Format Header şöyle başlar
'f', 'm', 't', ' '
Buraya şu bilgiler yazılır
Subchunk1Size = 16;
AudioFormat = 1
NumberOfChannels = 2
SampleRate = 44100
ByteRate
BlockAlign
BitsPerSample = 16

Yukarıdaki bilgiler ışığında bazı alanları anlamak mümkün.
Sample Rate  : Kaç Hz ile örnekleme yapıldığını gösteriyor. Bu genellikle 44,100'dür
Bits Per Sample : Her örnekte kaç bit olduğunu gösterir.
Num Channel : Her örneğin aslında kaç kanalın birleşimi olduğunu gösterir. En fazla 18 kanal olabilir. Kanallar örneklerde şöyle görünür.
[1st L] [1st R] [2nd L] [2nd R]...
Yani iki kanal varsa, örneğin yarısı sağ,diğer yarısı ise sol kanaldan gelmektedir.

3. Data Header
Data Header şöyle başlar
'd', 'a', 't', 'a'
Arkasından ses verisi gelir.

Wave dosyaları sıkıştırılmamış oldukları için büyüktürler. 5 dakikalık bir kayıt için
  • 16-bit, 44.1kHz: 50 MB
  • 24-bit, 48kHz: 82 MB
  • 24-bit, 96kHz: 164 MB

büyüklüğünde veri çıkabilir. Bu büyüklüğü mp3 ile kıyaslayınca sıkıştırmanın ne kadar önemli olabileceği görülebilir.

Windows'ta wav dosyası çalmak için PlaySound() çağrısı kullanılabilir.


Hiç yorum yok:

Yorum Gönder