Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab

17 mai 2019 : accident de la base de données : plus d'infos

#1 2007-01-03 22:44:08 OpenAL & synthèse [c++, exe win]

Staross
membre
Date d'inscription: 2008-04-03
Messages: 322

OpenAL & synthèse [c++, exe win]



Hop un petit morceau/programme (une démo) en c++ en utilisant OpenAl :

citation :

OpenAL is a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications.

http://www.openal.org/

Le programme génère les formes d'ondes (sinus, kick, klick, square) au démarage et après une bête boucle les jouent ou changent les paramètres (pitch surtout) en fonctions du temps.

Instruction :

Dézipper, lancer "Synth.exe". Le reste c'est les sources pour les hypothétiques intéressés.

On pourrait "facilement" (ça demande juste du travail) rajouter d'autres formes d'ondes, faire de la modulation d'amplitude, de fréquences, du granulaire ou une partie graphique ou faire un vrai morceau.

La génération du kick (pour la beauté de la chose) :

 ALshort kick[44100];
  ALdouble amp[44100];
  ALdouble frequence[44100];
  
  //amplitude
  for (int t=0; t < 44099; t++)
  {
    amp[t]=32000 - t*32000/44099;
  }
	
  //frequence
  for (int t=0; t < 44099; t++)
  {
    frequence[t]=freq - t*freq/20000;
		
    if (frequence[t] < 20)
       frequence[t] = 0;
  }
	
  //kick
  for (int t=0; t < 44099; t++)
  {
    kick[t]=amp[t]*sin(2*PI * frequence[t]*t/44100);
  }

Bon après c'est facile à utiliser pour jouer un kick :

//on le déclare (le paramètre est la fréquence) :
SKick kick2(250);

//on définit un volume
kick2.setGain(0.6);

//pis on le joue
kick2.play();

Si ça intéresse quelqun on peut en discuter object

Hors ligne

 

#2 2007-01-04 10:57:48 Re : OpenAL & synthèse [c++, exe win]

tobald
modérateur
Date d'inscription: 2008-03-28
Messages: 499

Re: OpenAL & synthèse [c++, exe win]



Ca a l'air intéréssant , ça me permetrait peut être de me mettre un peu au C.
Je regarde ça dès que j'ai un peu de temps.

Merci

3D audio API : ça signifie quoi API ?

Hors ligne

 

#3 2007-01-04 10:59:48 Re : OpenAL & synthèse [c++, exe win]

osc
membre
Date d'inscription: 2005-09-09
Messages: 99
Site web

Re: OpenAL & synthèse [c++, exe win]



Ah oui, ça m'interesse grandement tout ça !!
J'y jete un oeil et je repasse en discuter  zjoy



edit : le game over final laisse tourner une boucle en continue impossible à stopper... (et l'appli plante :s)
Aussi, à quoi sert le fichier "onde.txt" ? Il est généré ?

Hors ligne

 

#4 2007-01-04 11:17:17 Re : OpenAL & synthèse [c++, exe win]

osc
membre
Date d'inscription: 2005-09-09
Messages: 99
Site web

Re: OpenAL & synthèse [c++, exe win]



citation :

3D audio API : ça signifie quoi API ?

API : Application Programming Interface (donc Interface de programmation)

Hors ligne

 

#5 2007-01-04 11:31:32 Re : OpenAL & synthèse [c++, exe win]

Staross
membre
Date d'inscription: 2008-04-03
Messages: 322

Re: OpenAL & synthèse [c++, exe win]



En fait c'est un ensemble de fonctions que des gens en géneral plus compétents que toi on programmé et que tu peux utiliser sans trop savoir comment ça marche exactement dedans (il faut juste savoir comment les utiliser : connaitre l'interface). Par exemple OpenAl gère tout ce qui concerne la carte son, le chargement de fichiers, la spatialisation ; tu peux donner des coordonnées 3D à une source sonore et au l'auditeur (source et auditeur sont des concepts définit dans openal) et ça te spatialise le son en conséquence.

Comme autre API's par exemple y'a OpenGL (graphisme 3D), PortAudio qui serait peut-être plus approprié qu'OpenAl pour une application audio, ou des trucs plus simple avec des fonctions mathématiques (sinus, etc).

http://fr.wikipedia.org/wiki/Bibliothèque_logicielle


Normalement pour stopper l'apli à la fin il faut entre quelque chose au clavier et presser entré.


>Aussi, à quoi sert le fichier "onde.txt" ? Il est généré ?

Oui c'est un truc de déboggage que j'ai oublié d'enlever, ça écrit l'onde génerée dans un fichier text, ça permet de regarder la tête qu'elle a après avec matlab.

Hors ligne

 

#6 2007-01-04 11:39:35 Re : OpenAL & synthèse [c++, exe win]

tobald
modérateur
Date d'inscription: 2008-03-28
Messages: 499

Re: OpenAL & synthèse [c++, exe win]



Apres dezippage , lançage de l'exe il ne trouve pas le chemin vers  OpenAl32.dll... je ne peux donc tester.

étrange...

Hors ligne

 

#7 2007-01-04 11:41:46 Re : OpenAL & synthèse [c++, exe win]

Staross
membre
Date d'inscription: 2008-04-03
Messages: 322

Re: OpenAL & synthèse [c++, exe win]



Bizzare, t'en as pas besoin normalement. Essai avec ça.
A mettre dans le même dossier que l'apli ou dans windows/system32

Hors ligne

 

#8 2007-01-04 11:49:43 Re : OpenAL & synthèse [c++, exe win]

tobald
modérateur
Date d'inscription: 2008-03-28
Messages: 499

Re: OpenAL & synthèse [c++, exe win]



Pour info le dll était dans un dossier lib , dans ton premier zip.
En l'ajoutant dans System 32 de win ça tourne nickel.

Je dois dire que je trouve ça super enthousiasmant et que ça me donne direct envie de modifier tes sources pour voir un peu ce qui se passe.
L'idéé de créér de petites applis ou des démos de A à Z me motive bien.

A suivre ...

Hors ligne

 

#9 2007-01-04 11:52:49 Re : OpenAL & synthèse [c++, exe win]

osc
membre
Date d'inscription: 2005-09-09
Messages: 99
Site web

Re: OpenAL & synthèse [c++, exe win]



Le C++ est quand meme un langage relativement contraignant  gate
C# ne serait t'il pas plus approprié ?

Hors ligne

 

#10 2007-01-04 12:04:00 Re : OpenAL & synthèse [c++, exe win]

Staross
membre
Date d'inscription: 2008-04-03
Messages: 322

Re: OpenAL & synthèse [c++, exe win]



C# ! Hérésie !

Non heu, moi le c++ j'aime bien. Et puis dans ce genre Java serait mieux non ?

Si tu veux modifier les sources Tobald je te conseil devcpp :

http://www.bloodshed.net/devcpp.html

Tu peux ouvrir le fichier .dev que y'a dans le zip et c'est parti.

Hors ligne

 

#11 2007-01-04 12:09:40 Re : OpenAL & synthèse [c++, exe win]

osc
membre
Date d'inscription: 2005-09-09
Messages: 99
Site web

Re: OpenAL & synthèse [c++, exe win]



Bah perso je ne code pas en C.. et c'est vrai que j'aurai plus tendance à partir sur du Java (où les normes sont plus proche de mes facons de coder)

Je vais me risquer quand meme aussi à modifier les sources pour mieux cerner le truc  zgnark

Hors ligne

 

#12 2007-01-04 15:58:23 Re : OpenAL & synthèse [c++, exe win]

tobald
modérateur
Date d'inscription: 2008-03-28
Messages: 499

Re: OpenAL & synthèse [c++, exe win]



Pour le C++ mon frangin pourrait m'aider. De plus y'a pas mal de "trucs" à ce sujet sur les forums Buzz (les machines sont codées en C++) 
Mon seul contact avec la programmation c'était appliquer des cheatcodes en utilisant le langage de l'Assembleur de mon C64.

je choppe dev Cpp

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2020