Informatyka - studium realizacji dźwięku - mgr inż. Jan Madej www.janmadej.pl
Informatyka (computer science) (2h) Audio FX (2h) poznanie środowiska Octave tworzenie własnych algorytmów przetwarzających dźwięk Linux (1h)
Architektura komputerów
Warstwy abstrakcji rys. na tablicy
Warstwy abstrakcji rys. na tablicy Wartości fizyczne bramki logiczne układy cyfrowe procesory software
CPU (procesor) ALU (jednostka arytmetyczno-logiczna)
CPU (procesor) ALU (jednostka arytmetyczno-logiczna) Co oznacza liczba bitów procesora (32bitowy i 64-bitowy)? Co to są liczby zmiennoprzecinkowe?
Co to są liczby zmiennoprzecinkowe?
CPU (procesor) ALU (jednostka arytmetyczno-logiczna), Rejestry,
CPU (procesor) ALU (jednostka arytmetyczno-logiczna), Rejestry, Inne...
Instrukcje procesora Kod maszynowy
Instrukcje procesora Kod maszynowy Asembler
Instrukcje procesora Kod maszynowy Asembler Język wysokiego poziomu (Pascal, C, Java...)
Instrukcje procesora Kod maszynowy Asembler Język wysokiego poziomu (Pascal, C, Java...)
Komunikacja procesora z peryferiami Czy procesor musi się tym wszystkim zajmować?!
Chipset na płycie glównej co z RAMem?
Motherboard (płyta główna)
Motherboard (płyta główna)
Motherboard (płyta główna) Dlaczego płyty główne są dedykowane do konkretnych modeli procesorów? Od czego zależy jakość (i cena) płyty głównej? Czy czas dostępu do pamięci RAM nie jest zbyt długi?!
Cache (pamięć podręczna)
Cache (pamięć podręczna)
Cache (pamięć podręczna)
Cache (pamięć podręczna)
Cache (pamięć podręczna)
Cache (pamięć podręczna)
Procesor pod mikroskopem
Procesor pod mikroskopem
Procesor pod mikroskopem
Procesor pod mikroskopem
12 rdzeni!
Prędkość zegara
Multi-core (wielordzeniowość) 1 rdzeń (procesor) = 1 proces (program) 2 rdzenie = 2 procesy 16 rdzeni = 16 procesów... 1000 rdzeni = 1000 procesów
Multi-core (wielordzeniowość) Programista musi zadbać o to, aby jego aplikacja wykorzystywała wiele rdzeni. Uruchamiamy jeden program, ale jest on rozdzielany na niezależne procesy. Jakie programy można zrównoleglić?
Zarządzanie procesami w systemie Windows Task Manager
Zarządzanie procesami w systemie Windows Task Manager Linux top
Octave
Octave Octave http://sourceforge.net/projects/octave/files/octave_windows%20-%20mingw/octave%203.2.4%20for %20Windows%20MinGW32%20Installer/Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe/download QtOctave (nakładka GUI) http://www.outsch.org/wp-content/uploads/2010/04/qtoctave-win32-0.9.1-3.zip Oba programy stanowią jedność, najpierw należy zainstalować Octave, po nim QTOctave (gdzie zapyta o ścieżkę do poprzednio zainstalowanego Octave). Uruchamiać za pomocą QTOctave.
Octave
Przydatne funkcje: [a1 a2 a3] = wavread('nazwa_pliku.wav'); a1, to tablica próbek, a2, to częśtotliwość próbkowania (np. 44100), a3, to liczba bitów na próbkę (np. 16). plot(a1); Rysuje tablicę. wavwrite(a1, a2, a3,'muzyka_po.wav'); length(a1); Zwraca liczbę elementów w tablicy. Pętla for i =1:100 a1(i) = a1(i)*10; end %dla i od 1 do 100 %wykonaj coś
Przetwarzania sygnałów (DSP) Każdy program będzie wyglądał podobnie: [x fs b] = wavread('muzyka.wav'); for i =1:length(x) x(i) = x(i)*10; %algorytm end wavwrite(x, fs, b,'muzyka_po.wav');
Przetwarzania sygnałów (DSP) Ćwiczenia Ściszenie muzyki. Podgłośnienie muzyki. Odwrócenie fazy sygnału. Zwolnienie tempa muzyki (częstotliwość próbkowania). Efekt tremolo. Fade in/fade out*. Zsumowanie sygnału z sobą samym, ale opóźnionym*.