IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

Noise Machine - truc qui fait du bruit


Sujet :

Projets

  1. #1
    Inactif  
    Homme Profil pro
    c++ java php javascript
    Inscrit en
    Octobre 2013
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : c++ java php javascript
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 374
    Points : 179
    Points
    179
    Par défaut Noise Machine - truc qui fait du bruit
    Présentation du projet:

    Ebauche d'application multimédia expérimentale avec des pixels et du bruit

    Description:

    Pour le moment ce sont des bricolages à travers lesquels j'essaye de reproduire des vieux bruits de techno.

    Utilité:

    Ce projet ne sert strictement à rien.
    Plus tard il servira peut-être à faire une drum machine vintage si j'ai le courage de finir mais pour l'instant je me concentre sur les calculs d'ondes.

    Technologie:

    J'aurais du faire ça avec SDL mais je ne sais plus pour quelle mauvaise raison j'ai fait ça avec xaudio, il faudra faire un portage sur sdl plus tard pour linux, enfin, si j'arrive à finir la version windows.

    Avancement

    Interface graphique = pour l'instant y'a rien, juste un test d'affichage moche qui reproduit approximativement l'écran d'un thomson mo5

    Machine à son = pour le moment y'en a pas, juste toute une bouillie de calculs de tests faits n'importe comment

    Avancement des tests:

    J'ai tenté de tester une onde sawtooth mais le bruit était horriblement agressif, je ne sais pas si c'est dù à une erreur d'amplitude qui aurait produit un effet de saturation, ou si c'est parce que la cassure brutale devrait être remplacée par une pente raide

    J'ai pour l'instant réussi à jouer trois notes de basse prout avec une onde triangle (celle qui faisait la basse de la gameboy) vous pouvez écouter mon oeuvre ici:

    http://vocaroo.com/i/s0KgHe447Hrc

    Ca rend pas grand chose enregistré au micro, chez moi ça fait vibrer les meubles.


    Voilà et je vous mets la partie du code qui calcule ça.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    	float * buf = s_audio;
    	double min=-.5, max=.5;
    	long p;
    
    	// BASER CA SUR LE TEMPO PLUS TARD LA ON FAIT UNE TRIPLE CROCHE PAR SAMPLE
    
    	long tick = s_audiopos / 2048 / 2;
    	bool sound = (bool)s_riff[ tick & 127 ] ;
    	if ( sound ) s_triFrequency = s_notes[ s_riff[ tick & 127 ] - 1 ] / 2;
    
    	
    
    	for ( p=0; p<4096; p+=2 ) {
    
    		/* TRIANGLE WAVE */
    
    		if ( sound ) s_triVol=.9;
    		else s_triVol *= .9999;
    		if ( s_triVol < 0.01 ) s_triVol = 0;
    
    		if ( s_triVol ) { // vibration
    
    			s_triSlope = s_triFrequency * s_triVol * 2.0 / 44100.0;
    			min = -s_triVol;
    			max = s_triVol;
    
    			s_triValue += s_triSide * s_triSlope;
    			if ( s_triSide==1.0 && s_triValue >= max ) {
    				s_triValue = max;
    				s_triSide = -1.0;
    			}
    			if ( s_triSide==-1.0 && s_triValue <= min ) {
    				s_triValue = min;
    				s_triSide = 1.0;
    			}
    
    		} else { // finish vibration
    
    			if ( s_triValue > 0 ) s_triSide = -1.0;
    			else s_triSide = 1.0;
    
    			s_triValue += s_triSide * s_triSlope;
    			if ( s_triSide==1.0 && s_triValue >= 0 ) {
    				s_triValue = 0;
    			}
    			if ( s_triSide==-1.0 && s_triValue <= 0 ) {
    				s_triValue = 0;
    			}
    
    		}
    
    		// pas de gestion stereo pour le moment
    		// je ne sais pas encore comment faire
    		// car les changements brutaux de volume produisent une cassure d'onde
    
    		buf[p  ] = s_triValue ;
            buf[p+1] = s_triValue ;
    
    		s_audiopos += 1;
    	}
    
    
    
    
    
    
    	
    
    	/* SAWTOOTH WAVE */
    	/* cest beaucoup plus simple en fait cest juste pase sur un modulo */
    
    
    	/*for ( p=0; p<4096; p+=2 ) {
    
    		// calculs ici
    
    		if ( sound ) {
    			if ( s_vol < .5 ) s_vol += .0001;
    		} else {
    			s_vol *= .9995;
    		}
    
    		if ( s_vol ) { // vibration
    
    			s_slope = s_frequency * s_vol * 2.0 / 44100.0;
    			min = -s_vol;
    			max = s_vol;
    
    			s_value += s_slope;
    			if ( s_value > max ) { s_value = min; }
    
    		}
    
    		// pas de gestion stereo pour le moment
    		// je ne sais pas encore comment faire
    		// car les changements brutaux de volume produisent une cassure d'onde
    
    		buf[p  ] = s_value ;
            buf[p+1] = s_value ;
    
    		s_audiopos += 1;
    	}*/

    Planning prévisionnel

    Je cherche d'abord à tester bêtement les calculs d'ondes dans un coin, une fois que j'aurais trois types d'ondes qui me conviennent, je structurerai ça proprement avec un tempo, trois pistes, tout ça.

    Là j'ai envie de tester une onde sinus.

    J'ai vraiment la flemme de me remettre sur ce projet parce que c'est pas très amusant de se casser la tête avec plein de calculs tout ça pour faire des bruits moches horribles, j'ai besoin de votre aide pour trouver le courage de continuer.

    Les spécialistes des ondes sonores sont aussi invités à signaler si ils trouvent des erreurs de calcul.
    nous devons inventer la langue de feu pour crâmer la langue de bois

  2. #2
    Inactif  
    Homme Profil pro
    c++ java php javascript
    Inscrit en
    Octobre 2013
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : c++ java php javascript
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 374
    Points : 179
    Points
    179
    Par défaut
    Nouveau test: je viens de réussir à faire une éspèce d'intermédiaire entre la sawtooth et la triangle, en inclinant les pentes pour les rendre asymétriques avec ce calcul crade:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( s_triSide == 1.0 ) s_triValue += 32.0/63.0 * s_triSlope; else if ( s_triSide == -1.0 ) s_triValue -= 32.0 * s_triSlope;
    Donc là ça donne un effet de basse encore plus prout qui rappelle la vieille techno.

    http://vocaroo.com/i/s0CdSXwsik5p
    nous devons inventer la langue de feu pour crâmer la langue de bois

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    690
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2005
    Messages : 690
    Points : 1 647
    Points
    1 647
    Par défaut
    Ca pourrais être sympa d'en faire un instrument VST non ?

  4. #4
    Inactif  
    Homme Profil pro
    c++ java php javascript
    Inscrit en
    Octobre 2013
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : c++ java php javascript
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 374
    Points : 179
    Points
    179
    Par défaut
    Hé bien si je trouve assez de courage/temps/envie pour aller jusqu'au bout du projet, je souhaiterais au final que ça ressemble à un truc de ce genre:



    Bon pas un bête clone hein car on en trouve déjà plein sur android, un truc avec mes sons.
    nous devons inventer la langue de feu pour crâmer la langue de bois

  5. #5
    Inactif  
    Homme Profil pro
    c++ java php javascript
    Inscrit en
    Octobre 2013
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : c++ java php javascript
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 374
    Points : 179
    Points
    179
    Par défaut
    en alternant la triangle et la sawtooth maintenant ça donne ça:

    http://vocaroo.com/i/s1SvP0XsgJYh

    je me demande si j'aurais pas un meilleure effet avec une square à la place de la sawtooth, faut que je teste
    nous devons inventer la langue de feu pour crâmer la langue de bois

  6. #6
    Inactif  
    Homme Profil pro
    c++ java php javascript
    Inscrit en
    Octobre 2013
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : c++ java php javascript
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 374
    Points : 179
    Points
    179
    Par défaut
    Argh je m'aperçois que les calculs sont beaucoup trop approximatifs.
    Tant que j'étais en volume fixe l'aiguille de mon accordeur pointait bien vers le haut, mais quand le volume est modulé ça altère la fréquence.

    Bon... il faut que je recommence ça proprement avec un calcul de phase. je vais peut-être commencer par une square qui est plus facile à calculer (ensuite on relie les points ça fait une triangle)
    nous devons inventer la langue de feu pour crâmer la langue de bois

Discussions similaires

  1. Installer WSS sur une machine qui fait Domain Controller.
    Par leon1983 dans le forum SharePoint
    Réponses: 2
    Dernier message: 17/09/2008, 10h20
  2. [conso] LE truc qui vous fait envie.
    Par Muesko dans le forum La taverne du Club : Humour et divers
    Réponses: 207
    Dernier message: 08/11/2007, 10h52
  3. [Ventilateur] ventilo qui fait un bruit qui tue..
    Par pinouf dans le forum Composants
    Réponses: 8
    Dernier message: 01/09/2006, 14h31
  4. Une bibliothèque qui fait du bruit
    Par shenron666 dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 03/08/2006, 19h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo