GFA
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -40%
-40% sur le Pack Gaming Mario PDP Manette filaire + ...
Voir le deal
29.99 €

PORT MIDI (INTERFACE)

Aller en bas

PORT MIDI (INTERFACE) Empty PORT MIDI (INTERFACE)

Message par Jb Jeu 11 Avr - 20:51

Sujet du message: Interface sur port MIDI
Publié: Lun Aoû 12, 2013 6:21 am DE SHADOW272

J'ai pu voir à l'ADN 2013 une interface sur port MIDI créée par Manu M.
Elle permettait de piloter un spot LED tricolore et permettait d'agir sur l'intensité de luminosité de ces LED et ce par couleur.
Selon les dires de notre ami Manu, "simple, il suffit de, c'est presque rien à faire, y a 3 ou 4 composants électroniques, . . .).
Manu étant quelqu'un de très humble, j'aimerais bien qu'il en explique un peu plus sur ce forum.
Comment tu communique avec l'interface, les vitesses pouvant être atteinte par ce port peu utilisé, etc . . .
Tout ça pour en venir à ce que j'ai une idée de développer un jeu de bataille navale (touché/coulé) pouvant être joué à maximum 8 joueurs simultanés.
Tes lumières concernant le port MIDI m'avanceraient et me déchargerait d'une batterie des tests.



_________________
GFA de retour


DE MANU

Je ferai un petit rapport sur ce montage dans la section BRICO & GFA  

j'ai créé en GFA une console DMX virtuelle (6 canaux), qui pilote en Midi une interface ARDUINO "Midi to DMX" trouvé sur le site "sonicrobots.com"
basée ainsi: clavier Midi>platine ARDUINO>spot DMX
l'Arduino est codé en C (j'ai ajusté que les canaux pour mon spot LED)

la commande GFA est OUT 3,144,y,z

3: sortie port Midi
144: reconnaissance pour l'Arduino
y: numéro du canal DMX 1>6
z: puissance de sortie 0>255

le Midi est un protocole Serie à 31250 Bauds,
sur un ST le max en RS232 c'est 19200 Bauds (buggué parait-il?)

pour tester la norme Midi j'ai acheté un ROLAND MT32
on le commande avec un OUT 3,x,y,z
x: commande Midi
y: note
z: hauteur

Pour ton projet SHADOW, tu n'as pas besoin de suivre la norme puisque on ne va pas jouer d'un instrument,
tu vas créer tes propres marqueurs , l'ami La Fleche connait bien les protocoles RSxxx

Dans mon cas l'arduino réagis aux codes 128,144,160,208 (note off ,note on ,etc...) mais cela me posait problème
quand j'envoyais par exemple OUT 3,144,1,128 (ou 144,160,208)
avec 127: lumière à 50%, 128: lumière à 0%, 129: lumière à 51%  
J'ai modifié coté GFA, mais je vais supprimer du code C ce qui ne me sert pas pour le prochain PRG.


DE SHADOW272
Salut Manu,

Je comptais utiliser des OUT et IN pour le dialogue entre ST mais je crois qu'il y a aussi un OPEN "U",#1,MID ou une autre manière de le paramétrer (OPEN "A" et OPEN"I").
Je testerai et vous tiendrai au courant.


DE DAROOU

Sujet du message: Re: Interface sur port MIDI
Publié: Mar Aoû 13, 2013 6:27 am

Il me semble que IN est bloquant lorsqu'il n'y a rien sur le port ?
Je me rappel plus et je le retrouve pas dans le manuel.

Mais je pense qu'il est préférable d'utiliser le port comme un fichier avec OPEN.
C'est non bloquant et il y a un buffer derrière, même s'il faut le lire très régulièrement pour pas perdre de données.
C'est ce que j'utilisais pour lire/écrire le flux du micro sur mon smart memory 56k

La lecture / écriture sur le port midi se fait comme dans un fichier, facile  



_________________
Renaissance - Milan040 - MagiC


DE LAFLECHE



Inscrit le: Jeu Mai 02, 2013 7:24 pm
Messages: 12
Ca a l'air rudement chouette tout ça  

Et moi je dis c'est un dossier de choix pour alimenter la rubrique Bricolage encore un peu vide pour le moment ...

Voilà le bout de code donné par Cooper pour tester la machine :
Code:
> FUNCTION cookie_find(id$)
LOCAL c_ptr%,cname%,c_val%
c_ptr%=LPEEK(&H5A0)                 ! start of list (cookie-jar)
IF OR(c_ptr%=0,ODD(c_ptr%))
 RETURN 0                         ! error: cookiejar does not exist
ELSE
 REPEAT
   cname%=LPEEK(c_ptr%)
   c_val%=LPEEK(c_ptr%+4)
   EXIT IF cname%=0          ! end of list
   ADD c_ptr%,8
 UNTIL MKL$(cname%)=id$          ! cookie found
 IF cname%
   RETURN c_val%                ! return its value
 ENDIF
 RETURN -1                       ! jar exists; cookie not found
ENDIF
ENDFUNC
> PROCEDURE test_ste
a|=PEEK(&HFF820D)
SPOKE &HFF820D,15
b|=PEEK(&HFF820D)
SPOKE &HFF820D,a|
IF a|<>b|
 ste!=TRUE
 falcon!=FALSE
 stf!=FALSE
 IF @cookie_find("_SND")=31
   falcon!=TRUE
   ste!=FALSE
   stf!=FALSE
   PRINT "falcon detected !"
 ELSE
   PRINT "STE detected !"
 ENDIF
ELSE
 PRINT "STF detected !"
 stf!=TRUE
 falcon!=FALSE
 ste!=FALSE
ENDIF
RETURN



Jb

Messages : 143
Date d'inscription : 25/03/2018
Age : 47
Localisation : Tantonville

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum