540

Pour la table des notes, tu calcules la fréquence moyenne et tu en déduis la note. (Divise par 440 Hz, et prend le logarithme de base la racine 12ème de 2 pour avoir la différence en demi-tons par rapport au LA de référence.) Il est certainement plus simple de partir de l'onde carrée et d'en déduire la note que l'inverse. Après, tu jettes les fréquences qui sont trop loin d'un demi-ton entier, ainsi que les ondes qui donnent le même demi-ton qu'une autre onde avec une distorsion plus faible, et tu finiras bien par avoir une table de notes utilisable.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

541

Le problème c'est que je n'ai pas assez de fréquences sad
Tu pense que je peux aller à combien de fréquence audibale avec 8khz?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

542

à partir de 20 Hz elles sont audibles

543

Donc ça ferait beaucoup de fréquence, mais faut que je trouve l'algos me permettant de jouer des fréquence à partir de 20 hz jusqu'à 8khz sad

Pourtant c'est juste histoire d'un compteuir qui s'incrémente tout 8192 fois par seconde, à moins que ça ne soit pas la bonne solution.

Quand je fait ça:
-Si Compteur=fréquence alors impulsion j'ai pas beaucoup de fréquence juste 47 différente.
-Si compteur>=Compteur fréquence là j'ai plus de fréquence mais seulement 63.
-Si j'utilise des distorsion donc un autre compteur là j'en ai plus mais inutilisable mais toujours avec une base de 47 différente sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

544

Tu approximes.
Par exemple, tu as 1 interruption toutes les 1/8192 secondes, c'est-à-dire 0,122 ms. Tu veux obtenir un LA de 440 Hz, c'est-à-dire de demi-période 1/880 secondes, c'est-à-dire 1,136 ms.
Donc:
1ère interruption: on est à 0, il reste 1,136 ms
2ème interruption: on est à 0, il reste 1,014 ms
3ème interruption: on est à 0, il reste 0,892 ms
4ème interruption: on est à 0, il reste 0,770 ms
5ème interruption: on est à 0, il reste 0,648 ms
6ème interruption: on est à 0, il reste 0,526 ms
7ème interruption: on est à 0, il reste 0,404 ms
8ème interruption: on est à 0, il reste 0,282 ms
9ème interruption: on est à 0, il reste 0,160 ms
10ème interruption: on est à 0, il reste 0,034 ms. Hop, c'est moins de 0,122/2=0,061 ms, donc on passe à 1. Il reste donc 1,136+0,034=1,170 ms.
11ème interruption: on est à 1, il reste 1,048 ms
12ème interruption: on est à 1, il reste 0,926 ms
13ème interruption: on est à 1, il reste 0,804 ms
14ème interruption: on est à 1, il reste 0,682 ms
15ème interruption: on est à 1, il reste 0,560 ms
16ème interruption: on est à 1, il reste 0,438 ms
17ème interruption: on est à 1, il reste 0,316 ms
18ème interruption: on est à 1, il reste 0,194 ms
19ème interruption: on est à 1, il reste 0,072 ms
20ème interruption: on est à 1, il reste -0,050 ms. Hop, c'est moins de 0,122/2=0,061 ms, donc on passe à 0. Il reste donc 1,136-0,050=1,086 ms.
21ème interruption: on est à 0, il reste 0,964 ms
etc.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

545

Je vais essayer ça, mais c'est ce que je fait en ce moment je pense mais toujours est-t-il que je n'ai pas beaucoup de fréquences sad
J'essaye ça demain. Merci Kevin.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

546

Ben, théoriquement, tu devrais pouvoir approximer n'importe quelle fréquence inférieure ou égale à 8 KHz avec ça. Mais je n'ai aucune idée de ce que ça donnera en pratique.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

547

Par contre un truc que je trouve bizarre, pour toi le temps que le Port I/O soit à 5 v correspond à la fréquence en Hz mais le temps entre chaque créneaux quand le Port est à zéro ça correspond à quoi. C'est d'ailleurs avec ça que j'ai du mal. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

