π
<-

Joue tes partitions sur le TI-Innovator avec ta 83 Premium

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Joue tes partitions sur le TI-Innovator avec ta 83 Premium

Unread postby critor » 08 Oct 2016, 14:04

7289Aujourd'hui après le code Morse nous allons te proposer un nouveau projet construit, autour du périphérique TI-Innovator de cette rentrée 2016.
Il s'agit encore une fois d'utiliser son buzzer intégré, mais de façon différente. ;)

70367035Au salon de l'Orme 2.16 à Marseille en juin dernier, Texas Intruments démontrait à l'aide d'un mini programme qu'il était possible de jouer de la musique, ci-contre même si ça ne s'entend pas un petit extrait de bon anniversaire.

Mais voilà le problème. A partir d'une partition de musique, comment obtenir de façon simple et juste, la liste des fréquences jouables ?



Problématique à laquelle répond le projet d'aujourd'hui, MUSICATOR.
Le projet définit une façon textuelle de retranscrire de façon simple et complète des partitions :
  • notation anglaise unicaractère des notes : C=Do, D=Ré, E=Mi, F=Fa, G=Sol, A=La, B=Si
  • caractère espace pour un silence
  • chiffres pour spécifier la durée des notes/silences suivants : 8=ronde, 7=blanche, 6=noire, 5=croche...
  • possibilité de régler l'octave de façon absolue avec O0, O1, ... O9, ou bien relative en demandant le passage à l'octave supérieur/inférieur avec les caractères * ou ,
  • support des altérations dièse, bémol ou point de la note ou du silence précédent, à l'aide des caractères +, - et .
  • et même, possibilité de préciser librement le rythme en bpm (battements par minute, c'est-à-dire nombre de noires par minute) en début de texte :bj:

Quelques exemples de retranscriptions simples :
  • gamme majeure ascendante : CDEFGAB*C
  • gamme mineure ascendante : CDE-FGA-B-*C
  • gamme chromatique ascendante : CC+DD+EFF+GG+AA+B*C

Deux outils permettent alors :
  • la compilation de ces transcriptions texte en listes de fréquences+durées jouables
  • la lecture de ces liste sur le TI-Innovator si connecté

La seule contrainte est que le TI-Innovator ne représente qu'un seul et unique instrument à une seule voie.
A moins d'en avoir plusieurs et autant de calculatrices compatibles, ne pourront donc être retranscites sans modifications :
  • les partitions faisant jouer plusieurs instruments en même temps
  • l'éventuelle partie accompagnement des partitions
  • les partitions demandant à un même instrument de jouer plusieurs notes en même temps

Nous allons voir de suite ce que cela donne avec la vraie partition ci-contre, dont voici la transcription complète :
Code: Select all
128:O35 AAA6AAGECCAAGF7G 6FB-B-B-AGFFAAGF8A6 5AAAA6AGE7C6AAGF7G 5 B-B-B-6B-B-AGFFAAGF7A5 A*CD6 5,AA6*CD7D ..CDEF6E.D5C,A*CD6 7D6DC,AF5FG6AAGF7A5 A*CD6 5,AA6*CD7D ..DDEF6E.D7C6,B-*FFFCF7FF6FFE5,AA6*CDD5,AA*CD6F



Comme tu peux l'entendre, la transcription de la partition est bien correcte. :)



Un petit défaut subsiste toutefois. Ici tout a été fait pour que la calculatrice n'ait rien d'autre à faire pendant la lecture du morceau :
  • compilation à priori de la transcription en une liste de fréquences directement jouable
  • aucun affichage pendant la lecture
Malgré cela, la calculatrice perd du temps entre chaque note, puisqu'il y a un silence non négligeable alors qu'absent de la transcription.
C'est donc le temps perdu à chaque itération de la boucle de lecture.
Nous ignorons la raison exacte de ce retard, mais à notre avis c'est sûrement le temps mis :
  • soit pour envoyer la commande construite au TI-Innovator
  • soit pour construire cette commande, notamment avec la nouvelle instruction eval( du système 5.2 permettant d'inclure une valeur numérique dans une chaîne de caractères
En conséquence, pour que le morceau colle bien avec l'accompagnement, nous avons dû énormément augmenter le rythme.
Au lieu de 128bpm pour du moderately fast, il nous a fallu régler 860bpm.

Si l'on pouvait récupérer le temps perdu dès la première note, on pourrait corriger en rognant sur la durée des notes ou silences ultérieurs. Mais malheureusement, les instructions d'horloge du seul langage Basic retournent toutes un nombre entier de secondes, et ne permettent pas de connaître la fraction de seconde perdue dès la première note. :'(



Au final, encore une fois un projet qui s'inscrirait parfaitement dans le contexte des enseignements de ICE, TPE et ISN au lycée, ou des nouveaux EPI de la réforme du collège depuis cette rentrée.
Dans ce dernier cas, ce serait d'ailleurs une excellent moyen d'associer activement au sein d'un même projet scientifique l'enseignement d'Education musicale, afin de voir avec ses collègues et les élèves comment construire l'ensemble des différentes valeurs de fréquences nécessaires à la lecture de partitions. :bj:



Téléchargement : archives_voir.php?id=687757

Crédits : partition
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41993
Images: 15900
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Joue tes partitions sur le TI-Innovator avec ta 83 Premi

Unread postby critor » 09 Oct 2016, 13:28

Maintenant, plutôt que d'avoir à taper une ligne de caractères, ne serait-il pas possible d'avoir un éditeur visuel de partitions sur calculatrice, qui au final bien sûr sauvegarderait dans ce format ?

Il n'y avait pas ça sur TI-z80 ?
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41993
Images: 15900
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Joue tes partitions sur le TI-Innovator avec ta 83 Premi

Unread postby Adriweb » 09 Oct 2016, 13:30

J'avais plus moins fait ça il y a fort longtemps (il y a 8 ans apparemment), mais bon, je ne garantis rien à ce propos :P
archives_voir.php?id=986

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14746
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Joue tes partitions sur le TI-Innovator avec ta 83 Premi

Unread postby critor » 09 Oct 2016, 13:39

Ce serait sympa de l'adapter, alors :)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41993
Images: 15900
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Joue tes partitions sur le TI-Innovator avec ta 83 Premi

Unread postby critor » 09 Oct 2016, 13:47

Voilà, trouvé le problème qui fait que le rythme du morceau joué n'est pas exact, et donc non-superposable à l'accompagnement sans trucages (dont celui de passer le rythme calculatrice de 128bpm à 860bpm).

Le code donné en exemple par TI pour jouer une note tout en en contrôlant la durée, c'est :
Code: Select all
Send("SET SOUND eval(F) TIME eval(T)
Wait(T


En effet, le Send( n'attend pas que la note ait terminé de jouer avant de redonner la main au programme.

Problème, la durée d'exécution de ce code est nettement supérieure à T, car les eval( et Send( prennent du temps.

On peut mesurer le temps d'exécution avec par exemple STOPWATCH de PT_ :
archives_voir.php?id=438972

En soustrayant T à la valeur obtenue, on obtient le temps perdu, variable mais restant autour de D=0,39s sur ma machine.


Une correction qui a l'air de bien marcher et qui me joue les notes de façon presque continue et en rythme avec l'accompagnement, c'est donc de rattraper le temps perdu en faisant Wait(T-D), au moins pour les notes durant plus longtemps que D.

La mise à jour est prête.
Elle calcule le temps perdu D avec STOPWATCH (car il sera peut-être différent d'une machine à une autre, ce qui finirait alors par se ressentir pour les musiques les plus longues) lors de 2 itérations-test jouant du vent, puis joue tout le morceau en tenant compte de cette valeur D.


Je tenterai de vous faire une nouvelle vidéo montrant l'amélioration. :)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41993
Images: 15900
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Joue tes partitions sur le TI-Innovator avec ta 83 Premi

Unread postby Adriweb » 09 Oct 2016, 13:52

critor wrote:Ce serait sympa de l'adapter, alors :)

Je serai incapable de retoucher à un tel code (du TI-Basic probablement un peu optimisé, écrit assez rapidement pour un concours...), et puis ça nécessitait (du moins pour certaines parties) Omnicalc si mes souvenirs sont bons.

Sur CE, il faudrait faire ça en C, mais pour le moment on n'a pas accès à de l'USB en C, et je crois qu'il n'est pas trivial de faire exécuter des commandes Basic, aussi (mais ça reste à voir...).

Mais bref, c'est probablement un truc bien trop de niche pour que ca vaille le temps passé à essayer de porter ça :P

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14746
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Joue tes partitions sur le TI-Innovator avec ta 83 Premi

Unread postby critor » 09 Oct 2016, 13:56

J'ai juste parlé de la nécessité d'un éditeur plus visuel, pour que chacun puisse écrire facilement ses morceaux.
Pas besoin donc du lecteur, et pas besoin donc de l'USB. :)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41993
Images: 15900
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Joue tes partitions sur le TI-Innovator avec ta 83 Premi

Unread postby Adriweb » 09 Oct 2016, 13:59

Certes, mais ça représente un gros boulot, et c'est certainement pas (plus) moi qui auraient le temps (ni l'envie) de faire un éditeur de partition :P
Mais si certains ont des du temps... go ahead, Basic, C, ou ASM même :P

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14746
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Joue tes partitions sur le TI-Innovator avec ta 83 Premi

Unread postby critor » 10 Oct 2016, 19:01

Voilà, démo de la nouvelle version qui commence par caluler le temps passé dans deux itérations-tests jouant un son inaudible, puis en tient compte pour jouer le morceau avec les itérations suivantes.

Les notes peuvent maintenant être jouées quasiment en continu, le seuls silences étant ceux prévus dans la partition. :)

Donc maintenant, quand en début de partition on précise un rythme de 128bpm, ça joue vraiment en 128bpm ! :bj:
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 48.1%
 
Posts: 41993
Images: 15900
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Joue tes partitions sur le TI-Innovator avec ta 83 Premi

Unread postby Adriweb » 10 Oct 2016, 19:04

C'est effectivement beaucoup plus fluide :)

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14746
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb


Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: No registered users and 4 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1033 utilisateurs:
>973 invités
>53 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)