Prikazujem rezultate 1 do 19 od 19

Tema: [Tutorial] FMOD C++

  1. #1
    Senior Member My way or the highway
    Datum registracije
    Dec 2006
    Lokacija
    Behind the blue eyes
    Postova
    7.757

    [Tutorial]SFMOD C++

    Kako je kolega RayDX zapoceo seriju tutoriala za programiranje aplikacija uz pomoc DirectX-a , ja cu probat pojasnit jedan vrlo vazan aspekt C++ programiranja danas a to je zvuk. Procesiranje i upotrebu zvuka cemo uciti kroz SFMOD S( zasad neznate sta je FMOD ali ne brinite se, sve ce biti objasnjeno. ). Ja isto tako nisam naucio sve sta se tice ovog aspekta programiranja pa cu i ja ucit neke stvari uz vas, i vi uz mene.

    Svi primjeri ce biti rađeni u Visual Studiu 2005 Service pack 2, na Windows XP OS-u. IDE koje mozete korisititi su : Borland,DevC++,ili pak VS express. Ja osobno toplo preporucujem VS 2005 - i za njega garantiram da ce primjeri radit.

    Prvo cemo zapocet osnovnim upitima, sta nam treba i gdje isto skinuti i kako uspjesno integrirati FMOD u nas IDE.



    SŠto je FMOD

    S- Mi cemo koristiti FMOD 3 Programmers API - on je zapravo engine koji c++ programeri rapidno koriste za produciranje svakakvih zvukova u svojim aplikacijama ( podrzava .ogg,.wav,.mp3 i ostale poznate formate)
    FMOD mozete zamislit kao skup biblioteka koje su potrebne za produkciju zvukova u vasim programima a to znaci da te "biblioteke" sadrze funkcije koje suradjuju usko s nasom zvucnom karticom.


    SGdje da skinem FMOD
    SNa http://www.fmod.orgS- skinite FMOD 3 Programmers API Windows 32 verziju 3.75

    SSkinio sam .rar datoteku sa svim potrebnim stvarima, sta i gdje da raspakiram

    SPrvo napravite novi direktorij nazovimo ga recimo "FMOD" i u njega raspakirajte sve sta ste dobili u skinutom .rar arhivu,posto cemo radit u VS-u treba napravit sljedece :
    u C:\Program Files\Microsoft Visual\VC\include direktorij stavite sljedece fajlove : fmod.h,fmod_errors.h,fmoddyn.h i wincompat.h a u lib direktorij :fmodvc.lib - imajte na umu da fmod.dll fajl mora biti uvijek u istom direktoriju gdje je i vas projekt, znaci ako imate projekt c:\igra\mojac++igra tu vam mora biti i fmod.dll koji je potreban za pravilno izvodjenje


    Sada mozemo krenut na isprobavanje.

    Udjimo u VS i pokrenimo : SFile - new - project Si izaberimo Win32 console application.
    Dajte ime vasem projektu, recimo "Fmod tut".
    Dobili smo novi projekat i sad prvo sta moramo napravit je ici ljevo pod Source files desnim klikom i ici na new i napravit novu source datoteku, nazovimo je "main".

    Sljedeca stvar je da moramo linkat nas projekat s jednom od Fmod lib-a.
    Radimo sljedece : [b]SProject - Fmod tut propertis - Configuration propertis - Linker - input i onda pod Additional Dependencies upisite : fmodvc.lib. Sjecate se kad smo i di smo stavili tu "knjiznicu"? Da, u lib folder jer nam je ona potrebna za pravilno izvodjenje zadataka koje cemo postaviti za nas VS projekt. Isto tako bilo bi dobro da nadjete neki mali .midi file i postavite ga u direktorij od vaseg projekta ( default je My Documents\Visual Studio\Projects i tamo nadjite direktorij vaseg projekta i stavite neki .mp3 file tamo skupa s onim fmod.dll fajlom se sjecate da on mora biti uvijek ukljucen tamo di je vas projekt?).
    Evo vam jedan jednostavni midi za probu :
    http://download.yousendit.com/4EDF048827DBB6D3

    Ok sada cu vam dat source code i onda cemo se poblize upoznat s njime ( necu vam objasnjavat djelove koda koje se ticu samog C++ jezika, jer bi s time trebali biti upoznati, samo cu objasnit djelove sta se ticu FMOD-a jer je ovo ipak tutorial malo naprednije vrste i ovo ne preporucam ljudima koji su totalni pocetnici sta se tice C++-a ).

    Source :

    Code:
    S#include <iostream>
    #include <fmod.h>
    using namespace std;
    char a;
    
    int main () {
    	FSOUND_Init(44100, 32, 0);
    	FMUSIC_MODULE *mu = NULL;
    
    mu = FMUSIC_LoadSong("canyon.mid");
    FMUSIC_PlaySong(mu);
    
    cout << "Press any key to exit" << endl;
    cin >> a;
    return 0;

    Znaci redom :


    FSOUND_Init(44100,32,0);

    - Ovaj dio zapravo daje do znanja FMOD-u da kroz sljedece parametre radi ovo : mixa zvuk na 44100hz , koristi 32 kanala za reprodukciju zvuka a o ovoj 0 cemo drugi puta jer je ona nevazna zasad. Prihvatite je zdravo za gotovo

    FMUSIC_MODULE *mu = NULL;

    Kao sta znate u c++-u je dobra programerska navika deklarirati varijable i ostale stvari, pa tako i FMUSIC_MODULE i dajte do znanja da je rezultat ove "moguce varijable" NULL. Zato jer cemo ovu "mu" varijablu koristiti kao kasnije deklaraciju.

    mu = FMUSIC_LoadSong("canyon.mid");

    Evo tu deklariramo mu varijablu da bude odgovorna za ucitavanje pjesme u ovom slucaju "canyon.mid" koji je u direktoriju od vaseg projekta.

    FMUSIC_PlaySong(mu);

    Evo vidite, tu pozivamo da ovaj ucitani .midi fajl pokrenemo, a ucitavamo ga tako sta ga ucitavamo kroz varijablu "mu" kojoj je taj fajl dodjeljen.


    Sad isprobajte svoj novonastali program, trebao bi se pokrenut console prozor i pocet svirat ovaj .midi fajl, a ako upisete neko slovo i stisnete enter program bi se trebao zatvoriti.


    Evo toliko za ovaj put, moze sticky a ako vidim da ljudi hoce jos naucit o FMOD-u i njegovom koristenju, ja cu se potrudit da radim tutoriale za njega sa screenshotovima i detaljnim objasnjenjima.
    Ako imate pitanja i komentare slobodno ih tu postavite,msn kontakt imate ili mi saljite PM.

    Uzivajte

  2. #2
    Senior Member Small step for mankind
    Datum registracije
    Aug 2007
    Lokacija
    Latitude:45.286° Longitude:18.688°
    Postova
    2.150
    Lijep tutorial!
    Gdje je nestao mozak
    gdje se skriva on
    iz vagona pameti
    na tračnice ispao...

  3. #3
    Senior Member Giant leap for forum
    Datum registracije
    Oct 2006
    Lokacija
    Hostile universe
    Postova
    3.468
    Pohvaljujem; i ja koristim FMOD, vrlo odličan API. Od srca preporučujem da ga prouče svi koji se hoće baviti zvukom u svojim aplikacijama, a tu će vam vjerovatno pomoći Reikov tut. Nadam se da će ga nastaviti.

  4. #4
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028
    sticky ?
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  5. #5
    Senior Member It lives by night Iron Storm's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Sacred Sky
    Postova
    589
    Lijepi su vaši tutoriali (od RayDXa i tvoj) da i mene naginju da napišem neki tutorial o VB 2005-tici, budući da je to najlakši jezik iz paketa Visual Studio za naučiti.

  6. #6
    Senior Member My way or the highway
    Datum registracije
    Dec 2006
    Lokacija
    Behind the blue eyes
    Postova
    7.757
    Ako bude zainteresiranosti drugi put sljedi tut o otvaranju "jacih" formata tipa .mp3

  7. #7
    Senior Member It lives by night Iron Storm's Avatar
    Datum registracije
    Oct 2007
    Lokacija
    Sacred Sky
    Postova
    589
    Samo daj, a ja ću to pokušati prevesti u Visual Basic. Bit će mi korisno pri programiranju Ponga da pokrenem koju muzikicu.

  8. #8
    Senior Member Small step for mankind
    Datum registracije
    Aug 2007
    Lokacija
    Latitude:45.286° Longitude:18.688°
    Postova
    2.150
    Imam osjećaj da je ova zajednica kol'ko tol'ko oživjela.
    Gdje je nestao mozak
    gdje se skriva on
    iz vagona pameti
    na tračnice ispao...

  9. #9
    Senior Member My way or the highway
    Datum registracije
    Dec 2006
    Lokacija
    Behind the blue eyes
    Postova
    7.757
    = Citat = Izvorno postao Iron Storm
    Samo daj, a ja ću to pokušati prevesti u Visual Basic. Bit će mi korisno pri programiranju Ponga da pokrenem koju muzikicu.
    Sve ti je isto samo sta dodajes jedan mali .bat fajl za VB.
    A imas sve u manualu inace.

    Ok danas navecer dajem drugi tutorial za mp3 fajlove.

  10. #10
    Senior Member My way or the highway
    Datum registracije
    Dec 2006
    Lokacija
    Behind the blue eyes
    Postova
    7.757
    Tutorial ce malo kasnit zbog hypa - nova godina itd

    molim sticky.

  11. #11
    Senior Member Small step for mankind
    Datum registracije
    Aug 2007
    Lokacija
    Latitude:45.286° Longitude:18.688°
    Postova
    2.150
    Eto, dobio si svoj sticky, nemoj me ostaviti sam da pišem tutoriale.
    Gdje je nestao mozak
    gdje se skriva on
    iz vagona pameti
    na tračnice ispao...

  12. #12
    Senior Member My way or the highway
    Datum registracije
    Dec 2006
    Lokacija
    Behind the blue eyes
    Postova
    7.757
    Necu

  13. #13
    Senior Member My way or the highway
    Datum registracije
    Dec 2006
    Lokacija
    Behind the blue eyes
    Postova
    7.757
    FOMOD TUTORIAL DIO 2


    SPosto su ljudi pozitivno odgovorili na prvu seriju tutoriala o FMOD- api-u ovaj put cu se koncentirati na mp3 fajl koji je po samom formatu,velicini i kvaliteti drukciji od recimo .mod ili .midi zapisa. Naravno odma cemo i koristiti drukcije funkcije koje nam daje FMOD za pozivanje tih istih zapisa jer nemozemo istim funkcijama pozivati takve fajlove posto nisu isti.

    Preporucam da procitate malo u FMOD manualu o takvim zapisima i zasto ih nebi mogli pozivat kroz naredbe koje smo prosli put koristili (nego moramo ih prvo loadat u memoriju pa potom reproducirat) isto tako objasnit cemo kada i sta cemo koristiti i koje su prednosti nekih naredbi nad drugima


    Pa... zapocmimo

    Evo code -a :

    Code:
    #include <iostream>
    #include <fmod.h>
    #include <string>
    using namespace std;
    char a;
    
    FSOUND_STREAM *pjesma = NULL;
    
    
    int main () {
    
    
    
    	FSOUND_Init(44000, 64, 0);
    
    
    
    	pjesma = FSOUND_Stream_Open ("hyb.mp3" , FSOUND_2D , 0 ,0);
    FSOUND_Stream_Play(0,pjesma);
    
    cout << "Upisite ""kraj" "za izlaz " << endl;
    	cin >> a;
    
    return 0;
    Uglavnom za mp3 fajlove se prvo ucitava "Stream" jer se mp3 file u ovom slucaju nece ponavljat puno puta, a zatim citamo Stream iz pointera.

    Ajmo objasnit sta koji dio radi.

    FSOUND_STREAM *pjesma = NULL;

    - u c++ se sve mora deklarirat pa tako i varijabla pjesma, gdje kazemo compileru da je rezultat NULL. Ako ovo ne napravite onda cete dobivat razne errore a to nam netreba jedal

    FSOUND_Init(44000, 64, 0);

    -Standardno, prije svakog ucitavanja moramo zadat parametre FMOD-u, tj. napraviti initalzaciju znaci standardni 44000 mix na 44000 herza i 32 slobodna kanala za reprodukciju .mp3 fajla

    pjesma = FSOUND_Stream_Open ("hyb.mp3" , FSOUND_2D , 0 ,0);

    Evo, tu inicijaliziramo onu varijablu "pjesma" da bude zapravo "hyb.mp3" jer cemo tu varijablu poslje koristiti da je otvorimo uz pomoc FSOUND_Stream_Play. znaci prvo navedemo putanju do naseg fajla, zatim zadamo parametar u ovom slucaju FSOUND_2D za 2d muzicku podlogu ( mogao je to biti neki drugi parametar recimo FSOUND_LOOP da se pjesma stalno ponavlja) i dva puta 0,0 jer nam drugi parametri zasad nisu potrebni

    FSOUND_Stream_Play(0,pjesma);

    Napokon, otvaramo kroz FSOUND_Stream_Play nas fajl, znaci prvo 0 jer nam nisu potrebni kanali koje moze FSOUND sam izabrat jer imamo i tako 32 slobodna, zatim ide varijabla pjesma a ako se sjecate u tu varijablu smo "stavili" nas hyb.mp3 fajl.

    Sada vam je zadatak zapamtiti sve komande koje smo koristili za "Manje" fajlove recimo .mod ili .midi i za "Vece" recimo .mp3 u ovom primjeru.


    Drugi put cemo uciti kako mozemo "zapakirati" nase muzicke fajlove skupa s fmod.dll i onda to prosljedit drugim ljudima koji nemaju taj fajl i fmod.dll instaliran tako da mogu bez problema slusati, da vam otkrijem, koristiti cemo program zvan MoleBox - ali o tome cemo drugi put.

    Otvoren za komentare,podrsku,pitanja.

    Do sljedeci puta.

  14. #14
    Senior Member Small step for mankind
    Datum registracije
    Aug 2007
    Lokacija
    Latitude:45.286° Longitude:18.688°
    Postova
    2.150
    Lijep, kratak i zanimljiv tutorial. Keep it up!
    Gdje je nestao mozak
    gdje se skriva on
    iz vagona pameti
    na tračnice ispao...

  15. #15
    Senior Member My way or the highway
    Datum registracije
    Dec 2006
    Lokacija
    Behind the blue eyes
    Postova
    7.757
    U tom i jest poanta, da napisem kratko i simple da je razumljivo vecini - a ako netko ima problema - slobodno pita.

    I sad cu se vise koncentriati na seriju c++ basic video tutoriala s glasovnom podrskom itd. ali zasad imam problema s codecima jer neznam koje da izaberem, neki imaju prednosti nad drugim ali i opet druge mane.
    Snimao bi samo windows sucelje + govorio u mikrofon (ali audio codec nije problem nego video) i snimio bi to poslje u .avi - ali dosta puta je ili fajl prevelik,ili su boje sve retardirane ili je snimka losa dok je u Camtasiji preview dobra cim ode u .avi postane i ona retardirana.

  16. #16
    Senior Member Giant leap for forum
    Datum registracije
    Oct 2006
    Lokacija
    Hostile universe
    Postova
    3.468
    Jesi probao Windows Media Encoder? Ako se ne varam, on je sposoban on-the-fly snimati ekran i enkodirati sliku i zvuk u WMV.

  17. #17
    Senior Member My way or the highway
    Datum registracije
    Dec 2006
    Lokacija
    Behind the blue eyes
    Postova
    7.757
    Pa, iskreno, nisam ali mislim da bi i camtasia dobro trebala obavljat posao.
    Kroz ovaj tjedan cu probat jos par codec-a ali bio bi vrlo zahvalan ako bi me cimnuo na msn posto sam uvijek mrzio to drkanje oko codeca itd.

    Hvala.

  18. #18
    Senior Member My way or the highway
    Datum registracije
    Dec 2006
    Lokacija
    Behind the blue eyes
    Postova
    7.757
    SKoristenje MoleBox-a


    SPitali ste se kako vas program "Napraviti da radi mom frendu kad mu posaljem bez da mu saljem sve potrebne dll-ove ili muzicke fajlove koji sviraju u tom programu " ? . Imam odgovor na vasa pitanja. Odgovor je = MoleBox

    SMole box je "packer" - a to znaci da uz pomoc ovog programa mozete sve file-ove koji su potrebni vasem programu (recimo za nase programe su nam bili potrebni fmod.dll u istom direktoriju di je i program i naravno muzicki file koji bi se na kraju krajeva svirao i morao je biti isto u istom direktoriju gdje je i program. Znaci, uz pomoc ovog programa cete "zapaketirat" sve potrebne file-ove koje koristi vas program - u sam "exe" tj. svi ti potrebni file-ovi ce biti "zapakirani" u vas program - a to znaci da uz vas program frendu necete trebat slat i razne .dll fileove i sve sta ide uz njega

    MoleBox mozete nabaviti na ovom linku :
    http://www.molebox.com/

    Uglavnom, ko zeli PRO i registriranu verziju morat ce me kontaktirat putem MSN-a ili P.M.-a.

    Kad ste nabavili MoleBox - prvo sta cete primjetiti jest da je vrlo lagan za koristenje - naravno ako znate sta morate postavit i ako razumijete sto zelite postici.

    Evo jedno objasnjenje kroz sliku

    http://img258.imageshack.us/img258/3563/moleboxwb2.jpg

    Mislim da puno objasnjenja nije potrebno, nakon sta "ubacite" sve potrebne fileove samo stisnete "Pack to box" i nakon minutu-dvije (ovisno o velicini programa i fileova koje pakirate) dobit cete vas program u kojem su svi potrebni fileovi za njegovo pravilno izvodjenje.

    Ako imate kakvih pitanja, ili vam nesto ne radi slobodno me kontaktirajte.

  19. #19
    Junior Member Plants Vs Zombies
    Datum registracije
    Jun 2010
    Lokacija
    Našice (okolica)
    Postova
    13

    Re: [Tutorial]SFMOD C++

    Da te pitam..vidim da je ovo dosta zastarila tema...

    Jel ovaj tutorial još uvijek vrijedi? mislim imam ovaj novi visual studio2010 express, a i FMOD verzija je dosta porasla... probo sam po ovom tutorialu, al baš mi ne ide... a sad jel to zbog toga što nisam dosta truda uložio ili ovaj tutorial više ne vrijedi?
    "Only death ends a battle. Everything else only interrupts it."

    [center:3p6nle5j]Last.fm[/center:3p6nle5j]

Slične teme

  1. Tutorial za Victoriu
    By Torpedo in forum Pomagaj brate!
    Odgovora: 1
    Posljednji post: 02-08-2010, 04:00
  2. [Tutorial] C++
    By RayDX in forum Programiranje i izrada igara
    Odgovora: 85
    Posljednji post: 11-10-2009, 17:45
  3. [Tutorial] OpenGL through C++
    By RayDX in forum Programiranje i izrada igara
    Odgovora: 6
    Posljednji post: 21-11-2008, 17:02
  4. Uvod u Pygame Tutorial
    By fps_gamer in forum Programiranje i izrada igara
    Odgovora: 13
    Posljednji post: 27-09-2008, 21:15
  5. [Tutorial] DirectX through C++
    By RayDX in forum Programiranje i izrada igara
    Odgovora: 55
    Posljednji post: 25-09-2008, 13:02

Pravila postanja

  • Ne možeš stvarati nove teme
  • Ne možeš odgovarati na postove
  • Ne možeš slati privitke
  • Ne možeš mijenjati svoje postove
  •