четвъртък, 9 септември 2021 г.

Шумови характеристики на аудиоинтерфейс

Измерих някои основни шумови характеристики на USB аудиоинтерфейс Steinberg UR22C.

Без да включвам нищо на входовете (без кабели) записах четири файла със сигнал: gain0.wav, gain50.wav, gain80.wav, gain100.wav при различни нива на усилването на входа. Записвах при точност 24-bit/96000 Hz.
Така се получиха файлове, съдържащи само собствения шум на аудиоинтерфейса.

За всеки файл измерих средноквадратичното ниво на целия сигнал за левия и десния стереоканали:

Файл GAIN, [%] Продължителност, [s] L RMS, [dBFS] R RMS, [dBFS]
gain0.wav 0 58.0 -103.6 -103.6
gain50.wav 50 57.0 -99.8 -99.4
gain80.wav 80 57.0 -88.6 -89.2
gain100.wav 100 58.0 -69.5 -69.7

Мерната единица на нивото е dBFS, където 0 съответства на максималната числова стойност на цифровия сигнал, когато всички битове са единици.

След това в програмата Audacity разгледах спектрите на шумовите сигнали от файловете. За целта първо увеличих нивото на всеки сигнал със +40 dB.
Избрах ширина на прозореца на преобразуванието на Фурие 8192 точки, защото тогава при честотата на дискретизация 96000 Hz се получава приемлива минимална честота на анализа 96000/8192 = 11.71875 Hz. За изглаждане на спектъра използвах прозоречната функция "Hanning window".

Ето как изглеждат спектрите на файловете със шум:

Собственият шум при GAIN 0%
 
При ниски нива на усилването и ниски честоти до около 200 Hz шумът е близък до розов шум. Това се вижда най-ясно на участъка от 40 до 80 Hz, където графиката спада от -79 dB до около -82 dB. Теоретически спектърът на розовия шум (Pink Noise) трябва да има графика, спадаща с 3.01 dB на октава.
 

Собственият шум при GAIN 50%
 
 
Собственият шум при GAIN 80%

При високи нива на усилването в състава на шума, особено при високи честоти над 200 Hz, започва да преоблaдава бял шум с равномерен спектър.

Собственият шум при GAIN 100%


Вижда се, че в собственият шум на входа на този аудиоинтерфейс има две компоненти: при малко усилване на входа и ниски честоти - розов шум, а при увеличaване на усилването и високи честоти - бял шум. Има и неголям пик при 50 Hz - мрежов брум. Над около 16000 Hz силата на шума спада рязко.

Розовият шум, наричан още 1/f шум, има голямо значение за акустиката и електронната музика. Това е най-музикалният шум, естествено генериран от различни природни системи. На слух звукът на розовия шум прилича на шума от бушуването на някакъв водопад.


понеделник, 6 септември 2021 г.

За генеративната музика

Музиката представлява организирана система от звуци, която предизвиква определени реакции.

Обикновено музикалните звуци са тонове с определена височина и трайност, но се правят не малко експерименти с използване на произволни звуци и шумове, от които се изграждат музикални композиции (или поне звукови композиции).

Така музикалното произведение се строи от определен звуков материал - тонове или шумове. Композиторът организира този материал в осмислена система от звуци, които прозвучават последователно или едновременно.

Повторението е най-простия начин да се получи организирана система.
В следващия пример с програма съм получил случайна последователност от 5 тона, която се повтаря 8 пъти:

Пограмата, с която генерирах този пример, е написана на езика на системата LilyPond:

\version "2.18.2"
nnotes = 5   % брой ноти в мотива
duration = 2
% 0-цели, 1-половини, 2- четвъртини, 3-осмини, 4 - шестнадесетини, 5-тридесетивторини
ambitus = 24
randomNotes =
  {
    $(let ((random-state (seed->random-state (current-time))))
      (make-sequential-music
        (map (lambda (x)
               (let ((idx (random ambitus random-state)))
                 (make-event-chord
                   (list
                     (make-music 'NoteEvent
                                 'duration (ly:make-duration duration 0 1/1)
                                 'pitch (ly:make-pitch
                                   (quotient idx 7)
                                   (remainder idx 7)
                                   0))))))
              (make-list nnotes))))
  }
motiv = \randomNotes
\score {
  \new StaffGroup <<
    \new Staff {
      \set Staff.midiInstrument = #"acoustic grand"
      \tempo 4 = 240
      \time 5/4
      \motiv
      \motiv
      \motiv   
      \motiv
      \motiv
      \motiv   
      \motiv
      \motiv   
      \bar "|."
    }
  >>
  \layout {
    \context {
      \Score
      \remove "Timing_translator"
      \remove "Default_bar_line_engraver"
    }
    \context {
      \Staff
      \consists "Timing_translator"
      \consists "Default_bar_line_engraver"
    }
  }
 \midi { }
}
 

Тази програма чертае нотния запис и създава MIDI файл, който може да бъде изсвирен от виртуален или хардуерен инструмент.

Еднотактовият мотив сам по себе си представлява просто 5 случайни ноти. Но, когато започне да се повтаря, възниква някаква музикална логика.

Философско отклонение

Не е задължително композиторът да бъде човек. Възможно е компютърна програма да създава музикални произведения по определени правила. Тези правила могат да бъдат целенасочено измислени или да бъдат в някаква степен случайни или подчиняващи се на математически или други закономерности, взети извън музиката.

Например, правен е опит очертанията на една планина със своите върхове да бъдат изтълкувани като мелодична линия, задаваща промяната на височината на тоновете във времето.

Генеративната музика (Generative music) се създава непосредствено в процеса на изпълнението от компютър или друга автоматична система (например аналогова моделираща система, модулен синтезатор или други устройства). Правилата за автоматично генериране на тоновете могат да съдържат в различни пропорции определеност или случайност.

Генеративното музикално произведение може постоянно да варира, никога да не се повтаря точно и да звучи потенциално безкрайно.

По начало се предполага, че музиката освен форма има и някакво съдържание, смисъл. Когато композиторът е човек, може да се очаква, че той предава някакъв смисъл със своето произведение. Но когато музиката се генерира автоматично какъв е нейният смисъл ?

Възможен отговор дава природата. Какъв е смисълът на някоя планина или друг красив природен пейзаж ? Тях не ги е създал нарочно някой човек с цел да бъдат красиви или да предават някакъв смисъл. Въпреки това и красотата на природата, както изкуството, може да предизвиква емоционална реакция у човека. Така изглежда, че това са родствени феномени.

Практически опити

Направих прости софтуерни системи, които пораждат автоматично мелодични последователности. В един експеримент използвах нееднородна система: в Linux стартира семпъл-плейъра timidity, в който съм заредил свои семпли; по-нататък във виртуалния модулен синтезатор VCV Rack се генерира последователност от MIDI ноти, които се подават на timidity да ги изсвири.

Като семпли записах тоновете на калимба. Използвах диатонична алт-калимба Bolf Kalimbas с 15 пластини в сол мажор. Тази калимба има тяло във вид на плътна дъска от орех. Пластините са от пружинна стомана и са доста ниско над тялото, но при тихо и внимателно свирене звукът е изключителен.

Общият брой на пластините и строя са от значение за звука, защото когато се удря една пластина зазвучава не само тя, но едновременно и някои от другите, които са в резонанс със нейните обертонове. Така се формира много богата обща звучност.

Получи се такава последователност от тонове:



Част от нея в нотен запис изглежда така (с темпо 60 четвъртини в минута):

Системата от модули на VCV Rack, с която е генериран този пример, изпълнява само функциите да създава последователността от MIDI ноти. Най-общо, чрез модул генератор на шум и модул Sample&hold се генерират случайно променящи се височини на ноти; с нискочестотни осцилатори LFO и генератори на шум се модулира силата на тоновете. Накрая получената последователност от MIDI ноти се подава на работещия като сървър семпъл-плейър timidity.

Софтуерният модулен синтезатор VCV Rack е удобен и за живо изпълнение. Чрез модула MIDI-MAP с хардуерен MIDI контролер или клавиатура може да се управляват различни параметри на другите модули. А модулът CV-MIDI може да управлява освен виртуални инструменти и външни хардуерни синтезатори.