[ Ivan Tanasic @ 16.12.2002. 21:55 ] @
Valjda se tako zove ono sto me interesuje ;)... Nisam siguran da je to bas za ovaj forum al mislim da je najblize ovome... naime interesuje me kako da 'malo' izmenim ;) neki zvuk... od vas trazim bilo sta sto bi me malo uputilo u tematiku kako bi dalje mogo i sam :)

pozdrav, ivan
[ Goran Rakić @ 17.12.2002. 14:28 ] @
Koji format, na kom OS-u, direktno sa line-in ili iz fajla???
[ Ivan Tanasic @ 17.12.2002. 14:55 ] @
Uglavnom direktno sa line-in, os za pocetak nije bitan, sta je lakse za pocetak... naime nameravam nesto za svoje potrebe tako da nije bitno koji je os, uglavnom win/unix like
[ mika @ 17.12.2002. 17:28 ] @
Možda i nije pravi odgovor na pitanje, ali imaš MORE programa za ovu (i bilo koju drugu namenu). Navedi šta te interesuje pa ćemo da nađemo ono što tebi treba.

Ne potcenjujem programiranje takvog programa (čak mi se čini zanimljivim) ali što da gubiš vreme kada imaš BAŠ sve što ti treba već isprogramirano. Osim ako eksplicitno želiš da se uputiš u tehnike programiranja istog, onda kapa dole.

Pozdrav.
[ Ivan Tanasic @ 17.12.2002. 18:30 ] @
Kapa dole ;) hehehe

Konkretno me zanimaju efekti za elektricnu gitaru, a obratio sam se ovde jer smatram da je lakse poceti sa programom, a kasnije se eventualno baciti na hardvesrku implementaciju istog...
[ dRock9 @ 18.12.2002. 00:01 ] @
Ax ta ambicioznost....

Mogu mi reci da si ti vec 5. ili 6. covek kojeg zanima da napravi masinu za efekte (i to svi hoce da naprave procesor za gitaru na kompu ....).

U sustini, sam tvoj algoritam nije mnogo komplikovan (mislim jeste, ali pretpostavimo da koristis neke gotove stvari - npr. A/D konverziju, blah, blah). Uzmimo za primer distorziju. Ona nije nista drugo do "zasecanje" krive zvuka. Signal dobijas otprilike ovakav:
___
/ \
/ \ /------------------> x osa - primer "zasecenog" sinusa
\ /
\___/
Vrsta distorzije ti zavisi od toga kako i koliko zaseces....
Elem, OGROMAN (citaj: dosad ne prevazidjen problem) je to sto se ovako nesto ne moze (ili niko do sad barem nije) realizovati da radi u realnom vremenu, tj. uvek se javlja kasnjenje, sto za koriscenje preko line-in -a za svirku, itd. stvar cini neupotrebljivom.
Inace sami algoritmi, konvertuju odgovarajuci bufer zvuka A/D, odrade efekat i puste...). Zvuci lako, nije bash tako, pogotovu ovaj deo za A/D mada mozes da koristis besplatne biblioteke za FFT. Ako bi zeleo da stvarno odradis ovako nesto uz pomoc racunara, onda bi morao i da napravis koji komad hardvera (napravis, znaci dizajniras a ne samo sastavis :( ). Mada bi se to mozda i fino prodalo.... :)
Nisam mnogo upucen u te stvari, ali ako te vise zanima, imas gomilu literature (u elektronskom formatu), potrazi i poigraj se - mozda dodjes do neceg zanimljivog, ako ne do onoga do cega si hteo doci..

pozdrav !
[ milanche @ 18.12.2002. 01:13 ] @
Nije sve tako crno ni tako tesko.

Ljudi su u pravu - sa zvucnom karticom neces moci nista da napravis u realnom vremenu, prosto zato sto kartici u proseku treba oko 0.5 sekundi
da bi semplove dostavila procesoru.

Ono sto mozes je sledece:
- da snimis ton bilo kojim komercijalnim programom u WAV fajl.
- da semplove koji se izuzetno lako izdvajaju iz WAV-a manipulises prema odredjenom algoritmu u svom programu, i upises u novi WAV fajl.

