Poster un nouveau sujet Poster une réponse
Houston Tracker - Nouveau: support TI83/82STATS
Auteur Message
utz



Autorisation : Membre
Nb de messages : 11
Inscrit le : Jeu 02 Aoû 2012, 16:20
Posté le : Ven 01 Mar 2013, 17:43   Citer 

Salut,

je vous presente - Houston Tracker, un éditeur de musique pour TI.



Download Houston Tracker 0.1

Sound demo

Well, you know I can't speak French, so here's the rest in English:

Houston Tracker is a native music editor for the Z80-based line of Texas Instruments graphic calculators.

This is an early beta, which currently works on TI82 only. Furthermore some important features like copy/paste are not implemented yet. However at this stage I would like to get some input from the community. Also volunteer bug hunters are more than welcome, of course.


Features:

- 1-bit PFM sound (similar to Huby, Octode, SpecialFX)
- 4 tone channels + 2 interrupting drum sounds
- (Pseudo-)Stereo sound (channels hardpanned l/r)
- Compact editor+player
- Linear song data, no patterns


Not done yet:

- Copying/Pasting/Moving data around
- Load/Save multiple songs with internal compression
- Multiple sound routines
- Dumping/Loading song data via PC soundcard
- TI83/85/86 ports


The editor should be pretty intuitive to use, especially if you're already familiar with the concept of trackers. However, it uses hexadecimal input instead of note names. Why on earth, you may ask? Well, RAM space is verly limited on the TI, and there are no fancy flash carts or sd card readers. So I tried to keep the editor as lightweight as possible, and max out space for song data instead. Implementing a note table lookup might easily double the size of the editor Besides, the hex-do has another advantage: you can easily use non-western tuning, make "phat" basslines with detuning, etc... Well, don't worry, the manual includes a pitch-to-hex conversion table. If you feel like making a better one, please do!

Questions? Suggestions? Post them here!

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 01 Mar 2013, 18:09   Citer 

I agree speaking english but it is not a really good idea on a french forum.
It could be useful translating (even with a systran) and put two texts (original and french).

Please be more clear about sound syntax.
I do not understand drum (perhaps because "kick" and "noise" are english music words).

This project sounds me nice and interresting.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Sam 02 Mar 2013, 2:23   Citer 

Fantastique ! Tout simplement génial ! Puisqu'il faut rentrer les notes de musiques en héxadécimal dans ce programme, je compte créer un convertiseur note/Héxa. Il en existe déjà un sur ce furum mais il est basique :
https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=3527 Prgm Note et Elise.
Je voudrai que le nouveau puisse convertir les note de toute les octaves et les fréquences associées en héxadécimal pour ton programme.

Fantastic! Just great! Since we get the musical notes in hexadecimal in this program, I intend to create a convertor note / hex. It already exists on this furum but it is basic :
https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=3527 Prgm Note and Elise.
I want the new note can convert all octaves and frequencies associated hexadecimal for your program.

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
utz



Autorisation : Membre
Nb de messages : 11
Inscrit le : Jeu 02 Aoû 2012, 16:20
Posté le : Sam 02 Mar 2013, 14:30   Citer 


Citer : linkakro
I agree speaking english but it is not a really good idea on a french forum.
It could be useful translating (even with a systran) and put two texts (original and french).



Haha last time I tried posting in French... after which people told me I'd better speak English winkle.gif

All the details about note data and usage should be explained in the manual. But if you have any questions, please feel free to ask, it'd help me improve the manual as well.



Citer : ld
Since we get the musical notes in hexadecimal in this program, I intend to create a convertor note / hex.



I'm afraid there's no easy way to do this. The question of whether to implement a hex2note converter of sorts was one of the hardest, actually. In the end, I decided against it for various of reasons:

- The conversion is rather arbitrary, so neither a linear nor a logarithmic function can be used for conversion. The only possibility would in fact be a lookup table for all 3,5 octaves. Also every 1-bit sound routine uses slightly different values, so in fact I'd need to make a table for every sound routine I implement.

- Atm the plan is to have at least 3-4 engines, with different functionality. Eg, there could be a 2-channel sound routine which uses the additional 2 channels for effect commands (timing, timbre, etc). Having a simple hex editor avoids the need to adapt the display driver to the sound routines each time.

- Since tuning is always a bit problematic with 1-bit routines, it is basically required to have a possibility for manually detuning the note data. So, if I were to make the input so it uses Note name + offset/detune parameter, I couldn't do the direct hex-to-RAM conversion anymore. Also, translating back the values is non-deterministic, since on higher octaves notes can be just 1 byte apart.

- Last but not least, if there were note names, how would you go about entering them? Either you type them in manually, which would be far less efficient than the current method. Or I tie notes to different keys, which would only be feasibly if you turn the calculator sideways to edit. Plus, it would require a complex lookup considering the octave value must be taken into account.

That being said, someone has already suggested a useful feature that I'll might implement soon. Basically, it would translate the hex value which is currently highlighted by the cursor back into a note name, plus possible offset.

Btw I'll release the source code (with in-depth comments) with one of the coming updates, so everybody can adapt the tool to their needs (82STATS port, anyone?)



Citer : linkakro
I agree speaking english but it is not a really good idea on a french forum.
It could be useful translating (even with a systran) and put two texts (original and french).



Haha dernière fois que j'ai essayé de poster en français ... après quoi on me dit que je ferais mieux de parler anglais winkle.gif

Tous les détails sur les données de note et d'utilisation doivent être expliqués dans le manuel. Mais si vous avez des questions, s'il vous plaît n'hésitez pas à demander, ça m'aidera à améliorer le manuel ainsi.


Citer : ld
Puisqu'il faut rentrer les notes de musiques en héxadécimal dans ce programme, je compte créer un convertiseur note/Héxa.




Je crains qu'il n'y ait pas de moyen facile de le faire. La question de savoir s'il faut mettre en œuvre un convertisseur hex2note de toutes sortes a été l'un des plus difficiles, en fait. En fin de compte, j'ai décidé contre elle pour diverses raisons:

- La conversion est un peu arbitraire, de sorte que ni un ni linéaire d'une fonction logarithmique peuvent être utilisés pour la conversion. La seule possibilité serait en fait une table de correspondance pour tous les 3,5 octaves. Aussi chaque routine de son 1-bit utilise des valeurs légèrement différentes, en fait, j'avais besoin de faire un tableau pour chaque routine saine Je mets en œuvre.

- Atm le plan est d'avoir au moins les moteurs 3-4, avec des fonctionnalités différentes. Par exemple, il pourrait y avoir une routine sur 2 canaux qui utilise les 2 canaux supplémentaires pour les commandes d'effets (timing, le timbre, etc.) Avoir un éditeur hexadécimal simple, évite la nécessité d'adapter le pilote d'affichage pour les routines sonores à chaque fois.

- Depuis le réglage est toujours un peu problématique avec 1-bit routines, il est fondamentalement nécessaire d'avoir une possibilité pour désaccorder manuellement les données de note. Donc, si je devais faire l'entrée de sorte qu'il utilise le nom de la note + paramètre de décalage de désaccord /, je ne pouvais pas faire directement hex-to-RAM de conversion plus. En outre, la traduction des valeurs de retour est non-déterministe, puisque sur les notes des octaves supérieures peuvent être tout 1 octet à part.

- Last but not least, si il y avait les noms des notes, comment feriez-vous pour y entrer? Soit vous les tapez dans la main, ce qui serait beaucoup moins efficace que la méthode actuelle. Ou je attacher des notes à des touches différentes, ce qui ne serait que faisable si vous retournez la calculatrice sur le côté pour modifier. De plus, il faudrait une recherche complexe compte tenu de la valeur d'octave doivent être pris en compte.

Cela étant dit, quelqu'un a déjà proposé un dispositif utile que je vais peut-être mettre en œuvre rapidement. Fondamentalement, il se traduirait par la valeur hexadécimale qui est actuellement mis en évidence par le curseur en arrière dans un nom de note, plus possible, compenser.

Btw Je vais publier le code source (à des commentaires détaillés) avec l'une des mises à jour à venir, donc tout le monde peut adapter l'outil à leurs besoins (82STATS port, anyone?)

 Adresse email Haut de page Bas de page 
 
utz



Autorisation : Membre
Nb de messages : 11
Inscrit le : Jeu 02 Aoû 2012, 16:20
Posté le : Lun 15 Avr 2013, 13:09   Citer 

Et voilà, la nouvelle version bêta est prêt. Il ya bien quelques nouvelles fonctionnalités, y compris:

- Copier / Couper et quelques autres choses pour faciliter l'édition
- 2 nouvelles routines sonores - TIM-FX (2 canaux PFM, diverses FX), et Mark-2 (3 canaux rectangulaires) - démonstration de son
- Il est maintenant possible de modifier la vitesse de chanson pendant la chanson
- Rudimentaires "Live" caractéristiques: peuvent maintenant faire une pause ou une boucle de la ligne actuelle pendant le playback
- Load / Save simple: pouvez maintenant conserver une chanson supplémentaire dans la mémoire

Le lien de téléchargement est la même que ci-dessus.

Aussi HT a maintenant son propre site, se trouve ici.

 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Lun 15 Avr 2013, 19:01   Citer 

J'ai pu faire une courte vidéo sur mon prgm de lecture de partition. La calculatrice est posée sur une radio en mode modulation d'amplitude (AM) à 700 KHz. La qualité est réduite au nécessaire pour que le téléchargements soit moins long.

Vidéo :
http://www.filedropper.com/p1110198
Prgm Elise V1 à cette adresse :
https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=3527

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
utz



Autorisation : Membre
Nb de messages : 11
Inscrit le : Jeu 02 Aoû 2012, 16:20
Posté le : Mar 16 Avr 2013, 11:13   Citer 

Ah, la méthode dite de RFI. Nice. Si tu souhaitez utiliser la polyphonie dans ton programme, je peux tu donner les sources pour mes sound drivers. Dans tous les cas, les sources HT sera publié en même temps que la prochaine version.

Aujourd'hui j'ai ajouté TI83 support (donc je suppose que ça va fonctionner sur 82STATS aussi). Cependant, je n'ai aucun moyen de tester ceci sur matériel réel, puisque je possède ni un 83 ni un 82STATS. Donc, je serais heureux si quelqu'un ici pourrait vérifier si tout fonctionne correctement.

En outre, la dernière version corrige un bug critique avec l'une des routines sonores, donc s'il vous plaît re-télécharger à partir de l'adresse habituelle (contient à la fois TI82 et 83 versions).

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes