Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 6559
Réponses : 31
Type : discussion
Etat : réponses autorisées

Faites de la musique avec votre TI.

alexvire le 05/07/2010 à 16:11
Bonjour, en m'inspirant d'un programme déjà existant, j'avais fais un programme en ASM permettant de produire des sons, le voilà: (Pour entendre les sons, voir ici.)

ZSOUND: (Ne faites pas d'erreurs !)
Code
F306D078D300CD8E42213A803641CDEC4ECDFC4E43C5CD8E42213A803642CDEC4ECDFC4E63C1C53E
FFD300440010FD3EFCD300440010FDC110ECFBC9
End
0000
End


Pour le faire fonctionner, entrez une valeur comprise entre 0 et 255 dans les variables A et B puis faites Envoi(9prgmZSOUND) pour produire un son. Biensûr vous pouvez créer un programme (A l'aide des boucles "For(" par exemple.) qui change les valeurs des variables tout en lançant le programme ASM. Les valeurs de A sont le tempo tandis que celles de B sont la sonorité. (Grave ou aigu.)
Akmdad le 05/07/2010 à 17:53
bravo pour ton prog!
voici Piano, qui va avec!
a utiliser en tournant la calto écran a droite et les toutes les touches!
Code

100->A
Lbl 1
codetouche->C
C/10->C
partDéc(C)×2->D
partEnt(C)+D->C
C×10->C
C×2+20->B
If C>20
Envoi(9prgmZSOUND
Goto 1
Akmdad le 06/07/2010 à 03:49
c'est génial l'ASM
Akmdad le 06/07/2010 à 16:40
pas de remerciements???
Rézus le 06/07/2010 à 19:59
Je crois que personne n'a encore testé.
Akmdad le 06/07/2010 à 20:40
testez-le alors
Rézus le 08/07/2010 à 11:37
J'ai pas les écouteurs qui vont avec.
Akmdad le 08/07/2010 à 11:48
moi non plus mais t'as une radio reglable am, fm?
Rézus le 08/07/2010 à 11:50
Oui mais la fréquence ne va que jusqu'à 160 en AM.
Et puis ici il faut brancher des écouteurs ou des hauts parleurs à la Ti
Akmdad le 08/07/2010 à 11:53
faux, tu peux utiliser l'AM enfin si t'y arrive...moi sa marche a 702
Mégaforce22 le 19/11/2011 à 19:21
j'ai les écouteurs mais j'attends d'être sur ordi(je suis sur téléphone là) pour télécharger l'ASM car c'est risqué à la main et que j'ai pas de backup à jour.

Edit: cela ne marche pas.
Sangohan38 le 19/11/2011 à 20:21
Double post, remontage de sujet ... Toi tu commence mal.

Sinon, essaye avec la radio en mode AM.

Sangohan38
charlesjean le 05/11/2012 à 18:49
je vous met tous au défi d' écrire une belle mélodie avec
ce prgm en mettant les numéros correspondant aux notes dans une liste(pas plus de 999 notes!)
Code
dim(La->c
200->A
for(e,1,c
La(e)->b
Envoi(9prgmNOM DU PRGM
End

(La=liste a)
ld le 05/11/2012 à 19:05
Bravo pour ton prgm ! Excellent ! bigmouth.gif
Pour ma part j'ai les écouteurs avec la prise Jack compatible.
Charlesjean je relève le défis de faire jouer Für Elise à cette calto ! bigmouth.gif
charlesjean le 05/11/2012 à 20:16
bonne idée,voici quelqu'un de courageux!
ld le 06/11/2012 à 18:07
Charlejean ? notgood.gif
Euh... L’intervalle entre deux valeurs de B ne semble pas proportionnel à la fréquence.
Si on imagine par exemple:
B=100 alors F=400Hz
alors la suite:
B=200 alors F=800HZ
n'est pas vrai.
De plus la durée des notes semble aussi se raccourcir en allant pour une même valeur de A.
Cà ne va pas être simple.
C'est normal tout çà ? ahh.gif

Question qui n'a aucun rapport:
Comment fait'on sur ce forum pour mettre des liens vers ses programmes, de façon a ce que l'adresse n'apparaisse pas s'il vous plait ? Du genre cliquer "ici".
linkakro le 06/11/2012 à 19:00
Il me semble probable que les fréquences soient générées par une division de la fréquence de la calculatrice par B+constante ou 2^B. (on effectuerait une temporisation entre deux impulsions de son)

[url=http]ici[*/url]
ld le 06/11/2012 à 19:16
Non je ne pense pas que ce soit "B + constante"...
Pour l'autre c'est probable mais d'où sors-tu 2^B ? Comme çà ?? crazy.gif
Merci pour [url=http]ici[/url] winkle.gif
Tu as fait une erreur il y avait une étoile * en trop.
linkakro le 06/11/2012 à 21:29
2^B parce qu'imbriquer des boucles ou utiliser de la récursivité permet de simuler un diviseur de fréquence.
En électronique logique on utilise des bascules Toggle synchrones en série, chaque bascule divisant la fréquence de l'horloge par 2. B bascules divisent par 2^B.
f=F/2^B
(ici je néglige la durée d'execution des instructions qui simuleraient le diviseur)

B+constante parce qu'une boucle peut temporiser de B cycles, et qu'il faut tenir compte des cycles d'execution de la boucle.
Cependant je me suis trompé en l'énonçant, ce serait f=1/(B+cst)

EDIT: il est encore plus simple d'incrémenter un/des registres/variables et de tester le bit B pour arriver à une division de fréquence par 2^B.

Ou bien les exeperts de l'assembleur on trouvé une autre méthode.
Dans tous les cas je manque d'expérience.

Cependant on peut chercher expérimentalement des notes.

L'étoile permettait d'être sûr que tu visses (verbe voir) le code source.
ld le 06/11/2012 à 21:34
PARIS GAGNE ! bigmouth.gif
https://tout82.pages-perso.fre[...]age=48305#48305
grmycaire le 29/11/2013 à 19:22
moi quand je fais Envoi(9prgmZSOUND il y a une erreur syntaxe.
m@thieu41 le 29/11/2013 à 19:46
Bonjour,
As-tu bien mis le
Code
End
0000
End

à la fin de ZSOUND ?
Tu as bien une ti 82stats.fr?
grmycaire le 29/11/2013 à 22:20
j'ai bien mis End:0000:End à la fin du prog et j'ai relus le programme 9*10^99 fois. je possede bien une ti 82 stats fr
linkakro le 30/11/2013 à 00:02
Ton problème est-il résolu depuis cette réponse ?
https://tout82.pages-perso.fre[...].php?sujet=3961
grmycaire le 30/11/2013 à 11:31
oui c'est bon.
joni le 18/12/2013 à 16:25
bonjour,
voila: je ne m'y connais pas très bien en programmation et j'ai rentrer tous le programme comme il faut mais je ne sais pas comment l'utiliser
merci cupsmiley.gif
m@thieu41 le 18/12/2013 à 19:43
Bonjour,

As tu essayé ça?
Citation
Pour le faire fonctionner, entrez une valeur comprise entre 0 et 255 dans les variables A et B puis faites Envoi(9prgmZSOUND) pour produire un son. Les valeurs de A sont le tempo tandis que celles de B sont la sonorité. (Grave ou aigu.)
R0cks1 le 15/12/2014 à 21:31
Akmdad a écrit :
moi non plus mais t'as une radio reglable am, fm?


en fm c'est quelle fréquence ? pck j'ai pas la radio am moi ahh.gif cry.gif
linkakro le 15/12/2014 à 22:25
Aucune idée. Et l'article de alexvire (Alexy dans son forum) déjà mentionné indique AM, pas FM.
http://web.archive.org/web/202[...]-sur-la-ti.html

Je ne suis même pas certain que les valeurs des signaux admettent l'approximation de Bessel d'ordre 0 qui est indispensable pour approcher une équivalence entre les deux.
p:porteuse, n:modulant, m:modulé
Amplification modulation (situation cos*cos) : um=un*up=(an*cos(wn*t))*(ap*cos(wp*t))
um=ap*an/2*(cos(wp-wn)+cos(wp+wn))
J'ai supposé les valeurs moyennes nulles pour faire plus joli.
Frequency modulation : um=ap*cos(wp*t+an*cos(wn*t))
Si an est négligeable, je ne me souviens plus exactement devant quoi, alors la FM est très proche de la modulation AM, même spectre
ld le 16/12/2014 à 12:00
Voici les fréquences pour lesquels çà fonctionne happy.gif
En AM, sur les ondes moyennes (MW) :
690, 920 et 1150 KHz.

Et une page pour jouer quelques notes :
https://tout82.pages-perso.fre[...].php?sujet=3527
R0cks1 le 16/12/2014 à 16:22
linkakro a écrit :
Aucune idée. Et l'article de alexvire (Alexy dans son forum) déjà mentionné indique AM, pas FM.
http://web.archive.org/web/202[...]-sur-la-ti.html

Je ne suis même pas certain que les valeurs des signaux admettent l'approximation de Bessel d'ordre 0 qui est indispensable pour approcher une équivalence entre les deux.
p:porteuse, n:modulant, m:modulé
Amplification modulation (situation cos*cos) : um=un*up=(an*cos(wn*t))*(ap*cos(wp*t))
um=ap*an/2*(cos(wp-wn)+cos(wp+wn))
J'ai supposé les valeurs moyennes nulles pour faire plus joli.
Frequency modulation : um=ap*cos(wp*t+an*cos(wn*t))
Si an est négligeable, je ne me souviens plus exactement devant quoi, alors la FM est très proche de la modulation AM, même spectre


J'ai juste demandé si ça marchait en FM et si oui quelle fréquence c'était en général !
linkakro le 16/12/2014 à 16:38
T'inquiète ça m'amuse juste de réviser même si cela ne sert à rien.
Et merci ld pour la réponse.