548

La période totale (1/f), c'est la période où le port est à 1 (5 V) plus la période où il est à 0 (0 V).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

549

Merci Kevin, je vais réfléchir à un autre algorithme. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

550

J'ai fait tra méthode Kevin ce qui est identique à la mienne mais je ne l'avais pas vue comme ça et j'ai que 47 notes différentes mais parfaite.

Voici l'algo en ASM:
frequence_voice2:
move.l d0,-(a7)
move.w frequency_voice2,d0
cmp.w _fcounter2,d0
bne son_2


clr.w _fcounter2
bchg #0,($60000E)

son_2:
move.l (a7)+,d0
rts


Je pense qu'il y a une autre méthode pour jouer beaucoup de fréquence avec une qualitée moins bonne mais je ne la trouve pas. Celle avec des distorsions fonctionne bien mais faut que je vois comment régler ça.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

551

Ton algorithme n'est pas identique au mien!
Tu ne tiens pas compte des restes fractionnels. Tu ne peux donc jouer que des notes dont la période est multiple entier pair de la période de l'interruption. L'algorithme que je décris, en revanche, te permettrait d'obtenir n'importe quelle période moyenne. (Du moins en théorie. N'ayant pas de montage de son, je n'ai pas pu essayer si l'oreille perçoit ça bien comme voulu.)
Relis mieux le message #543!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

552

Ce que tu fais est:
float T_int=0.122;
float T_note;

DEFINE_INT_HANDLER(soundint)
{
  static int counter=0;
  counter++;
  if (counter>=(int)(T_note/T_int)) {
    invert_speaker();
    counter=0;
  }
}

alors que ce que je propose de faire est:
float T_int=0.122;
float T_note;

DEFINE_INT_HANDLER(soundint)
{
  static float counter=0.;
  counter+=T_int;
  if (counter>=T_note-(T_int/2.)) {
    invert_speaker();
    counter-=T_note;
  }
}

J'espère que tu vois la différence là!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

553

Mais cette algo me permet d'obtenir n'importe quel période suivant frequence donc la durée du port étant à 1 est identique à la durée du port étant à 0 comme en témoigne mon oscilloscope. La variation de frequence est faible seulement d'une interruption.

Je t'assure Kevi même si je m'éloigne de ta méthode je peux t'assure que c'est la même car je peux jouer un LA de 440 hz... Mais j'ai qu'un table de 4 octaves ce qui est faible pour moi avec 8khz.

Je dois chercher une autre méthode me permettant je pense de faire des fréquence plus précise de au dixième prêt peut être....
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

554

geogeo
a écrit : Je dois chercher une autre méthode me permettant je pense de faire des fréquence plus précise de au dixième prêt peut être....

Mais c'est exactement ça la différence entre ma méthode et la tienne!!!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

555

En effait je vois la différence mais j'ai fait un algo aussi du genre:
play_voice1:
move.l d0,-(a7)
move.w frequency_voice1,d0
add d0,_fcounter1
cmp.w #$7FFF,_fcounter1
bge son_1
tst.w frequency_voice1
beq son_1

clr.w _fcounter1
bchg #0,($60000E)

son_1:
subq.w #1,_ucounter1
move.l (a7)+,d0
rts

Je sais pas ce que tu pense de ça mais théoriqument il fait des fréquence plus précise et cette algos me donne 67 notes au lieu de 47 comparé à celui d'avant.

Il faut savoir qua ma librairie est en ASM car il faut de la vitesse, beaucoup de vitesse, hors je ne peux pas faire ça en C.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

556

Post croisé tout à l'heure excuse moi kevin, j'ai bien compris ta solution, je vais d'ailleurs mis plonger mais tu m'as proposé des float hors en ASM, je ne peux en faire et c'est long à gérer
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

557

Utilise la virgule fixe. Tu n'as certainement pas besoin de plus de précision qu'à un 256ème d'interruption près, donc tu peux travailler avec une virgule fixe codée sur 16 bits (8 pour la partie entière, 8 pour la partie fractionnelle).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

558

Au fait, si j'ai bien compris ton algorithme du message #554, tu y es presque. Essaye de mettre:
play_voice1:
move.l d0,-(a7)
move.w frequency_voice1,d0
add.w d0,_fcounter1
[b]lsr.w #1,d0
neg.w d0
add.w #$8000,d0
cmp.w _fcounter1,d0[/b]
bcc son_1
tst.w frequency_voice1
beq son_1
 
[b]sub.w #$8000,_fcounter1[/b]
bchg #0,($60000E)
 
son_1:
subq.w #1,_ucounter1
move.l (a7)+,d0
rts
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

559

Ce qui est étonnant Kevin avec ta méthode c'est que j'ai 2 notes différente sur un canal, c'est a dire que je possède cette fois environ 100 notes différente mais à partir de la 100 ème, j'ai une note qui devient de plus en plus aigus et l'autre grave tout ça sur une anceinte donc 1 canal, c'est vraiment formidable.

Kevin tu est un dieu mais cette algos n'ai pas parfait je vais le modifier et voir d'ou vient la façon d'obtenir 2 voies sur une anceinte.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

560

Je vous remercie vraiment tous de votre aide car en effet avec tout vos informations et en les rassemblant, je peux créer la table des notes et là je pense arriver à 8 octaves sans problèmes.
Vraiment merci smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

561

Aujourd'hui je viens de finir de développer la table des notes qui compte 120 notes avec 10 octaves différente ce qui est vraiment génial, PolySnd possède 3 fonctions:
-beep=joue une fréquence avec une durée précise
-PlayFx=joue des sons basé de la fréquence 20 à 32000
-PlaySound=joue des musiques
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

562

J'ai finit la table des notes, la fonctions de gestions de fichier musicaux...
Reste plus que le problème des pause à régler et quelque fonctions à ajouter.

-Jai testé une musique de 41 secondes 'arkanoid' en noir et blanc et la qualitée est vraiment superbe, merci vraiment kevin. smile

-Par contre en niveaux de gris, là la qualitée diminuer d'environ 1 octaves est le tempo est plus lent, là je reléve 47 secondes pour jouer la musique.

Si vous savez dout viet le problème ça pourrais vraiment m'aider, ce problème n'ai pas grave car même avec des niveaux de gris la qualitée est satisfaisante.

A votre avis si je rajjoute dans mon interruption une gestion des niveaux de gris, est-ce que le résultat serat identique?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

563

C'est parce que l'interruption des niveaux de gris version HW2 désactive toutes les autres pour le temps dont elle a besoin pour tourner de manière à éviter les clignotements.

Avec les routines de TIGCC, essaye move.l #$2400,__gray_int1_handler_hw2+4 (hack très sale!!!), avant d'appeler GrayOn pour voir si ça change quelque chose.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

564

Merci Kevin je vais essayer ça.

Mais comment je fait pour intégrer cette ligne dns un projet en C ?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

565

bah, avec de l'asm inline
asm("........");


edit: correction d'une faute de frappe
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

566

Ca marche pas, j'ai undefined reference to __gray_int1_handler_hw2 et $2400. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

567

faut pas compiler en kernel ????
http://membres.lycos.fr/pingooz/
Un cafe et deux sucres

568

Ca ni change rien.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

569

je crois qu'ils traitent ce genre de problême dans la doc de tigcc (je n'en suis pas sur, mais j'ai eu un probleme similaire il n'y a pas trés longtemps)
http://membres.lycos.fr/pingooz/
Un cafe et deux sucres

570

J'ai cherché dans la DOC et je ne trouve rien, je suis vraiment nul. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.