Forum Liberty Basic France

Général » Code Morse Pour apprendre le Morse
Le 04/05/2020 à 23h38

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Un essai de manipulateur Morse
Il faut cliquer gauche dans la fenêtre.
Le clic droit marque la séparation entre les lettres.
Le bouton: "Texte" affiche dans le texeditor ce qui a été entré à la souris.
Les temps d'appuis s'affichent à droite du bmp "modèles" (200 ms de marge (environ).
Il y a 500 millisecondes de latence (à respecter) entre le relâché et l'appui suivant.

Au clavier il n'y a pas de temps de latence, mais pas moyen de détecter la levée de touche
crogneugneu !!!

Dernière modif le: 21/05/2023 à 12h40

C'est là--->: Code Morse.zip
____________________
Roro

   
Le 05/05/2020 à 16h26

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
J'ai ajouté dans le zip une version "X Morse" qui marche avec la touche "CTRL"
Il n'y a plus de latence mais ça semble ne pas être très stable.
Je crois que je préfère stable avec latence, après tout, on est pas pressés.
____________________
Roro

   
Le 05/05/2020 à 17h30

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Mince alors, je te réponds sur ta première version.

J'aurais bien été capable d'en faire autant :
Code VB :
 
    mot$="#w.point #w.trait #w.sil #w.txt #w.son #w.clear"
    for x=1 to 6
      hand$=word$(mot$,x)
      #hand$, "!font courrier 10 bold"
    next x
 

est l'équivalent de :
Code VB :
 
      #w.point, "!font courrier 10 bold"
      #w.trait, "!font courrier 10 bold"
      #w.sil, "!font courrier 10 bold"
      #w.txt, "!font courrier 10 bold"
      #w.son, "!font courrier 10 bold"
      #w.clear, "!font courrier 10 bold"
 

qu'on pourrait probablement écrire :
Code VB :
 
      fonte$="!font courrier 10 bold"
      #w.point, fonte$
      #w.trait, fonte$
      #w.sil, fonte$
      #w.txt, fonte$
      #w.son, fonte$
      #w.clear, fonte$
 

Je ne pensais pas que ça pouvait fonctionner avec les handles.

Autre point : rien n'envoie sur [esp], la routine qui termine la lettre. Du coup elle ne sera jamais affichée dans le texteditor. Il faudrait un envoi automatique à [esp] dès qu'une temporisation est passée alors qu'aucune action n'a eu lieu sur le bouton gauche de la souris. Comment détecter cette inaction ? A priori c'est pas simple.
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 05/05/2020 à 18h57

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Citation:
rien n'envoie sur [esp], la routine qui termine la lettre

En faisant "clic droite" des tirets sont affichés à la place du temps. (pour que le prog détecte les lettres).
Dans les mots, les lettres sont sans espaces.
Il manque une procédure pour mettre des espaces entre les mots, mais on n'en est pas encore là.
Citation:
dès qu'une temporisation est passée alors qu'aucune action n'a eu lieu sur le bouton gauche

Houla, il va y avoir beaucoup d'espaces, avant qu'on ait mémorisées toutes les lettres.
Citation:
Je ne pensais pas que ça pouvait fonctionner avec les handles

Oui ce truc est génial, mais il faut faire gaffe que la mise en hand$ doit être dans la boucle et pas avant. (et ce n'est pas toujours aussi évident que dans ce cas là).
____________________
Roro

   
Le 05/05/2020 à 20h48

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Citation:
Dans les mots, les lettres sont sans espaces.
La série de points et de traits qui définit une lettre a forcément un espace final, et par conséquent dans ton mot en morse tu as un espace par lettre, c'est pour ça qu'il faut brancher sur [esp] après chaque lettre. Non ?
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 06/05/2020 à 11h27

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Citation:
La série de points et de traits qui définit une lettre a forcément un espace final, et par conséquent dans ton mot en morse tu as un espace par lettre, c'est pour ça qu'il faut brancher sur [esp] après chaque lettre. Non ?

Tout à fait.
On doit pouvoir mesurer le temps entre un "relâché" et un "appui" pour faire l'espace entre les codes, mais j'ai comme un doute à ce sujet (une ambiguïté de temps met tout par terre), je vais le tenter.
@+...
____________________
Roro

   
Le 06/05/2020 à 16h38

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Roland:
Citation:
La série de points et de traits qui définit une lettre a forcément un espace final, et par conséquent dans ton mot en morse tu as un espace par lettre, c'est pour ça qu'il faut brancher sur [esp] après chaque lettre. Non ?

Tout à fait.
On doit pouvoir mesurer le temps entre un "relâché" et un "appui" pour faire l'espace entre les codes, mais j'ai comme un doute à ce sujet (une ambiguïté de temps met tout par terre), je vais le tenter.
@+...


Voilà, j'ai fait comme tu a dit, et je reste sur la version "Souris", j'aime pas quand c'est pas stable.
Si temps sans clic > 1700 ms --> espace entre lettres; l'affichage ne change pas: "---"
Le clic droit devient: Espace entre mots et affiche: "§§§§".
c'est la version: "Y Morse".
Il semble que je ne sois pas très au point pour nommer les versions, parce que la prochaine c'est : "Z", et ça va coincer. Lol !
Za Zb; Zc ...?!! :(
Je remets le lien-->: Code Morse.zip
____________________
Roro

   
Le 06/05/2020 à 19h48

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Eh bien ça a l'air de marcher, tu peux attaquer l'espace entre les mots.

c'est sympa le bouton pour couper le son, car il est hautement perturbant d'entendre le son du coup de pioche d'avant alors qu'on attaque le suivant.

Il n'y aurait pas moyen de faire un fichier midi avec une note, puis de jouer avec avec play et stopmidi : playmidi quand on enfonce le clic souris, stopmidi quand on le relâche ?
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 07/05/2020 à 00h57

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Citation:
tu peux attaquer l'espace entre les mots.

Alors soit il y a un os dans l'horodatage des messages, soit tu a mal lu mon dernier; puisqu'il y est dit que l'espace entre les mots est opérationnel depuis la version "Y Morse"
Citation:
Il n'y aurait pas moyen de faire un fichier midi avec une note

Comme les sons sont au format (250 et 750 ms) il suffit peut-être de finir le wav en douceur, ce que je ferai avec "Audacity", on verra ce que ça donne.
Citation:
il est hautement perturbant d'entendre le son du coup de pioche

Pour le coup de pioche, qui d'ailleurs est très léger; il est plutôt réjouissant d'entendre que des gens travaillent pendant qu'on se repose, nan ? Et puis c'est une sorte de confirmation que le son est bien fini, sinon, comment savoir...
____________________
Roro

   
Le 07/05/2020 à 11h17

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Citation:

Voilà, j'ai fait comme tu a dit, et je reste sur la version "Souris", j'aime pas quand c'est pas stable.
Si temps sans clic > 1700 ms --> espace entre lettres; l'affichage ne change pas: "---"
Le clic droit devient: Espace entre mots et affiche: "§§§§".
c'est la version: "Y Morse".
Il semble que je ne sois pas très au point pour nommer les versions, parce que la prochaine c'est : "Z", et ça va coincer. Lol !
Za Zb; Zc ...?!! :(


Et voici la version: "Z Morse", avec une nouvelle fonctionnalité (débrayable), le: "Fade_Out"; qui supprime le coup de pioche de fin du son (mais qui à mon avis "fade" un peu trop because je ne maîtrise pas bien "Audacity").
Et je remets le lien-->: Code Morse.zip
____________________
Roro

   
Le 07/05/2020 à 14h15

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Suite du: 07/05/2020 à 11h17
Nouvelle version: "Za Morse"
Maintenant le code "Point trait trait point..." s'affiche dans la fenêtre.
On n'arrête pas le progrès.
J'hésite à afficher le texte en temps réel, je crains que ça n'allonge le temps de latence.
Il ne manque qu'une option de correction-effacement-retour (undo); car l'erreur est humaine...

EDIT: Le son "No_Fade" est maintenant un vrai son de Morse (point=100ms; trait=300ms).

Lien-->: Code Morse.zip
____________________
Roro

   
Le 08/05/2020 à 10h10

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Za alors ! ;)

Citation:
Alors soit il y a un os dans l'horodatage des messages, soit tu a mal lu mon dernier; puisqu'il y est dit que l'espace entre les mots est opérationnel depuis la version "Y Morse"

Non non, c'était bien la bonne version, j'étais tout content de voir que les lettres s'affichaient dans le texteditor, c'est juste que je n'ai pas testé des mots. De toute manière j'ai déjà bien du mal avec les lettres, s'il faut en plus que je réfléchisse à la durée qui sera reconnue comme espace entre mots... ;)
Existerait-il une dll qui faciliterait la création en temps réel d'un son ?

Citation:
Citation:
Il n'y aurait pas moyen de faire un fichier midi avec une note

Comme les sons sont au format (250 et 750 ms) il suffit peut-être de finir le wav en douceur, ce que je ferai avec "Audacity", on verra ce que ça donne.


Par "coup de pioche", je voulais dire "faire des points et des traits avec le manipulateur", ce n'était pas pour adoucir les fronts. L'idée, en essayant les instructions midi, était de gérer en temps réel le début et la fin d'une note, et pourquoi pas sa hauteur. je n'ai aucune experience du midi, mais je sais qu'on peut faire varier pas mal de paramètres. Est-ce que ça pourrait t'aider ?

Citation:
Le son "No_Fade" est maintenant un vrai son de Morse (point=100ms; trait=300ms).
Bien ! :top Autrement on peut toujours créer le wave en début d’exécution du programme ou à la demande par un bouton ad-hoc, c'est un peu "usine à gaz", mais on a déjà fait.

Citation:
J'hésite à afficher le texte en temps réel, je crains que ça n'allonge le temps de latence.
Tu ne le sauras qu'en faisant l'essai ;)
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 08/05/2020 à 11h31

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Citation:
Existerait-il une dll qui faciliterait la création en temps réel d'un son

Oui avec la dlll ad hoc (winm.dll) que j'ai exploitée là-->: http://libertybasic.fr/forum/topic-334+notes-et-portees.php , et c'est pas du gâteau; on peut faire beaucoup de choses, mais les dll sont pour Liberty, dont ne disposent pas les débutants et les visiteurs, c'est pourquoi je reste avec JB
Citation:
L'idée, en essayant les instructions midi, était de gérer en temps réel le début et la fin d'une note

En l'état actuel les deux sons sont au format, la latence est le fait du "mouse event", mais on s'y fait assez bien. Faut voir si il y a moyen de faire un truc stable par le clavier (qui est sans latence), mais vu les réactions, je doute.
Je continue avec un "Undo" sur la dernière lettre entrée. et je mesure le temps de décodage du texte.
@ +...
____________________
Roro

   
Le 08/05/2020 à 16h48

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Suite du: 08/05/2020 à 11h31
Ajout de la version: "Zb Morse" qui intègre le "Undo" de la dernière lettre (affiche: "U"), mais n'agit que sur le texte de sortie (pas dans l'interface).
A suivre, ou pas...
Lien : Code Morse.zip
____________________
Roro

   
Le 09/05/2020 à 12h58

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Suite du: 08/05/2020 à 16h48
Bon, j'ai mis de l'ordre dans le zip:
"Morse": Version souris toutes options
"X Morse": Version clavier (ctrl) toutes options
J'ai viré le reste
En fait, dans la version clavier, le problème est dans le temps entre deux codes, qui ne réagit pas comme avec la souris. Le "temps réel" ce n'est pas facile.
Lien: Code Morse.zip
____________________
Roro

   
Général » Code Morse Pour apprendre le Morse  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie