Logicielsmoto.com

Nous sommes le 27 Nov 2021, 06:49

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 31 messages ]  Aller à la page Précédente  1, 2, 3  Suivante
Auteur Message
MessagePosté: 21 Oct 2021, 20:32 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 426
Pour infos en tant qu'utilisateur, ce que je voyais, c'est de brancher le TO8 en midi sur cubase, et d'envoyer les notes pour que le TO8 joue des instruments à travers la carte à Dino !

Mais pour ça il faudra certainement coder un genre de "connecteur" ou je sais pas quoi pour faire jouer la note de l'instrument de la piste X d'un morceau converti de Deflemask -> TO8 avec le Drivers Bentoc.

Vu qu'on sait jouer un titre converti du tracker Deflemask (donc on sait envoyer des notes à la carte son de Dino donc),
je pense que c'est possible d'envoyer la note non pas du morceau , mais à partir d'un code qui vient du clavier MIDI !

Pas facile d'expliquer :voyons:

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 21:22 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 445
Citation:
L'interface midi IN/OUT existait donc sur Thomson ?

Vous faites quoi en faite, vous adaptez une compatibilité avec le TO8 ?

L'interface MIDI a été produite par Logimus. Elle est sortie sur le marché vers novembre 1985. Il y a un article à ce sujet dans le Théophile no. 13 de décembre 1985, page 6. Initialement développée pour MO5, TO7, TO7/70 et TO9, elle est compatible avec toutes les machines.

J'ai demandé si l'interface MIDI comptait comme une carte son dans le cadre du projet de framework de dev de jeu Thomson (il a un nom ce projet, d'ailleurs ?) et on m'a répondu clair que oui !

Mais comme elle est très rare, je suis en train d'en refabriquer. Et Bentoc voulait en savoir un peu plus sur son fonctionnement, donc je produis aussi un reverse documenté des routines assembleur originales.

J'ai utilisé moi-même cette interface pour bricoler des trucs avec mes synthés de l'époque. On aurait pu faire aussi bien que l'Atari ST, mais il n'y a jamais de logiciel digne de ce nom. Polymus n'était pas terrible en comparaison d'un Cubase par exemple.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 21:51 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 212
Localisation: Var
Samuel Devulder a écrit:
Sachant que dans mes recherches sur la production du son (avant d'aboutir sur les "MOD") je convertissais des fichiers midi pour les jouer sur Thomson, je me demande s'il serait "moralement" possible de lire le flux midi et de faire jouer de la musique de certains instruments au Thomson au passage...


Oui Sam ce serait "Monstrueux" de pouvoir faire ça. Si j'ai bien suivi, le système que tu as mis en place permet de jouer des instruments sous la forme de samples.
En branchant un clavier midi à l'interface on pourrait utiliser le TO8 comme un lecteur d'échantillon "lo-fi" assez original.
Il faudrait décoder à la volée le flux midi arrivant en entrée de l'interface au lieu de lire les données d'un fichier.
Je ne sais pas du tout si c'est possible (rapport à la vitesse de réception), mais il faudrait tenter.

Tu gères 4 notes de polyphonie avec ton code c'est ça ?

Dans l'idéal il faudrait pouvoir :
- piloter à distance le choix de l'instrument (échantillon) utilisé.
- avoir un mode 1 instrument avec polyphonie 4 notes
- avoir un mode 4 instruments sans polyphonie


Dernière édition par Bentoc le 21 Oct 2021, 22:21, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 22:10 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 212
Localisation: Var
adnz a écrit:
Pour infos en tant qu'utilisateur, ce que je voyais, c'est de brancher le TO8 en midi sur cubase, et d'envoyer les notes pour que le TO8 joue des instruments à travers la carte à Dino !

Mais pour ça il faudra certainement coder un genre de "connecteur" ou je sais pas quoi pour faire jouer la note de l'instrument de la piste X d'un morceau converti de Deflemask -> TO8 avec le Drivers Bentoc.

Vu qu'on sait jouer un titre converti du tracker Deflemask (donc on sait envoyer des notes à la carte son de Dino donc),
je pense que c'est possible d'envoyer la note non pas du morceau , mais à partir d'un code qui vient du clavier MIDI !

Pas facile d'expliquer :voyons:


Ce que tu décrit est une utilisation possible effectivement (en numéro 2 sur ma todo list)
Une partie du boulot est déjà réalisée car dans le driver smps on gère déjà les morceaux de musique en utilisant des notes qu'on converti à la volée en instructions pour les chips des deux cartes son.
Il faut donc coder la partie réception des données midi et gérer le paramétrage des instruments "à distance" via des ordres CC et des program changes.

Sam vient de proposer une piste similaire sauf que la génération du son serait effectuée par la lecture d'échantillons sur TO8 (donc sans avoir recours aux cartes son).

Fool a proposé qu'on intègre une routine au moteur de jeu pour qu'on utilise la sortie midi pour jouer des morceaux (a la place des cartes sons), ce qui pourrait offrir une alternative en terme de restitution (à l'utilisateur de choisir son expandeur), la problématique étant de respecter une table d'instruments standard (vous vous souvenez du standard General Midi ;-)). C'est ce premier projet sur lequel je vais travailler.

Voila pour résumer ...


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 22:17 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 426
ok merci pour ces explications, j'y vois mieux.

super je pourrais brancher mon Roland SC-55 ST :bien:

_________________
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 21 Oct 2021, 23:25 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1528
Localisation: Brest
Bentoc a écrit:
Oui Sam ce serait "Monstrueux" de pouvoir faire ça. Si j'ai bien suivi, le système que tu as mis en place permet de jouer des instruments sous la forme de samples.
Pas au début. Par exemple pour la démo "So we just buzz", j'ai converti un fichier "KAR" qui n'est rien d'autre qu'un fichier midi + extension pour les paroles, en codes pour un player logiciel jouant 3voix + drum sur le buzzer. Ca n'est que pus tard que la notion de 4 voix + instruments échantillonnés a fini par apparaitre. Mais cela occupe le CPU à 100% pour produire les échantillons à 5khz -- en deçà la qualité n'est pas terrible, et même que parfois 5khz c'est pas top. Par contre pour des créneaux 2-4khz c'est pas mal ce qui permettrait de jouer du son par interrupt (voir exemple joint).

Citation:
En branchant un clavier midi à l'interface on pourrait utiliser le TO8 comme un lecteur d'échantillon "lo-fi" assez original. Il faudrait décoder à la volée le flux midi arrivant en entrée de l'interface au lieu de lire les données d'un fichier.
Oui, et de ce que je me souviens de mon algo de conversion, ca se fait assez bien dans le fond. On assignerait le TO à un instrument (channel midi si j'ai bonne mémoire) et on joue (logiciellement ou via la carte son matérielle) la dernière note envoyée sur ce canal (ou les 3 dernières actives si on a 3 canaux parallèles dispo).
Citation:
Tu gères 4 notes de polyphonie avec ton code c'est ça ?
Oui pour les MOD, après avec le buzzer ou des signaux carrés j'ai fait du 1, 2, 3 ou 4, ca dépend (j'augmentais le nombre de voix en fonction de mes progrès dans l'optimisation des players). Le plus compliqué dans mon algo de conversion depuis le MIDI était de sélectionner les 4 notes les plus saillantes(*) sur tous les instruments actifs à chaque instant pour les jouer sur les 3/4 canaux autorisés par le player logiciel.
____
(*) celle qui marquent le plus -- il y avait toute une R&D autour de ca. J'utilise l'algo "skyline" qui donne un résultat correct la plupart du temps (voir exemple joint).

L'autre truc compliqué était que la musique occupe vite beaucoup de mémoire, aussi les players gère aussi une decompression des commandes depuis la mémoire (*). Evidemment si les commandes viennent d'un flux midi externe, c'est cela de moins à faire gérer par le player coté Thomson.
____
(*) en gros: la routine interrupt marche comme un processeur musical indépendant qui lit des instructions soit musicales (jouer telle note sur tel canal, mettre tel volume sur tel autre), soit des instructions de flot (sauter à telle autre adresse, revenir à la suite du saut précédent, bref un "JSR/RTS" pour le processeur sonore), etc.

Avec ca on peut factoriser des bouts de séquences d'instructions musicales répétitives un grand nombre de fois dans des petites zones de codes qu'un JSR permet d'appeler autant qu'on veut. On peut même factoriser les portions de "JSR" qui se répètent autant qu'on veut. Résultat on a un énorme taux de compression: les 20ko du MIDI en exemple font 1.7ko avec ca. Le but était de pouvoir avoir des morceaux de musique pas trop nulls qui puissent ternir dans le 1ko des intros de la forever 2014.


Fichiers joints:
Commentaire: Voici un exemple (disk AUTO.BAT) de ce que peut faire l'algo de conversion à partir du midi "green-hill-zone-2.mid" avec 2 voix + bruit (la zik est jouée en tâche de fond par une interrupt timer à 2khz, le temps restant est utilisé pour afficher la forme d'onde temps réel en bas de l'écran).
test-sonic.zip [66.07 Kio]
Téléchargé 19 fois

_________________
Good morning, that's a nice Tnetennba
Haut
 Profil  
Répondre en citant le message  
MessagePosté: 22 Oct 2021, 09:05 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 445
Citation:
General Midi

De ce point de vue, supporter le standard MT-32 serait déjà bien suffisant. A l'extrême, on pourrait aussi imaginer de livrer des soundfonts gm pour quelques autres machines (mais pas les récentes, c'est souvent plusieurs centaines de mega !). Sur la disquette que j'ai filée à Bentoc, il y a des soundfonts pour ma Korg par exemple. Ca ne prend que quelques dizaines de Ko non compressé parce que ce sont des paramètres de configuration des cellules, pas des échantillons.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 22 Oct 2021, 11:17 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 445
Sam, tu disais que le gars connaissait même pas BITA, mais quelle erreur grossière de jugement :q :ptdr:

Code:
B0E8 B7B140     STA    C0              ; Sauve l'octet
B0EB 8580       BITA   #$80            ; Début de message MIDI ?   
B0ED 26B5       BNE    RecWhatIsIt     ; Oui -> on l'interprète   

B0EF B6B140     LDA    C0              ; Récupère l'octet


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 22 Oct 2021, 12:34 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 445
Bon, voici midit32.bin. Heureusement que c'était le dernier, parce que j'ai les yeux qui saignent tant le code est horrible. :mad: :colere:

Bentoc, je te laisse remettre l'archive rar d'équerre avec les trois fichiers si ce n'est déjà fait.


Fichiers joints:
midit32.zip [3.72 Kio]
Téléchargé 16 fois
Haut
 Profil  
Répondre en citant le message  
MessagePosté: 22 Oct 2021, 13:08 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1528
Localisation: Brest
Fool-DupleX a écrit:
Sam, tu disais que le gars connaissait même pas BITA, mais quelle erreur grossière de jugement :q :ptdr:

Il a du avoir oublié ou s'en être rappelé entre temps. Le soucis est qu'il a alors oublié qu'il avait oublié de s'en servir dans le truc moche avec les TFR. Mon dieu que c'est compliqué l'informatique avec toutes ces touches... oh un oiseau! :orni:

(c'est un mammifère en vrai)

Bon en plus là le BITA est inutile s'il faisait un BMI au lieu d'un BNE car le flag N est positionné par le STA juste avant. :W

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 22 Oct 2021, 14:15 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 212
Localisation: Var
Super idée pour le Roland MT-32 (que je ne n'ai pas connu à l'époque).
Je découvre donc que c'était une référence en terme d'expandeur midi pour les ordinateurs de l'époque : ça justifie pleinement son support dans le moteur de jeu.

En occasion le MT-32 tourne autour des 280 euros, mais il existe une émulation "baremetal" pour Raspberry pi : https://github.com/dwhinham/mt32-pi qui pourrait être fort utile (tout le monde à un Raspberry qui traine dans un tirroir ...)

Merci Fool pour toutes ces idées, on progresse !

Sam : je n'ai eu que quelques minutes ce matin pour essayer ta démo et jeter un oeil à ton code. C'est assez impressionnant !
C'est certain qu'on est loin d'un rendu "propre", mais je trouve que la restitution sonore a son charme et propose quelque chose d'unique.
Merci aussi pour les explications et le code source que je ne manquerait pas d'étudier.

Pour en revenir au désassemblage du code de l'interface Midipak je n'en reviens toujours pas de ce code ...
Ps: j'ajouterai les nouveaux fichier .asm à l'archive ce soir, je n'ai ajouté que le 1er pour le moment.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 22 Oct 2021, 20:32 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 445
Le MT-32 c'est la même synthèse (LA - Linear Arithmetic) que les séries D et E de Roland, je connais par coeur. Enfin, je connaissais ... On a fait mieux depuis, mais pour l'époque c'est du tout bon.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 23 Oct 2021, 15:37 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 212
Localisation: Var
L'archive à été mise à jour.

Au passage j'ai transformé un de mes RPI3B+ en MT-32 Pi ça marche nickel ! (j'ai testé avec un clavier USB Midi).
Il ne me reste plus qu'a trouver une interface usb/midi pour brancher ça sur ma future interface Logimus.

Il existe aussi des extensions pour Raspberry dédiée pour ce MT-32 Pi (avec un écran+dac+boutons+port Midi din) ... à voir.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 30 Oct 2021, 22:30 
Hors ligne

Inscription: 21 Avr 2019, 21:48
Messages: 212
Localisation: Var
Le support le l'interface midi a été ajouté au moteur de jeu :
http://www.logicielsmoto.com/phpBB/viewtopic.php?f=3&t=620&p=7393#p7393


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 05 Nov 2021, 11:48 
Hors ligne

Inscription: 06 Juin 2004, 08:23
Messages: 445
Quick update : j'ai reçu les composants pour fabriquer 10 interfaces MIDI et la platine est prête à envoyer à la production. Je ne vais pas l'envoyer tout de suite parce que j'aimerais grouper avec un autre projet sur lequel je travaille et qui n'est pas tout à fait terminé. Mais ce ne sera plus très long.

Finalement, j'ai craqué. La platine n'est pas exactement identique à l'originale, mais très proche. J'y ai notamment ajouté un jumper pour sélectionner l'interruption IRQ ou FIRQ.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 31 messages ]  Aller à la page Précédente  1, 2, 3  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com