img
@_ö
(21:25)  Bienvenue ! - Inscrivez vous pour poster ! -
@Boo + 27 inconnu(s)

Login :  Mot de passe :      Se souvenir de moi.  Mot de passe perdu ?
/!\:: Cliquez ici pour vous inscrire et poster, créer des sujets ou des forums ! ::/!\
 « Précédent - 2/4 - Suivant » :: Pages
 Index » Forum informatique & développement :: Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (96r) » Génération de son et fichiers WAVE
./29 - REPRISE AUTOMATIQUE DU MESSAGE PRECEDENT
16.06.2001 - 55190
20:45  squalyl - Posté : 12-10-2011  M   Signaler un abus Signaler un contenu inapproprié

chapo!
Zeph (./25) :
Je déphase chaque harmonique pour éviter d'avoir des pics trop hauts, mais c'est un déphasage bidon donc ça ne sert surement à rien (il faudrait que je trace visuellement le signal pour vérifier)

les déphasages sont potentiellement utiles non? je sais pas trop.
Regarde ce que donne la fft, normalement tu obtiens un résultat complexe x(f)+iy(f), l'amplitude c'est sqrt(x^2+y^2) et la phase arctan2(y,x). Normal.

pour info c'est quoi les amplitudes relatives de chaque harmonique par rapport au fondamental? :D


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./Publicité AdSense
./30
13.06.2002 - 37284
23:09  @Zeph - Posté : 12-10-2011  M   Signaler un abus Signaler un contenu inapproprié

squalyl (./29) :
les déphasages sont potentiellement utiles non? je sais pas trop.

Utiles certainement, mais bien fichus dans mon algo basique, sûrement pas :D

pour info c'est quoi les amplitudes relatives de chaque harmonique par rapport au fondamental? :D

Quand tu fais la FFT du signal produit par l'enregistrement d'une note d'instrument, et que tu prends sa valeur absolue, tu obtiens une courbe qui présente un pic très net pour chacune des harmoniques de ta note. Dans mon cas, un "la" au piano donne après FFT-isation une courbe avec un pic correspondant à 440hz, un autre à 880hz, un autre à 1760hz et ainsi de suite. Ce sont les ordonnées correspondant à ces pics que j'ai récupérées et que j'utilise comme coefficients pour les harmoniques de chaque note que je veux ensuite jouer. Par contre je colle une enveloppe commune à la fréquence de base et ses harmoniques, et ça c'est peut-être extrêmement faux, j'en sais rien ^^


HA! I knew someone was alive in here. AH! Oh. My. God. You look terrible - ummm... good. Looking good, actually.
------------------------------------------
Mirari² :: It offers what you want, not what you need
3l33t :: Relax, we understand j00 ^^
./31
16.06.2001 - 55190
23:30  squalyl - Posté : 12-10-2011  M   Signaler un abus Signaler un contenu inapproprié

oui je sais bien, je te demandais justement les rapports d'amplitude que tu as utilisé :D

genre pour un signal rectangulaire c'est
1 -> 1
2 -> 0
3 -> 1/9
4 -> 0
5 -> 1/25
2n -> 0
2n+1 -> 1/((2n+1)^2)
etc

pour un signal triangulaire c'est
1 -> 1
2 -> 0
3 -> 1/3
4 -> 0
5 -> 1/5
2n -> 0
2n+1 -> 1/(2n+1)

(je crois, de mémoire)

et pour un son "pianolaire" c'est quoi?

(sinon je pense que l'enveloppe est commune vu qu'elle enveloppe tout le signal modui)
edit: ptet pas en fait mais je pense que t'es pas loin comme ça, si tu veux finasser tu peux essayer de faire décroitre plus vite les harmoniques, qui s'amortiront plus vite que le fondamental.

et puis sinon bon courage: http://www.google.fr/search?hl=fr&q=software+synthesizer&gs_sm=e&gs_upl=2436l6065l0l7003l20l15l2l0l0l2l731l5599l0.1.1.7.3.1.1l15l0&bav=on.2,or.r_gc.r_pw.,cf.osb&biw=1280&bih=591&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi modlove


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./32
13.06.2001 - 67899
00:02  Nil - Posté : 13-10-2011  M   Signaler un abus Signaler un contenu inapproprié

Juste pour info, parce que quand j'étais en classe de composition & informatique musicale on faisait de la synthèse sonore (mais pas à aussi bas niveau :D on utilisait des outils graphiques pour fabriquer des sons d'instrument avec de la synthèse additive, soustractive et à modulation de fréquence)...
Comme exercice de base, on nous faisait faire un son de clarinette. Il y a des sons plus simple à synthétiser (flûte et cor dans l'aigu) sur le plan harmonique, mais c'est tellement simple que ça ne ressemble pas du tout à l'instrument réel (qui, vu le peu d'harmoniques en jeu, sont plus définis par leur transitoire d'attaque et leur enveloppe que par les harmoniques).
Pour faire une clarinette, donc, on prend les harmoniques impaires et uniquement celles-ci. Bon, c'est un son "approchant" la clarinette, bien sûr, et il manque toujours le transitoire d'attaque et l'enveloppe générale, mais ça sonne vite correctement :) .
Ensuite, comme second exercice, on devait fabriquer l'enveloppe d'une note de piano, avec n'importe quel son ; on arrive ainsi rapidement à faire des choses très sympa (qui se rapprochent des sons de clavinet de la seconde partie du XXème siècle).


www.brumeries.info

12, rue des Brumeries disponible

Nous sommes de bons jardiniers et yaronet est un merveilleux jardin. (Hippopotame)
./33
16.06.2001 - 55190
00:18  squalyl - Posté : 13-10-2011  M   Signaler un abus Signaler un contenu inapproprié

intéressant :)


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./34
13.06.2002 - 37284
00:27  @Zeph - Posté : 13-10-2011  M   Signaler un abus Signaler un contenu inapproprié

./31 : oh pardon ^^

Pour les exemples de ./20, j'ai utilisé ça comme coefficients :
static const double	factors[] = {1.00f, 0.50f, 0.40f, 0.45f, 0.36f, 0.01f, 0.30f};


J'ai aussi essayé de pousser un peu plus loin avec ça, mais c'est encore moins bon :
static const double	factors[] = {4.50f, 2.01f, 1.30f, 1.50f, 1.24f, 0.10f, 0.70f, 0.10f, 0.60f, 0.55f, 0.50f, 0.55f, 0.80f, 0.30f, 0.50f, 0.55f, 0.26f, 0.26f, 0.10f, 0.10f, 0.10f, 0.05f};


(c'est de l'estimation 100% pifométrique d'après le graphe de la courbe :D )


HA! I knew someone was alive in here. AH! Oh. My. God. You look terrible - ummm... good. Looking good, actually.
------------------------------------------
Mirari² :: It offers what you want, not what you need
3l33t :: Relax, we understand j00 ^^
./35
30.06.2001 - 49999
01:06  Godzil - Posté : 13-10-2011  M   Signaler un abus Signaler un contenu inapproprié

Rien ne vaux le Linear Arithmetic :o ;)

Honnêtement bravo pour ce que tu as fait ^^


Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-

./36
16.06.2001 - 55190
08:00  squalyl - Posté : 13-10-2011  M   Signaler un abus Signaler un contenu inapproprié

./34 ok, merci :)


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./37
13.06.2001 - 67899
09:27  Nil - Posté : 13-10-2011  M   Signaler un abus Signaler un contenu inapproprié

Godzil (./35) :
Rien ne vaux le Linear Arithmetic img img
Oui, mais c'est une synthèse qui utilise des échantillons, donc c'est pas vraiment de la synthèse "pure" (où tu pars vraiment de zéro).


www.brumeries.info

12, rue des Brumeries disponible

Nous sommes de bons jardiniers et yaronet est un merveilleux jardin. (Hippopotame)
./38
04.05.2005 - 2354
11:56  RHJPP - Posté : 13-10-2011  M   Signaler un abus Signaler un contenu inapproprié

./34 Pour une meilleure estimation des amplitudes et des fréquences, tu pourrais utiliser les méthodes haute résolution au lieu d'une transformé de Fourrier :)



./39
27.04.2006 - 30207
14:54  Zerosquare - Posté : 13-10-2011  @_ö   Signaler un abus Signaler un contenu inapproprié

Certes, mais ça reste de la synthèse additive, qui est pas vraiment adaptée pour les sons de piano :)


Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
./40
30.06.2001 - 49999
15:01  Godzil - Posté : 13-10-2011  M   Signaler un abus Signaler un contenu inapproprié

Nil (./37) :
Godzil (./35) :
Rien ne vaux le Linear Arithmetic img img
Oui, mais c'est une synthèse qui utilise des échantillons, donc c'est pas vraiment de la synthèse "pure" (où tu pars vraiment de zéro).

Les échantillons sont apriori généré a la volée suivant le matos que tu utilise, et les échantillons ne sont pas forcement des son d'instruments


Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-

./41
27.04.2006 - 30207
15:06  Zerosquare - Posté : 13-10-2011  @_ö   Signaler un abus Signaler un contenu inapproprié

L'attaque est tout de même générée en utilisant un sample ;)


Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
./42
30.06.2001 - 49999
15:32  Godzil - Posté : 13-10-2011  M   Signaler un abus Signaler un contenu inapproprié

Rien n'empeche bob de faire la meme chose :o


;)


Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-

./43
13.06.2002 - 37284
11:02  @Zeph - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

Bon, comme la génération de son fait appel à trop de connaissances que je n'ai pas, j'ai modifié mon machin pour utiliser des .wav comme instruments. C'est fait de façon assez immonde, je n'ai qu'une seule note (un DO moyen) par instrument, et les échantillons sont étirés ou compressés selon le besoin pour atteindre la note voulue.

J'imagine que c'est une version très (très) rudimentaire de ce que font les formats Downloadable Sound (.dls) et Soundfont (.sf2), mais ils ont l'air l'un comme l'autre assez costauds à implémenter. Pour le premier je n'ai pas pu mettre la main sur une spec, et pour le deuxième j'ai pris peur rien qu'à voir tous les paramètres de modulation du son :D

Bref du coup je peux convertir pas mal de musiques MIDI avec une qualité bien pourrie, ça reste amusant comme résultat mais je suis pas sûr que ce soit la bonne direction à prendre ^^



HA! I knew someone was alive in here. AH! Oh. My. God. You look terrible - ummm... good. Looking good, actually.
------------------------------------------
Mirari² :: It offers what you want, not what you need
3l33t :: Relax, we understand j00 ^^
./44
13.06.2001 - 67899
12:42  Nil - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

C'est pas mal, on dirait du MOD #love#


www.brumeries.info

12, rue des Brumeries disponible

Nous sommes de bons jardiniers et yaronet est un merveilleux jardin. (Hippopotame)
./45
16.06.2001 - 55190
13:21  squalyl - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

pour décaler un signal en fréquence "il suffit de" multiplier chaque échantillon par exp(i delta_omega t)

enfin je crois, tu peux toujours tester, ça pourrait faire des trucs rigolos.

ça marche sur des complexes, donc au départ chaque échantillon n'a qu'une partie réelle et la partie complexe est nulle, et tu obtiendras des complexes, donc faudra en prendre la norme sqr(x^2+y^2) (ou bien alors juste la partie réelle, je crois pas mais on sait jamais)

http://music.columbia.edu/pipermail/music-dsp/2005-February/062795.html


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./46
11.11.2001 - 108882
13:24  @vince - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

J'ai envie de gerber, ça me rappelle les cours de traitement du signal à l'iut


Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // http://www.yaronet.com/posts.php?s=6238
./47
16.06.2001 - 55190
13:26  squalyl - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

Corrélation!

Dirac!

Hilbert!

Pôle!

Shannon!

Bon tu devrais avoir l'estomac vide là %)


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./48
11.11.2001 - 108882
13:42  @vince - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

gerb6


Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // http://www.yaronet.com/posts.php?s=6238
./49
30.06.2001 - 49999
13:57  Godzil - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

Nil (./44) :
C'est pas mal, on dirait du MOD #love#

Forcement, c'est comme ça que ça marche #hehe#


Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-

./50
13.06.2001 - 67899
14:24  Nil - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

Vivi, je sais, même si la sortie n'est pas un wav mais la sortie son ^^


www.brumeries.info

12, rue des Brumeries disponible

Nous sommes de bons jardiniers et yaronet est un merveilleux jardin. (Hippopotame)
./51
16.06.2003 - 25853
14:59  Sally - Posté : 18-10-2011  F   Signaler un abus Signaler un contenu inapproprié

Zeph > maintenant tu peux essayer de générer un fichier stéréo à partir d’une description 3D de la position des sources sonores #oui#


« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Forum Cultures du mondeforum littéraire
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#
./52
27.04.2006 - 30207
15:37  Zerosquare - Posté : 18-10-2011  @_ö   Signaler un abus Signaler un contenu inapproprié

Zeph > pas mal du tout ! #top#

squalyl > nan #non# :D
Ton truc c'est de la modulation AM, ça fait une translation dans l'espace fréquentiel : si tu as par exemple le mélange d'un sinus à 100 Hz (f1) et d'un autre à 220 Hz (f2), et que tu modules à 100 Hz (f3), tu obtiens en sortie un sinus à 200 Hz (f1 + f3), mais aussi un à 320 Hz (f2 + f3), un à 0 Hz (f1 - f3) et un à 120 Hz (f2 - f3).

Ce qu'il faut c'est une homothétie (un truc qui conserve les rapports de fréquence), par exemple avec un rapport 2 si tu veux décaler d'une octave vers le haut, du coup tu obtiens un sinus à 200 Hz et un autre à 440 Hz.

(Les deux sont équivalents seulement si le signal est un sinus pur.)

L'homothétie ça s'obtient en réenchantillonnant, la méthode la plus simple c'est (pour chaque échantillon de sortie) :
échantillon_sortie = échantillon_entrée[pos];
pos += fréq_sortie / fréq_entrée;

Bon évidemment on obtient des valeurs de pos qui ne sont pas entières. Y'a des algos pour évaluer mathématiquement la valeur du signal échantillonné entre les échantillons, mais ils sont assez lourds. En pratique une interpolation "classique" donne de bons résultats ; rien qu'une interpolation linéaire, c'est déjà beaucoup mieux que rien. Perso je le fais avec une polynôme d'ordre 3 (je prends les 2 échantillons avant la position, les 2 après, je calcule l'équation du polynôme qui passe par ces 4 points, et je l'évalue en x = le point que je cherche), et les résultats sont très corrects à l'oreille.


Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
./53
13.06.2002 - 37284
16:03  @Zeph - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

C'est bien la première solution que j'ai utilisée ; j'ai voulu faire une interpolation linéaire dans un premier temps mais ça a donné absolument n'importe quoi, donc par flemme je suis repassé à un ré-échantillonnage "au plus proche" et c'est probablement ça qui donne un son aussi crasseux.

Il faudra que je réessaie avec des méthodes moins mauvaises, mais ça ne sera jamais aussi bon que ce qu'on peut avoir avec des échantillons multiples pour chaque instruments (+ plein de constantes que je ne sais pas utiliser, ne connaissant pas les équations dans lesquelles les utiliser), du coup je suis pas super motivé ^^

Sally : oui, mais pour l'instant je ne gère pas (du tout) le stéréo donc il y a des étapes avant :D


HA! I knew someone was alive in here. AH! Oh. My. God. You look terrible - ummm... good. Looking good, actually.
------------------------------------------
Mirari² :: It offers what you want, not what you need
3l33t :: Relax, we understand j00 ^^
./54
16.06.2003 - 25853
16:03  Sally - Posté : 18-10-2011  F   Signaler un abus Signaler un contenu inapproprié

(Le plus facile c’est quand même de monter d’une octave tout en multipliant le tempo par 2 #oui# )


« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Forum Cultures du mondeforum littéraire
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#
./55
16.06.2001 - 55190
16:59  squalyl - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

(cross) c'est exactement ce qu'il fait, mais ça sux, ça change la durée du son. Il faut interpoler puis filtrer pour éviter l'aliasing.

et pour info, mon opération c'est un mélange, pas un AM, donc upconversion/downconversion. Et comme on le fait en complexe, on fait un mélange avec deux signaux en quadrature, donc si je parlais de radio, on dirait que j'ai un modulateur de BLU. Tu prends le spectre et tu le décales.

Tu fais de la modulation AM uniquement si tu mélanges avec un sinus (ou un signal réel).

En faisant un mélange avec un complexe, tu annules le lobe gênant du spectre qui apparaitrait en AM.

Et ça fait exactement ce qu'il faut: une translation fréquentielle pour obtenir toutes les notes à partir d'un sample unique, plutôt que de changer la fréquence d'échantillonnage du sample, qui change aussi sa durée.


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./56
27.04.2006 - 30207
17:09  Zerosquare - Posté : 18-10-2011  @_ö   Signaler un abus Signaler un contenu inapproprié

Non, tu te plantes. Ce que tu décris c'est du pitch-shifting, et :
- c'est plus complexe qu'un réenchantillonnage, et il y a une dégradation de qualité qui fait que ce n'est pas avantageux pour générer des notes
- ça ne se fait avec de l'hétérodynage. t'as qu'à essayer sur un extrait de musique si tu me crois pas :p


Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
./57
16.06.2001 - 55190
17:13  squalyl - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

on est bien d'accord en fait, le pitch shifting c'est de la modulation BLU, mais c'est pas grave :D que la qualité soit éventuellement pourrite c'est autre chose, a mon avis il faut un signal suréchantilloné à la base, et des filtres passe-bas après l'opération.

http://en.wikipedia.org/wiki/Single-sideband_modulation
en fait tu fais la somme de 2 modulations AM en quadrature de phase, ce qui annule la bande latérale qui t'intéresse pas, j'avoue que c'est sournois.

Moi j'attends que Zephyr tente de l'implémenter et poste un résultat :p

Zephyr, t'as compris ce qu'on veut te faire expérimenter? :D

img img img

cette expression te donne les samples de n'importe quelle note en se basant uniquement sur ton sample original et la fréquence que tu veux. et tous les samples auront la même longueur.

s chapeau est le conjugué, pour ton signal réel ça change rien.


For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./58
13.06.2002 - 37284
17:21  @Zeph - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

Heu ouais enfin teste toi-même, mon temps ne suffit déjà pas pour mes propres expérimentations, je vais pas implémenter les vôtres :D


HA! I knew someone was alive in here. AH! Oh. My. God. You look terrible - ummm... good. Looking good, actually.
------------------------------------------
Mirari² :: It offers what you want, not what you need
3l33t :: Relax, we understand j00 ^^
./59
16.06.2001 - 55190
17:22  squalyl - Posté : 18-10-2011  M   Signaler un abus Signaler un contenu inapproprié

boaf c'est pas compliqué pourtant. et puis t'as eu le temps pour rééchantilloner tes samples, alors tu peux bien remplacer cette fonction par un machin qui multiplie par des cosinus nan? :p

(et je préfère passer mon temps à mélager des fréquences plus élevées que de l'audio :D )

Edité par squalyl le 18-10-2011 à 17:23:59.

For most people, good enough is near enough. For the few, good enough is never enough.
Nspire wiki
CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES
./Publicité AdSense
 « Précédent - 2/4 - Suivant » :: Pages
 Index » Forum informatique & développement :: Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Algorithmie et optimisation (96r) » Génération de son et fichiers WAVE

./Poster un nouveau message. - Ouvrir dans une nouvelle fenêtre
Login : Mot de passe :

url - image - media  
spoiler - pre - fixed
quote - box - hr
poll - code





Smileys
Smileys perso
Pièce jointe
     Flood control (?) :    
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

» yN ©1624 - Aide / Charte / Crédits
40ms | Statistiques