English
O alatima


Ovi jednostavni alati sa sučeljem naredbenog retka (dakle, bez grafičkog sučelja) predstavljaju prvi korak u premošćivanju praznine koja dijeli glazbeničko od inženjerskog razmišljanja. Osnovna ideja je najjednostavnijim primjerima pokazati "pisanje" zvuka na računalu, a da se ne ostane na površini. "Alatnica" sadrži 25+ jednostavnih programa s izvornim kodom iz kojeg se točno vidi "što, kako i zašto".

Čemu alati sa sučeljem naredbenog retka?

Programi:


Početni programi


Ovo je "Hello, World!" za išta započeti s tvorbom zvuka u C jeziku. Pet malih programa stvaraju nizove vrijednosti signala, kao sirove podatke. Mada sami ne mogu zvučati, već jedino prozivode podake koje mora odsvirati neki drugi program, dijelovi su svakog programa koji proizvodi zvuk i tu su da pomognu vidjeti osnove tvorbe zvukovnog signala.

UPORABA:
table size
sine num_cycles num_steps
sinef num_cycles num_steps destfile
siner duration frequency sampling_rate
ks duration frequency sampling_rate

Molimo pročitati priloženi README.txt dokument.


PartialsCatenator


Pored sirovih podataka signala, koristimo i analitičke podatke koji predstavljaju slijedove kontrolnih vrijednosti, koji olakšavaju muzički razumljiv prikaz vrijednosti kojima se tvorba signala upravlja. Jedan takav tip podataka je "parcijalna analiza". Ovaj UNIX alat pisan je jedonstavnim "Hello, World!"-stilom C jezika i služi za povezivanje podataka iz većeg broja analiza u jedan podatkovni skup. Format ovih podataka je LISP lista, kakvu koristi program SculptView.

UPORABA:
ptcat file1 file2 ... ...filen > destfile

Ako se rezultat ne preusmjeri u destfile, biti će samo prikazn na ekranu.


Partials' Converters


Programi za konverziju između dva često korištena tekstovna formata za partcijalnu analizu.
Dva su programa: OPASKA:
SDIF tekstovni dokumenti su, mada u širokoj uporabi daleko složeniji za rad, i njihova upotreba često podrazumijeva prilično delikatnu interpretaciju sadržaja, čemu ovaj alat niti nije dorastao. Tomu su primjereniji programi SculptView ili SPEAR.



Partial Tracking File Resampler


Ovaj alat "preuzorkuje" postojeće LISP liste s parcijalima i raspoređuje točke loma uniformno koristeći kubnu interpolaciju. Služi se nešto višom matematikom, i kod za mrvljenje podataka temelji se na radu profesora George Wolberga. 1988 Columbia University Computer Science Dept. Technical Report CUCS-389-88 : CUBIC SPLINE INTERPOLATION: A REVIEW.

UPORABA:
ptfr file_name <dur>
Po obavljenom preuzorkovanju program će zakražiti ime novog dokumenta u koji će se podaci spremiti.


SineWaveGenerator


Ovaj CoreAudio alat služi ad-hoc sonifikaciji brojki koje predstavljaju proizvoljan skup parcijalnih frequencija, i za demonstaraciju kako one uplivaju na boju tona. Također se na jednostavan način dočarava koncept aditivne sinteze. Brojevi se upišu kao niz argumenata u naredbeni redak, s mogućim znakom "minus" - i kraticom opcije za spektralnu ovojnicu:

q for kvadratična
e for exponencijalna
b for Besselova J0
Ovojnica bez opcije je linearno recipročna

UPORABA:
swg freq1 freq2 ... ...freqn -[q|e|b]

Frekvencije su u titrajima po sekundi [=Hz]
Pritiskom na "Enter" pokrećemo sintezu.
Zvuci sinusoidnih valova odabranih frekvencija sviraju simultano s preciznošću do u jedan uzorak.
Pritiskom na "Enter" zaustavljamo program.


FloatBufferPlayer


Ovo je najjednostavniji CoreAudio program za odsvirati proizvoljne binarne dokumente s decimalnim podacima, koji nisu nastali kao "zvuk", već su mogli nastati bilogdje, čak i bez ikakve veze sa zvukovnim podacima. Takve dokumente normalan program za sviranje ili uređivanje zvukovnog zapisa ne bi niti otvorio. Takvi dokumenti naime nemaju oznake "isentiteta", zaglavlje, pakete, kodiranje, audio deskriptore i sve druge korisne, cool and hype odlike koje nesumnjivo pripomažu standardizaciji tonskih zapisa u svijetu razonode i glazbenoj industriji, ali svojom sveprisutnošću pretvaraju čak i najskromniji pokušaj nedisciplinarnog razmišljanja u čin nalik na lupanje glavom o zid. Rješenje je posegnuti za jezikom C i napisati takav program.

UPORABA:
fbp file

File mora biti binaran, s 32-bitnim decimalnim podacima.
Program će ga interpretirati kao niz zvukovnih uzoraka.
Biti će reproduciran na zadanom audio izlazu zadanom frekvencijom uzorkovanja. Normalizacija glasnoće je dio programa, tako da će zvučnici ostati čitavi.

Pritisnom na "Enter" pokrenemo reprodukciju.
Pritiskom na "Enter" također zaustavljamo reprodukciju.

Verzija ovog programa s grafičkim sučeljem može spremiti učitane podatke i u CAF ili AIF audio formatu.

TextFilePlayer je verzija istoga program koja čita jednodimenzionalne nizove decimalnih podataka u tekstovnom formatu i pretvara ih u zvuk; dostupna je u izvornom kodu.

UPORABA:
tfp file


FloatByteSwapper


Ovo je alat za Float32 format byte-swapping (zamjenu bajtova), za slučaj da decimalni podaci nemaju raspored bajtova koji je naativan na aktivnom računalu.

UPORABA:
fbs file.fp -[option]
option n = normalize


File mora biti binaran, s 32-bitnim decimalnim podacima.


Thread Demo


Ovo je simulator procedure tehnologije više programnih nîti (multi-threading), slične onoj kakva se koristi u digitalnoj sintezi signala. Željena duljina podatkovnog niza se unosi u naredbeni redak. Program provjerava koliko mu paralelnih logičkih procesora stoji na raspolaganju i prema tomu segmentira program na takav broj jedinica koje je moguće izvesti paralelno, svaka sa svojim dijelom podatkovnog spremnika. Na kraju ciklusa izračunati se podaci zbroje i rezultat se prikaže.

UPORABA:
threads -[option]
option n = no print     da se onemogući ispis (što usporava CPU)

    Enter buffer length:

Za lagan pregled što program radi unese se malen broj, poput 10.
Za nadgledanje opterećenosti procesora izračunom unese se velik broj, kao npr. 1000000.


Razrađeniji primjeri:


Ovi programi predstavljaju funkcionalnu nadogradnju gore opisanih osnovnih alata. Programe je u naredbenom retku moguće međusobno povezati, tako da izlazni podaci jednog programa postanu ulazni podaci drugog. Izvorni kod pokazuje na koji je način izvedena redirekcija, petlja događaja (event loop) i signali.



RtAudio primjeri


Pisanje jednostavnih, smislenih i univerzalnih audio programa niske razine može predstavljati izazov. Slijedi nekoliko osnovnih primjera u C++ jeziku, koji rabe, univerzalne (portabilne) softverske biblioteke (librarije) RtAudio, RtMidi i njihova programerska sučelja. Ovi programi dostupni su u izvornom kôdu s uputama za kompiliranje. Preduvjet za rad je prethodno preuzeti i kompilirati ove dvije softverske biblioteke (librarije):


Alati rade na MacOS X 10.6 and 10.7, 10.8 i 10.10, najvećim dijelom su izvorno kompatibilni sa svakim UNIX sistemom, ali:

NEMA JAMSTVA


preuzmi starters (-izvorni kod).


preuzmi PartialsCatenator (MacOS X -binarni
/ izvorni).


preuzmi Partials' Converters (MacOS X -binarni
/ izvorni).


preuzmi PartialsTrackingFileResampler (izvorni i MacOS X binarni).


preuzmi SineWaveGenerator (MacOS X -binarni kod).


preuzmi FloatBufferPlayer (MacOS X -binarni kod).


preuzmi TextFilePlayer (izvorni i MacOS X binarni).


preuzmi FloatByteSwapper (MacOS X binarni
/ izvorni).


preuzmi Thread Demo (MacOS X binarni
/ izvorni).


preuzmi pri (izvorni kod).


preuzmi com (izvorni kod).


preuzmi genetic (izvorni kod).


preuzmi siner1 (izvorni kod).


preuzmi FloatBufferPlayer1 (izvorni i MacOS X binarni).


preuzmi TextFilePlayer1 (izvorni i MacOS X binarni).


preuzmi rtsine ( -izvorni kod).


preuzmi rtswg ( -izvorni kod).


preuzmi rtfbp ( -izvorni kod).


preuzmi rttfp ( -izvorni kod).


preuzmi rtpt ( -izvorni kod).


preuzmi rtm ( -izvorni kod).


preuzmi rtfbp1 ( -izvorni kod).


preuzmi rttfp1 ( -izvorni kod).


a tu je grafičko sučelje FloatBufferPlayer (MacOS X -binarni kod).


Izvorni kod je dostupan ili će biti uskoro dostupan tamo gdje je to potrebno.