Jump to content
Jagware
Sign in to follow this  
GT Turbo

Branche la hifi !!

Recommended Posts

GT Turbo    5

Cts a expliquer le problème. Car jouer un son numérique 'sample', c'est pas difficile, on envoie juste dans le bon canal (Droite ou gauche) les 16 bits lu et c'est tout a une certaine vitesse (Fréquence de replay)

 

 

 

Sur un Yamaha, tu as a a la base pour chaque voie deux registres (Frequence et volume).

 

 

 

Donc je cherchais a savoir comment par exemple générer un son a une fréquence de 440 Hz ? Sur le Yamaha tu rentrais ta valeur dans le registre de fréq et tu règlais ton volume, alors je mets tout mes trucs ou ? :wacko:

 

 

 

C'était la question car j'ai du mal a voir la chose. Je vais en profiter pour poser quelques questions concernant le son, car la dedans j'ai aucune connaissance.

 

 

 

Si on veut par exemple situer un son a 70% a droite, on a juste a mettre les 70% de la valeur (16 bits) dans le registre droit et les 30% dans le canal gauche ?

 

 

 

Par contre Cts, merci pour l'info concernant les replays de fréquence sur les soundtrackers, plusieurs fois la question me trottait dans la tête puis je l'oubliais !! :wacko:

 

 

 

Et pour mixer deux voies, nous sommes d'accord un add les deux et on div par 2 ?

 

 

 

Cela peut vous paraitre très niveau maternelle mes questions, mais je profites d'avoir des personnes qui s'y connaissent pour agrandir ma culture sonore !

 

 

 

GT Curieux ;)

Share this post


Link to post
Share on other sites
GT Turbo    5
cts :


- faut preparer les enveloppes

- preparer un signal carré





J'ai pas la doc sous la main, mais pour certaines enveloppes, on peut pas utiliser les tables internes du Dsp ?



Par contre on va peut ètre avoir un tout petit soucis concernant le replay de SID, car je sais pas si c'est le cas de toutes les musiques ou spécifiques a la routine de replay, mais il me semble qu'il va falloir 3 timers et on en a que deux sur le Dsp de la Jag.





GT Affranchi (Je sors.....) :P



(Frost m'a passé deux adresses de personnes qui pourraient avoir les sources des routines de replay, j'attends les réponses.)

Share this post


Link to post
Share on other sites
Orion_    1
GT Turbo :


Et pour mixer deux voies, nous sommes d'accord un add les deux et on div par 2 ?



non surtout pas div par 2

Share this post


Link to post
Share on other sites
GT Turbo    5
Orion_ :


Citation
GT Turbo :

Et pour mixer deux voies, nous sommes d'accord un add les deux et on div par 2 ?



non surtout pas div par 2





Si tu div pas par 2, il va vite y avoir saturation, imagine que ta première voie tape haut (Numériquement parlant) comme avec 65500 et l'autre fait pareil, tu atomises le registre car tu additionnes deux valeurs 16 bits, ca risque pas de tenir dans un registre 16. Et le résultat au niveau sonore risque de pas ètre le bon ?



Cts, Zerosquare si quelqu'un peut nous apporter ces lumières !! Car ceci n'est qu'une supposition.



GT ;)

Share this post


Link to post
Share on other sites
Zerosquare    10

Effectivement, pour ce genre de cas il y a deux solutions :

 

 

 

- Prédiviser les données par le nombre de voies, et faire une simple addition ensuite. Ça évite les problèmes de débordement, mais plus tu auras de voies, plus la qualité du son sera dégradée puisqu'en divisant tu perds de la précision.

 

 

 

- Faire les calculs sur plus de 16 bits et diviser ensuite par le nombre de voix. Plus de problèmes de perte de qualité dans ce cas, c'est la meilleure solution à mon avis, et c'est ce que font les logiciels de traitement audio (ils utilisent 32 bits ou plus en interne pour les calculs intermédiaires).

 

 

 

En plus, si ton nombre de voies est une puissance de 2, tu peux (mais tu t'en doutais sûrement :D) remplacer la divison par un shift droit arithmétique ou logique (suivant que les données sur lesquelles tu travailles sont signées ou pas).

 

 

 

Pour le mixage stéréo, oui c'est comme ça que ça marche, après on utilise souvent des échelles de volume non-linéaires qui sont plus "naturelles" à l'oreille.

Share this post


Link to post
Share on other sites
GT Turbo    5
Zerosquare :


Effectivement, pour ce genre de cas il y a deux solutions :



- Faire les calculs sur plus de 16 bits et diviser ensuite par le nombre de voix. Plus de problèmes de perte de qualité dans ce cas, c'est la meilleure solution à mon avis, et c'est ce que font les logiciels de traitement audio (ils utilisent 32 bits ou plus en interne pour les calculs intermédiaires).





C'est une aubaine, le Dsp faisant tout en 32 bits, pour une fois qu'un truc colle !!



Zerosquare :


En plus, si ton nombre de voies est une puissance de 2, tu peux (mais tu t'en doutais sûrement :D) remplacer la divison par un shift droit arithmétique ou logique (suivant que les données sur lesquelles tu travailles sont signées ou pas).





Lsl Power !! :P



Zerosquare :


Pour le mixage stéréo, oui c'est comme ça que ça marche, après on utilise souvent des échelles de volume non-linéaires qui sont plus "naturelles" à l'oreille.





Je vais juste reposer ma question concernant ma répartition 70-30, est ce que c'est comme je l'ais écrit précédemment ?



Un domaine bien riche et 'vachement' interressant que celui du son !! :yes:



Ca donne de plus en plus envie de faire du traitement sur le son !! :yes:



GT Ultra intérressés !!

Share this post


Link to post
Share on other sites
Orion_    1

GT Turbo : le musicien est la pour regler le volume de chaque voie :D

 

si tu lui baisse le volume automatiquement il risque de raler ^^

Share this post


Link to post
Share on other sites
Zerosquare    10

Je viens de mesurer sur mon synthé avec une carte son, et la courbe n'est pas linéaire. Cela dit, j'ai déjà fait des tests en utilisant ta méthode, et ça marche très bien aussi... Au pire il suffit d'implémenter une petite table de correspondance en RAM.

 

 

 

(Je rêve, ou l'utilité du tchat se fait vraiment sentir en ce moment ? :D)

Share this post


Link to post
Share on other sites
Zerosquare    10

Au fait, puisqu'on parle de son sans en entendre : si vous êtes intéressé, je peux mettre en ligne un MP3 de démo d'un moteur audio que j'ai fait il y a quelques temps. C'est le même genre de synthèse que le 2149, mais avec 32 voix au lieu de 3 :P

 

 

 

(bon, ç'a été fait en C, à l'arrache, en virgule flottante, presque pas optimisé, mais c'était pour tester une idée, donc il faut écouter sans penser au code :)

Share this post


Link to post
Share on other sites
SCPCD    0
Zerosquare :


Toi, tu l'as déjà entendue...



Mais euh...

Citation


d'ailleurs ça vaut le coup à ton avis ?



Moi j'ai aimé et je pense que ca peut donner une idée au autres le resultat.

Comme tu veux ;)

Share this post


Link to post
Share on other sites
RaZ    0

Sans vouloir faire le mesquin, en fait si, disons en faisant le terre à terre si vos routines prennent plus de cpu (sans parler de la place mémoire d'une des puces) qu'un bon vieux soundtrack 8 voies, c'est pas gagné pour s'en servir. :P

 

Maintenant si vous voulez vous déchirer sur les écrans d'intros, faites vous plaisir.

Share this post


Link to post
Share on other sites
Orion_    1

Zerosquare > ton moteur audio il tourne en temps réel avec un sound buffer ou tu fait un rendu dans un fichier wav ?

 

ça m'interesserais beaucoup d'essayer un peu la programmation sonore mais j'ai jamais réussi a trouvé un tutorial ou un bout de code pour faire un simple soundbuffer qui ce lis en boucle dans lequel je puisse écrire :D

 

si tu avais un petit tutorial ou morceau de code la dessus je serais très interessé ^^ (sur pc bien sur :))

Share this post


Link to post
Share on other sites
GT Turbo    5
RaZ :


Sans vouloir faire le mesquin, en fait si, disons en faisant le terre à terre si vos routines prennent plus de cpu (sans parler de la place mémoire d'une des puces) qu'un bon vieux soundtrack 8 voies, c'est pas gagné pour s'en servir. :P

Maintenant si vous voulez vous déchirer sur les écrans d'intros, faites vous plaisir.





C'est une routine 'd'essais', Zerosquare l'a dit lui meme en virgule flottante, en C pas optimisé après faut voir, pour certains cas de jeux cela peut aller après faut voir ce qu'on veut en faire c'est sur que 32 voies ca défoule !!



GT Sans voix !! :wacko:

Share this post


Link to post
Share on other sites
cts    0

Zerosquare:

 

 

 

 

 

Fantastique !

 

Je rève de ce genre de synthèse pour la Jag!

 

 

 

La compo c'est de toi ?

 

 

 

Par contre je trouve pas que ça sonne comme du YM , tu procède comment exactement ?

Share this post


Link to post
Share on other sites
Zerosquare    10

Content que ça vous plaise :)

 

 

 

Orion_ > Pour des musiques moins complexes, oui ça tourne en temps réel... en bouffant quasiment 100% de temps CPU sur mon Athlon 2600+ (quand je disais que c'était pas optimisé, hein :D ). La démo que vous avez entendue a été rendue dans un fichier WAV.

 

Tu disposes de quoi pour développer sur ton PC ? Je pourrais bricoler un petit prog simple que chacun pourra utiliser pour faire ses tests (j'ai bien des routines persos déjà faites, mais elles sont en assembleur et assez bordéliques :) ), et un petit tuto avec.

 

 

 

cts >

 

cts :

 

La compo c'est de toi ?

 

 

Ah je l'attendais celle-là :D J'aimerais bien... mais en fait c'est du Tchaikovsky.

 

Pour la synthèse, j'utilise des signaux carrés avec une enveloppe linéaire pour l'attaque et le relâchement de la note. Je ne connais pas trop le YM, donc c'est possible que ma comparaison soit fausse.

 

 

 

Pour tous > Je ne sais pas trop si ce genre de synthèse est réaliste pour la Jag, même avec un algo différent... Il y a encore pas mal de boulot à faire là-dessus. (C'est toujours un problème de temps entre les études, le futur métier qui se profile, le reste... :( )

Share this post


Link to post
Share on other sites
Azrael    0

Bon, je préviens tout de suite, je vais faire un méga cross pour répondre à la question de GT : comment on fait un LA 440Hz...

 

 

 

<mode math>

 

signal de sortie :

 

 

 

En virgule flottante non discrétisé :

 

amplitude * sin(t*2*pi*440)

 

 

 

En discrétisé avec un échantillonage à 44.1 Khz :

 

amplitude * sin(n*2*pi*440/44100)

 

<mode math>

 

 

 

Si j'ai bien tout compris et si je ne me suis pas trompé dans mon calcul, faut balancer tout ça dans la sortie audio...

Share this post


Link to post
Share on other sites
Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×