Potrebno znanje iz sledecih oblasti:
- 16-bitna aritmetika (tj. kako se decimalni brojevi predstavljaju u 16-bitnoj integer aritmetici, kako se izbegavaju krupne greske prilikom racunskih operacija, ...)
- floating point aritmetika koja je mnogo preciznija ali i mnogo sporija.
- odlicno vladanje C-om (rad sa fajlovima, strukture, casting, alokacija, alokacija memorije,...)
- algoritmi se mogu naci po raznim knjigama. Neki efekti mogu da zvuce vrlo dobro i sa vrlo prostim algoritmima, kao napr. delay, echo, chorus, flanger, pitchShift, distortion, dok za neke druge (kao sto su reverb, ekvalizacija, vocoder, vocalMultiplication, octaver i slicno) moras da mnogo dobro poznajes i razumes telekomunikacije/FFT/sampling teoremu i slicne stvari.

Odakle poceti:
Provali prvo kako da napravis WAV fajl u kojem je semplovana sinusoida ili neki drugi talasni oblik za zadatu frekvenciju i sampling rate. Zatim napravi prost program koji miksuje dva ili vise WAV fajla, semplovana na istoj sampling frekvenciji.
To su prvi i najtezi koraci. Ako tu sve budes razumeo, i sve bude radilo kako treba, na dobrom si putu.

[ milanche @ 18.12.2002. 02:10 ] @
Mala ispravka:

umesto 16-bitna aritmetika, trebalo je reci: integer aritmetika (svejedno da li je 8bita, 32bita, ili bilo koji broj bita izmedju 8 i 16).
[ mika @ 18.12.2002. 15:43 ] @
Auh ljudi, pa rekoh ja da je sve napravljeno samo treba da se potraži...

Ja recimo koristim Yamaha SV100 (hehe, e ako niste znali to je Silent Violin :D:D:D) i prikačim na Line-in (u pitanju je SB LIVE 5.1) i uz KX drajvere (što je po meni nešto najbolje ikad napravljeno za SB-cedi poslednji atom snage iz njega) imam obradu zvuka u Real-time-u.

Ah, da ne zaboravim link: www.kxproject.com -more efekata uz minimalno kašnjenje (<5ms), lep interfejs i potpuno profesionalna realizacija programa uz redovan update drajvera sa novim opcijama. Naravno-FREEWARE!

SB rulez!
[ mika @ 18.12.2002. 15:49 ] @
Još samo da navedem da za naknadnu obradu semplovanog zvuka koristite DirectX efekte (ima gomila napravljenih baš za gitaru) uz neki program za obradu zvuka (SoundForge,WaveLab itd). Google is your friend.

Ja sam čak skinuo neke efekte koji imaju implementiranu simulaciju rada lampi (!!!), simulaciju raznih pojačala, mikrofona... Ma ima svega...

Još kad bih znao linkove... ali bilo je to davno...
[ Ivan Tanasic @ 18.12.2002. 19:32 ] @
Eh... pa nisam ja postavio pitanje da mi predlozite muzicku karticu ;) niti da mi kazete koji su programi dobri za efekte, itd... vec da mi date neke smernice u pocinjanju sa DSP, konkretno zvukom....

Ako gitarski procesor za racunar neka pogleda alienconnections.com
[ Ivan Tanasic @ 19.12.2002. 18:49 ] @
Uhhh, posto nisam dobio bas najbolji odgovor, evo me sa malo konkretnijim pitanjem...

Neko pomenu da je distorzija samo zasecanje sinusoide i da njen zvuk zavisi od toga kolko ces _zaseci_ :)

Interesuje me dakle kako se to izvodi, objasnjeno u par redova (nemojte mi objasnjavati algoritme i transformacije koje se koriste, vec samo kazite sta se koristi i kako)
[ salec @ 20.12.2002. 10:32 ] @
Mozda ne _zaseci_ >:(, nego _skalpirati_ [:( , (ako zamisljas vremenski oblik signala po difoltu gde je vreme apscisa (x) a amplituda ordinata (y) ).

Najprostije bi bilo da pojacas signal toliko da audio ne moze da prati njegov "razmah", nego kad u tom pracenju dodje do svog maksimuma, ostane na njemu sve dok se nivo ulaznog signala ne spusti ispod njega (i obrnuto, za negativnu poluperiodu sinusoide ([maksimum, iznad, ispod],[minimum, ispod, iznad]) ).

Drugim recima, ukljuci (po mogucstvu pojacan) gitar audio u lajn-in, odvrni sve volume kontrole na maksimum (do daske) i cuces taj efekat.



Izvini, naknadno sam shvatio da ti ovo ne treba za konkretnu svirku, nego kao vezba za DSP.

Paa, konkretan algoritam bi bio da svaki sempl koji nije izmedju nekog minimuma i maksimuma zamenjujes sa tim minimumom, ako je manji od njega, ili tim maksimumom, ako je veci od njega.
[ Ivan Tanasic @ 20.12.2002. 13:52 ] @
E ovo na kraju je vec neki odgovor ;))) Kako ja da odredim minimum i maximum koji me interesuje???? dal da bumbaram onako pa sta izbumbaram L;) ili recimo da ustekam gitaru u distorziju, distorziju u komp, okinem par puta i poskidem semplove... zatim vidim koji je tu maksimum, koji minimum i to je to za tu distorziju konkretno???Dalje samo odradim da se semplovi visi/nizi zamenjuju odgovarajucim i to je to???

Sad pitanje je dal sam te dobro razumeo i da li si ti u pravu, ako je i jedno i drugo tacno... do jaja ;) Nista lakse ;)
[ salec @ 20.12.2002. 16:53 ] @
Mislim da treba da malo eksperimentises sa tim min i max. U sustini, fora je da se "cist" ton (zicani instrumenti u stvari ne daju ciste sinusoidalne oscilacije nego zbir osnovne sinusoide i visih harmonika, od kojih se neki guse a neki pojacavaju oblikom rezonatora) uoblici tako da lici na ton koji daje PC-speaker, koji je bogat neparnim harmonicima i ima "metalni" zvuk.

Posto deo signala ispod granice "secenja" nije izoblicen, u izlaznom spektru ce se naci i deo "originalnih" harmonika.

Moram da se ispravim: Ako je neki sempl izvan granica koje mu zadas, mozes da ga zamenis i sa nekom drugom, vecom vrednoscu umesto te granicne, a to je bolje od mog prvog predloga jer time neces gubiti na glasnoci zvuka kad (pedalom, polugom, misem :)))) ?) povecavas izoblicenje, tj. kad ga cinis "kockastijim". Znaci, imas dva, a ne cetiri, parametra, a to su:

- dubina distorzije, to je ona vrednost koja je minimum/maksimum i
- amplituda izoblicenog signala, to je ova vrednost koju dodeljujes semplovima koji podlezu izoblicenju.

Zasto dva a ne cetiri? Zato sto je zapis zvuka generalno zapis nekog periodicnog signala cija je srednja vrednost nula (tisina). Posto ne znam da li su semplovi dati kao pozitivni i negativni brojevi ili kao brojevi bez znaka koji variraju oko neke srednje vrednosti koja pretstavlja nivo tisine, napisao sam recenicu tako da zadovoljava oba slucaja. Medjutim na dalje se razglabanje komplikuje pa zato hocu da razjasnim sta su te dve, tj. jedna granica...

Znaci, ako uzmemo na primer da su semplovi pozitivni i negativni brojevi, poredis njihovu apsolutnu vrednost (magnitudu) sa parametrom koji ti predstavlja dubinu distorzije, pa ako "vire preko plota", ostavis im znak koji imaju, ali im zamenis magnitudu sa vrednoscu drugog parametra, amplitudom izoblicenog signala.

srecna svirka i cuvaj sluh ;-)))
[ salec @ 24.12.2002. 14:45 ] @
"Engineers' and Scientists' Guide to Digital Signal Processing":

http://www.analog.com/Analog_R.../materials/dsp_book_index.html

(zahteva Acrobat Reader 5.05 da bi se formule lepo videle)
[ Meklaud @ 09.02.2003. 14:04 ] @
E pa vidis prijatelju,slucajno se trenutno bavimo tvojom temom.Naime,na faxu(FTN NS) smo dobili projekat pod imeno procesor zvuka.Treba da napravimo par efekata za gitaru,iverovatno ce biti reverberacija,phaser,eho i mozda jos nesto.Radimo sve ,od hardvera i softvera.Softver smo napravili tako sto smo skinuli semu i u matlabu to isimulirali i to sve radi.Pri ruci imamo DSP TMS320C50 koji je mislim na 40 MHz i pomocu toga treba da napravimo to sto smo mi zamislili.Sad smo poceli pa ako te nesto bude interesovalo mogu te obavestiti dokle smo dosli.