[Emulation] DCMO5 online en javascript
Modérateurs : Papy.G, fneck, Carl
Re: [Emulation] DCMO5 online en javascript
Oui, sur Mac OS X 10.5
Le CPU est entre 90 et 100%
Les lettres, chiffres, la virgule et entrée fonctionnent en basic, mais pas le reste
Le CPU est entre 90 et 100%
Les lettres, chiffres, la virgule et entrée fonctionnent en basic, mais pas le reste
- fneck
- Site Admin
- Messages : 17489
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: [Emulation] DCMO5 online en javascript
Je n'ai pas réussi à trouver la touche + sur le clavier de mon portable, bug ou pas je ne sais pas?Daniel a écrit :Nouvelle version en ligne avec possibilité d'utiliser le clavier
Ce qui me gêne le plus c'est qu'il y a toujours ce temps assez long entre la saisie de deux touches successives. C'est peut-être lié à ma machine très peu puissante?
J'ai voulu faire les mêmes essais sur ton émulateurs Gilles, mais je n'ai jamais réussi à trouver la touche =gilles a écrit :J'ai opté pour java il y a 5ans (http://www.alternative-system.com/?page=mo5_java)
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
- claudounet
- Messages : 1074
- Inscription : 15 juil. 2009 21:21
- Localisation : Dublin 6 (IRL) - Vichy (03)
- Contact :
Re: [Emulation] DCMO5 online en javascript
Score 144 au glouton, peut mieux faire...
et les curseurs qui fonctionnent ..excellent ...
et les curseurs qui fonctionnent ..excellent ...
Re: [Emulation] DCMO5 online en javascript
Comme je m'y attendais, les ennuis commencent avec le clavier.
Ce matin la touche + marchait dans Chrome et ne marchait pas dans Firefox. Croyant à une faute de frappe dans mon programme j'ai corrigé. Maintenant la touche + fonctionne dans Firefox et ne fonctionne plus dans Google Chrome. Je vais essayer de trouver une parade.
L'émulation du clavier a toujours été ma hantise depuis que je programme des émulateurs. Avec les incohérences du matériel, plus les incohérences des systèmes, plus les incohérences des bibliothèques comme SDL, plus les incohérences des navigateurs, c'est un sac de noeuds indescriptible. Je ne suis pas le seul à m'en plaindre, mais nos plaintes ne sont pas entendues : nous voulons un système très simple, où chaque touche a un code et un seul. Le code peut être choisi de façon arbitraire, ce qui importe est une correspondance biunivoque entre le code et la touche physique (comme sur le MO5). Mais l'esprit des concepteurs est tordu, et pour soi-disant résoudre les problèmes ils empilent des couches logicielles qui font perdre totalement le lien entre le code et le matériel. S'ils connaissaient Flipper de Loriciels sur MO5, ils comprendraient leur bêtise.
[Edit 14h]
Une petite verrue dans l'émulateur corrige le problème de la touche + dans Google Chrome et Firefox.
Il y a peut-être d'autres anomalies du même genre, je compte sur vous pour les trouver. Merci
Fabien : la répétition des touches du MO5 est contrôlée par le temps de latence (temporisation avant le début des répétitions). Par défaut ce temps est assez long : 7/10 de seconde, mais si l'émulateur ne tourne qu'à 50% de la vitesse normale à cause du manque de puissance du PC, il est encore plus long. Ce paramètres est modifiable en RAM par l'instruction POKE.
POKE &H2076,x (x est le temps de latence avant première répétition en dixièmes de secondes, par défaut : 7)
Tu peux essayer de diminuer la valeur, par exemple POKE &H2076,3 (Le caractère & est obtenu par MAJ-6).
Ce matin la touche + marchait dans Chrome et ne marchait pas dans Firefox. Croyant à une faute de frappe dans mon programme j'ai corrigé. Maintenant la touche + fonctionne dans Firefox et ne fonctionne plus dans Google Chrome. Je vais essayer de trouver une parade.
L'émulation du clavier a toujours été ma hantise depuis que je programme des émulateurs. Avec les incohérences du matériel, plus les incohérences des systèmes, plus les incohérences des bibliothèques comme SDL, plus les incohérences des navigateurs, c'est un sac de noeuds indescriptible. Je ne suis pas le seul à m'en plaindre, mais nos plaintes ne sont pas entendues : nous voulons un système très simple, où chaque touche a un code et un seul. Le code peut être choisi de façon arbitraire, ce qui importe est une correspondance biunivoque entre le code et la touche physique (comme sur le MO5). Mais l'esprit des concepteurs est tordu, et pour soi-disant résoudre les problèmes ils empilent des couches logicielles qui font perdre totalement le lien entre le code et le matériel. S'ils connaissaient Flipper de Loriciels sur MO5, ils comprendraient leur bêtise.
[Edit 14h]
Une petite verrue dans l'émulateur corrige le problème de la touche + dans Google Chrome et Firefox.
Il y a peut-être d'autres anomalies du même genre, je compte sur vous pour les trouver. Merci
Fabien : la répétition des touches du MO5 est contrôlée par le temps de latence (temporisation avant le début des répétitions). Par défaut ce temps est assez long : 7/10 de seconde, mais si l'émulateur ne tourne qu'à 50% de la vitesse normale à cause du manque de puissance du PC, il est encore plus long. Ce paramètres est modifiable en RAM par l'instruction POKE.
POKE &H2076,x (x est le temps de latence avant première répétition en dixièmes de secondes, par défaut : 7)
Tu peux essayer de diminuer la valeur, par exemple POKE &H2076,3 (Le caractère & est obtenu par MAJ-6).
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Emulation] DCMO5 online en javascript
Test de dcmo5 online dans Linux avec plusieurs navigateurs (dans leur version la plus récente) :
- PuppyBrowser
- SeaMonkey
- Chrome
- Opera
- Firefox
Résultats :
- Configuration du clavier fausse dans tous les cas (Linux n'envoie pas les mêmes codes que Windows, je l'avais déjà remarqué avec dcmo5, dcto8d, dcto9+ et dcvg5k version SDL).
- Configuration du clavier différente d'un navigateur à l'autre (le navigateur ajoute ses propres erreurs à celles du système d'exploitation)
- Performances médiocres, presque deux fois plus lents que les mêmes navigateurs dans Windows XP
- Seul Chrome permet une vitesse correcte. Il est de très loin le plus rapide (trois ou quatre fois plus rapide que Firefox).
Un point positif : tous ces navigateurs sont compatibles avec la balise <canvas> et permettent d'exécuter l'émulateur.
Dans Internet Explorer sous Windows j'ai trouvé une solution permettant de reconnaître la balise <canvas> : il s'agit de http://excanvas.sourceforge.net/
Malheureusement cette solution est inapplicable car IE est environ trente fois plus lent que les autres navigateurs pour exécuter le javascript. Il se fige et on ne peut plus rien faire, sauf fermer le programme avec le gestionnaire de tâches. J'ai testé IE7 sous Windows XP et IE8 sous Windows 7. Normalement IE9 doit supporter le HTML 5, et permettra peut-être d'exécuter dcmo5 online. Je vais l'essayer dès que possible et je posterai les résultats.
- PuppyBrowser
- SeaMonkey
- Chrome
- Opera
- Firefox
Résultats :
- Configuration du clavier fausse dans tous les cas (Linux n'envoie pas les mêmes codes que Windows, je l'avais déjà remarqué avec dcmo5, dcto8d, dcto9+ et dcvg5k version SDL).
- Configuration du clavier différente d'un navigateur à l'autre (le navigateur ajoute ses propres erreurs à celles du système d'exploitation)
- Performances médiocres, presque deux fois plus lents que les mêmes navigateurs dans Windows XP
- Seul Chrome permet une vitesse correcte. Il est de très loin le plus rapide (trois ou quatre fois plus rapide que Firefox).
Un point positif : tous ces navigateurs sont compatibles avec la balise <canvas> et permettent d'exécuter l'émulateur.
Dans Internet Explorer sous Windows j'ai trouvé une solution permettant de reconnaître la balise <canvas> : il s'agit de http://excanvas.sourceforge.net/
Malheureusement cette solution est inapplicable car IE est environ trente fois plus lent que les autres navigateurs pour exécuter le javascript. Il se fige et on ne peut plus rien faire, sauf fermer le programme avec le gestionnaire de tâches. J'ai testé IE7 sous Windows XP et IE8 sous Windows 7. Normalement IE9 doit supporter le HTML 5, et permettra peut-être d'exécuter dcmo5 online. Je vais l'essayer dès que possible et je posterai les résultats.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Emulation] DCMO5 online en javascript
Qu'est ce que que tu veux produire comme son ? des notes comme dans l'exemple suivant, ne te suffisent pas ? http://www.beatlinxdesign.com/pierce_co ... piano.htmlDaniel a écrit : C'est peut-être la voie d'une nouvelle série de programmes, quand de bonnes solutions seront trouvées pour produire du son (actuellement javascript ne le permet pas).
Re: [Emulation] DCMO5 online en javascript
Il n'y a pas de son possible en Javascript.
Le JavaScript Piano utilise RealPlayer (sound.DoPlay();) ou Quicktime (sound.Play();). Ni l'un ni l'autre ne peuvent convenir pour un émulateur, qui doit envoyer des échantillons à la carte son avec un temps de latence très court.
Le JavaScript Piano utilise RealPlayer (sound.DoPlay();) ou Quicktime (sound.Play();). Ni l'un ni l'autre ne peuvent convenir pour un émulateur, qui doit envoyer des échantillons à la carte son avec un temps de latence très court.
Code : Tout sélectionner
function PlaySound(e) {
if (!e) var e = window.event;
// which key was clicked?
thiskey = (e.target) ? e.target: e.srcElement;
var sound = document.getElementById("note_" + thiskey.id);
try {
// RealPlayer
sound.DoPlay();
} catch (e) {
try {
// Windows Media / Quicktime
sound.Play();
} catch (e) {
alert("No sound support.");
}
}
}
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Emulation] DCMO5 online en javascript
sinon il y a les ActiveX sous IE, mais cela fait un grand bond dans le passé ...
Re: [Emulation] DCMO5 online en javascript
En fait java a plus ou moins les mêmes problèmes que javascript pour le clavier mais avec une dimension de moins (cela ne dépend pas du browser mais uniquement de l'OS, il n'y a pas de vrai scancode normalisé)...fneck a écrit : J'ai voulu faire les mêmes essais sur ton émulateurs Gilles, mais je n'ai jamais réussi à trouver la touche =
En même temps... j'ai peut être oublié de mapper cette touche, c'était plus un prototype qu'un émulateur complet, JTEO est plus abouti.
Re: [Emulation] DCMO5 online en javascript
Test de dcmo5 online dans Internet Explorer 9
Le dessin du joystick est un peu massacré, mais ce n'est pas grave, ça peut s'arranger.
La bonne nouvelle est que tout fonctionne, y compris la balise <canvas> et le clavier, avec les bonnes touches.
La mauvaise nouvelle (prévisible) est la lenteur. Il faudra encore une dizaine d'années de progression des performances des machines pour pouvoir utiliser les outils de Microsoft. En attendant, Google Chrome est la meilleure solution, 10 à 20 fois plus rapide qu'Internet Explorer 9.
Test d'une boucle FOR I=1 TO 10000: NEXT dans dcmo5 online (Windows 7, Athlon XP 2000+):
- Google Chrome 5.0 : 13 secondes
- Internet Explorer 9 : 154 secondes
Avec le vrai MO5 et dans DCMOTO la boucle dure 13 secondes, donc Google Chrome permet l'émulation à la vitesse nominale sur une machine peu puissante (s'il y a peu de modifications de l'écran).
Le dessin du joystick est un peu massacré, mais ce n'est pas grave, ça peut s'arranger.
La bonne nouvelle est que tout fonctionne, y compris la balise <canvas> et le clavier, avec les bonnes touches.
La mauvaise nouvelle (prévisible) est la lenteur. Il faudra encore une dizaine d'années de progression des performances des machines pour pouvoir utiliser les outils de Microsoft. En attendant, Google Chrome est la meilleure solution, 10 à 20 fois plus rapide qu'Internet Explorer 9.
Test d'une boucle FOR I=1 TO 10000: NEXT dans dcmo5 online (Windows 7, Athlon XP 2000+):
- Google Chrome 5.0 : 13 secondes
- Internet Explorer 9 : 154 secondes
Avec le vrai MO5 et dans DCMOTO la boucle dure 13 secondes, donc Google Chrome permet l'émulation à la vitesse nominale sur une machine peu puissante (s'il y a peu de modifications de l'écran).
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- fneck
- Site Admin
- Messages : 17489
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: [Emulation] DCMO5 online en javascript
Pour un non-initié comme moi, quelqu'un peut-il expliquer la différence en java et javascript?
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Re: [Emulation] DCMO5 online en javascript
java est un langage objet, compilé vers un pseudo code machine (le bytecode). java peut s'exécuter hors du contexte d'un naviguateur (ex: openoffice, Eclipse...). Un mode particulier permet l'intégration dans un navigateur (applet).
javascript est un langage interprété qui s'éxécute dans le contexte du navigateur, pour une page spécifique, dans le but de rendre cette page dynamique. (si ce code va aussi rechercher des informations sur le serveur, on parle alors d'Ajax).
Même si la syntaxe est parfois proche, javascript est plutôt un sous-ensemble de java (historiquement c'est inexact, les 2 langages ont été créés séparément, pour des besoins proches, le renommage en javascript est une décision commerciale de netscape).
javascript est un langage interprété qui s'éxécute dans le contexte du navigateur, pour une page spécifique, dans le but de rendre cette page dynamique. (si ce code va aussi rechercher des informations sur le serveur, on parle alors d'Ajax).
Même si la syntaxe est parfois proche, javascript est plutôt un sous-ensemble de java (historiquement c'est inexact, les 2 langages ont été créés séparément, pour des besoins proches, le renommage en javascript est une décision commerciale de netscape).
Re: [Emulation] DCMO5 online en javascript
http://www.toutjavascript.com/savoir/savoir04.php3
http://francoisg.ifrance.com/rubriks/ja ... apoint.htm
En peu de mots avec humour :
http://francoisg.ifrance.com/rubriks/ja ... apoint.htm
En peu de mots avec humour :
Java and Javascript are similar like Car and Carpet are similar.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [Emulation] DCMO5 online en javascript
Un peu de publicité pour faire connaître le MO5 au monde entier
http://www.emunova.net/news/detail/13899.htm
Glouton est à l'origine un programme Hebdogiciel. Je l'ai adapté pour le rendre jouable au clavier (à l'époque je n'avais le contrôleur musique et jeu du MO5), et je l'ai transformé en image de cartouche MEMO5.
http://www.emunova.net/news/detail/13899.htm
Glouton est à l'origine un programme Hebdogiciel. Je l'ai adapté pour le rendre jouable au clavier (à l'époque je n'avais le contrôleur musique et jeu du MO5), et je l'ai transformé en image de cartouche MEMO5.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.