Mot-clé - informatique

Fil des billets - Fil des commentaires

dimanche, juin 12 2016

Editeur Matrix-1000 en WEB

Je suis en train de finaliser un éditeur pour le Matrix-1000 en technologie WEB. Il utilise AngularJS pour l'IHM et l'API WEB MIDI pour les fonctions MIDI. Le résultat est plutôt pas mal mais j'ai encore quelques problèmes à régler. A noter qu'il ne fonctionne que sur Chrome et ses dérivés à cause de l'API MIDI.
Un problème sur lequel je suis tombé c'est l'API MIDI désactive les SYSEX lorsque certains critères de sécurité ne sont pas remplis. La conséquence est que je ne peux pas le déployer sur free car il me faudrait un certificat SSL.
Donc pour le moment il ne peut fonctionner qu'en localhost. matrix-web
Mise à jour - 26 juin 2016 :
Il est désormais possible de le télécharger ici.
Mise à jour - 11 sept 2016 :
Ajout de l'application Electron en Win64.

jeudi, mars 17 2016

Jeu de la vie 1.1

J'ai publié une nouvelle version de mon jeu de la vie sur Android.
Cette version permet de dessiner des cellules ou d'en supprimer avec le doigt. On peut désormais partir d'un écran vide. La taille de la gomme peut être modifiée dans les préférences.
Du coup c'est assez amusant de chercher des combinaisons qui durent. J'aime particulièrement les figures symétriques. J'en ai trouvé par hasard une qui boucle sur plusieurs cycles.
Je pense qu'une amélioration future sera de pouvoir sauvegarder l'état courant dans un fichier ou une base de données et de pouvoir les recharger et les exporter.
Une autre amélioration sera de pouvoir zoomer car avec beaucoup de cellules l'édition n'est pas précise.
Afficher une grille permettrait de faciliter le placement des cellules.
Enfin, un undo ne serait pas de trop car cela éviterait de prendre la gomme quand on a placé une cellule au mauvais endroit. Screenshot_2016-03-16-20-53-41.png

samedi, mars 12 2016

Mise à jour de logiciels

J'ai recompilé l'éditeur Matrix-1000 pour OSX en incorporant les modifications de vicktorvos. Du coup tous les paramètres sont sur le même écran comme pour l'éditeur JavaFx. A noter que le bouton DCO2 permet de basculer sur le générateur de bruit qui est exclusif avec le DCO2, chose que je n'avais pas remarquée.

Sinon j'ai fait des modifications essentiellement cosmétiques sur l'éditeur Matrix-1000 JavaFx pour que la fenêtre soit plus petite.

Je me rend compte que je n'ai pas parlé de ma merveilleuse application Android : Le jeu de la vie. Bon c'est une application hyper simple que j'ai faite pour tester le développement sur Android Studio. En fait c'est un portage d'une application iphone que j'avais faite il y a longtemps sans la publier. Je viens donc de justifier des années après les $25 que j'avais donnés à Google pour le compte développeur.

lundi, février 29 2016

Tron Legacy

Bon ce film est plutôt plaisant, les trucages sont assez réussis, la musique est super mais il y a des côtés gênants.
Le premier point qui m'a gêné c'est que l'univers dépeint est trop proche du réel. Si je fais une comparaison avec le Tron 1982 dans lequel l'environnement est clairement bizarre, dans Legacy finalement ça ne semble plus si bizarre.
Je vais essayer d'expliquer.
Par exemple dans Tron 1982 les vaisseaux n'ont pas un déplacement d'avion ou d'hélicoptère, c'est comme si les lois de la gravité et de l'aérodynamique n'existaient pas. Et c'est très bien ! Cela donne cet aspect totalement étranger à ce monde.
Par contre dans Legacy les vaisseaux semblent se mouvoir comme des hélicoptères, ils font des virages sur l'angle (pourquoi dans un monde informatique ?). Bref c'est trop commun. Ce que je dis pour les vaisseaux s'applique totalement pour les motos puisque dans Tron 1982 les motos font des angles droits alors que dans Legacy elles font des bêtes virages.
Deuxième exemple c'est la matière. Dans Tron 1982 la matière semble malléable à souhait et ne ressemble à rien de connu alors que dans Legacy elle est beaucoup plus ordinaire. En particulier dans Tron 1982 le grand vaisseau est supprimé morceau par morceau et c'est une scène impressionnante car cela fait penser à quelqu'un qui supprimerait des lignes dans un fichier. Rien de tel dans Legacy.
L'extérieur de la ville aussi n'est pas convaincant dans Legacy puisqu'il contient des montagnes de pierres. Si on fait une analogie avec une mémoire d'ordinateur, si elle n'est pas programmée elle contient soit des 0 soit un bruit de 0 et de 1. Donc pourquoi des montagnes ?

Dans une scène au début le jeune Flynn est blessé et saigne. Les programmes en déduisent que c'est un concepteur. C'est quand même étrange de saigner pour un corps dématérialisé et immortel. Quel intérêt ?
A la fin il y a Clue qui harangue ses foules de programmes en leur expliquant qu'ils vont envahir le monde réel. Euh ?! Quel besoin a-t-il de convaincre des programmes qui font ce pourquoi ils sont programmés. C'est de l'anthropomorphisme déplacé.
Ce film reprend aussi des scènes de Matrix comme la scène dans le bar avec le gars et sa canne qui est une copie du Nérovingien de Matrix. Cela n'apporte pas grand chose, et c'est même assez pénible.
Et puis il y a le problème de la numérisation. Ben oui le corps de Flynn a été numérisé et introduit dans l'ordi mais il devient quoi son corps réel, il est où ? Quoique dans Tron 1982 il me semble que le corps était désintégré puis réintégré mais dans Legacy ce n'est pas très clair.
Et pourquoi donc l'avatar de Flynn vieillirait dans la grille ? C'est absurde non ? Cela voudrait dire que Flynn a découvert le processus de vieillissement et l'a inclus dans son avatar. Mais qui voudrait avoir un corps qui vieillit quand cela ne dépend uniquement que d'un programme ?

Donc au final un film pas très cohérent (est-ce que cela existe ?) pendant lequel il faut laisser son cerveau au repos sous peine d'être déçu.

mardi, février 16 2016

Chappie

C'est finalement un film assez intéressant et émouvant bien qu'il soit totalement débile d'un point de vue technique et je ne vais pas faire la liste ici ce serait trop long et je n'en ai pas le courage.
Évidemment, l'émotion est ici une réaction générée par notre anthropomorphisme. Cela rejoint un article que j'ai déjà écrit et dans lequel je déconseille fortement de faire cohabiter sur Terre deux espèces différentes mais de même niveau intellectuel. C'est la guerre assurée.
Il y a un élément du film qui pourrait sembler novateur du moins au cinéma, c'est le transfert d'une conscience artificielle ou non dans un ordinateur pour en prendre le contrôle.
Cette idée n'est évidemment pas nouvelle mais elle m'a rappelé un épisode de Yoko Tsuno : Les 3 soleils de Vinéa.
Dans cet épisode, Yoko rencontre le père de Khany sous la forme d'une mémoire dans un robot. C'est exactement ce qui s'est passé dans Chappie : transférer un cerveau humain dans un ordinateur. La BD date de 1980 donc ce n'est pas tout jeune et à l'époque cela ne me choquait pas le moins du monde. Ce n'est plus le cas maintenant...
Cette idée est aussi reprise dans Tron de 1982 et sa suite Tron Legacy en 2010 sous une forme légèrement différente puisque la conscience n'est pas transférée dans un robot mais s'incarne dans un corps virtuel à l'image du corps réel.
Maintenant que j'y pense il y a une réplique du film Chappie qui m'a vraiment choqué, c'est quand le créateur de l'IA dit à Chappie qu'il ne peut pas transférer sa conscience car en gros l'âme ne se transfère pas. Le gars vient de créer un programme de conscience, donc une suite de 0 et de 1 et dit qu'il ne peut pas la copier ! Il est con ou quoi ? Il faut toujours que les gens mettent Dieu là où il n'est pas nécessaire. Einstein a éliminé l'éther du cosmos car il ne servait à rien. J'aimerai qu'on fasse de même avec Dieu.

samedi, novembre 7 2015

Voiture auto-pilotée

Nous n'imaginons pas encore toutes les possibilités offertes par l'avènement des voitures auto-pilotées.
Si dans un futur je l'espère pas trop lointain, ces voitures seront disponibles cela va créer de nouvelles utilisations et un usage totalement nouveau de la voiture. Pour cela il faut évidemment que la responsabilité humaine ne soit pas engagée en cas d'accident sinon autant conduire soi-même.
L'usage standard sera de transporter des personnes d'un endroit à un autre sans intervention humaine à part de dire : "chez mamie" !
Une telle voiture pourrait aussi rouler sans personne à son bord en ayant été programmée ou appelée. Par exemple la voiture pourrait sortir toute seule d'un parking sous-terrain et passer juste devant nous pour nous embarquer.
Elle pourrait aussi être utilisée pour prendre livraison d'un colis en ayant prévenu la destination, il suffirait de laisser le coffre ouvert et hop, elle rentrerait avec le colis. Elle pourrait aller chercher quelqu'un à la gare toute seule etc.
Ce genre d'utilisation s'apparente au taxi et on peut prédire la disparition à terme de la profession de chauffeur. D'ailleurs on peut se demander si ce n'est pas le but final des recherches.
Dans un monde semblable, sera-t-il encore utile de posséder sa propre voiture ?
On peut imaginer un parc de voitures à disposition immédiate. On appelle un taxi par internet en précisant la destination, le nombre de personnes, les bagages, ce qui permet d'allouer la voiture la plus adaptée au trajet qui ne sera pas la même selon que c'est 2 km en ville ou 200 km sur la quatre voies. Ainsi les trajets courts privilégieront des petites voitures électriques.
Les voitures elles-mêmes seraient différentes. Elles n'auraient plus besoin de volant, de pédales, de levier de vitesse, bref de tous les éléments de conduite ce qui dégagerait de la place pour les passagers.
Des économies de carburant pourront être faites car les programmes de conduites seront optimisés pour consommer le moins possible et comme ce sera vrai pour chaque voiture, l'impact sera décuplé.
Il y a aura moins de bouchons car les voitures connaissant l'état de la circulation sur leur parcours adopteront la vitesse la plus adaptée pour éviter les engorgements. Des économies d'infrastructures seront possibles en supprimant toute la signalisation et en implantant éventuellement des balises. Cela suppose que tous les usagers de la route puissent quand même circuler, je pense aux vélos par exemple. Néanmoins les voitures autonomes sauront prendre en compte les vélos et les piétons, bref tous les usagers qui n'ont pas vraiment besoin de signalisation qui peut être déportée sur un GPS.
Le permis de conduire, les radars, les contrôles routiers, les amendes, les PV deviendraient inutiles. La police et la gendarmerie seraient libérées d'énormément de tâches ingrates et inintéressantes. Elles pourraient se concentrer sur la résolution d'enquêtes plus importantes.
La justice serait aussi débarrassée de nombreuses procédures concernant les accidents de la route (dans le cas idéal ou le nombre d'accidents diminue...) ou les litiges sur les PV.
Évidemment tout le monde n'y trouverait pas son compte sauf à se projeter dans un futur plus lointain où l'automobile individuelle ne serait plus qu'une page de l'histoire.
Le code de la route ne disparaitrait pas mais serait réalisé en tenant en compte des possibilités réelles des voitures. On pourrait imaginer dans ce cas autoriser de faire cohabiter sur l'autoroute des vitesses différentes allant de 100 à 200km/h selon les capacités de la voiture et/ou le prix que le loueur à mis dans la location.
Tout ce système suppose des infrastructures informatiques importantes et que chaque voiture connaisse son environnement immédiat à chaque instant. La vie privée peut être difficile à sauvegarder mais elle est déjà bien entamée. Je ne vois pas trop comment résoudre ces problèmes mais ils ne sont pas nouveaux de toute façon.

Personnellement je ne trouve plus énormément de plaisir à conduire car ma conduite est désormais axée sur l'économie et le respect des limitations. La voiture ou la moto ne sont amusants que si on peut accélérer et aller à la vitesse qu'on veut, sinon c'est l'ennui assuré. Donc tant qu'à faire des règles très strictes, autant abandonner complètement cette activité qui n'apporte plus que frustration et argent dépensé par les individus et la communauté pour une efficacité limitée.
Un article qui va dans ce sens.

samedi, octobre 17 2015

Applet

Quand je lis ce document de Google sur les problèmes de sécurité avec les applications Web, je me dis que les Applets ont été écartées pour de mauvaises raisons.
Certes je ne suis pas un spécialiste en sécurité mais Google lui-même indique que l'utilisation massive d'AJAX a créé des failles de sécurité qui n'existaient pas avant avec des sites plus classiques. Et Google est un des plus actifs promoteurs des applications AJAX.
Par ailleurs ce qu'ils appellent Same-Origin Policy a été copié de ce qui avait été introduit par les Applets (en quelle année ? 1998 ?). De même le problème d'injection de code par des entrées utilisateurs n'est pas possible en Applets puisque l'application n'est pas faite en HTML/JS/JSON. C'est du Java. On peut difficilement imaginer saisir dans un formulaire du code Java en espérant qu'à l'affichage il va s'exécuter.
Je ne dis pas qu'il n'y a pas de failles dans les Applets mais je pense que ce ne sont pas des failles introduites par un mauvais codage alors qu'en HTML/AJAX/JS c'est le cœur du problème.
En fait on peut considérer que la plupart des sites ont des failles dues à une méconnaissance des problèmes de sécurité.
Bref tout cela me fait dire qu'avec HTML/AJAX/JS on a fait un bon en arrière incroyable en promouvant des technologies qui n'étaient pas adaptées pour faire des applications solides. D'ailleurs le nombre de frameworks qui existent dans ce domaine indique que ces technologies en sont au stade du prototype et que chacun cherche désespérément à combler les lacunes d'un système de développement bancal.
En fait - parenthèse - tout ce temps perdu me donne à penser que la concurrence exacerbée est vraiment un mauvais système. Au contraire une coopération entre les différents acteurs aurait abouti beaucoup plus rapidement (en théorie) à produire les fonctions manquantes sur les systèmes existant, en l’occurrence Java puisque c'est le sujet. L'idéologie des USA nous a entrainé dans des errements dont on n'est pas encore sorti.
Parallèlement Java est depuis longtemps une technologie aboutie et il aurait juste fallu corriger les quelques choses qui n'allaient pas (UI/Swing, le problème du déploiement par exemple) mais des guerres de pouvoir ont sabordé cela.
Quand je vois JavaFX 2, je me dis que si il était sorti en 2000 les choses auraient pu être différentes.
Alors on va me dire qu'avec Java il faut installer une JVM, c'est chiant. C'est vrai mais comment croyez-vous que JavaScript s'exécute ? Avec une VM embarquée comme l'était la JVM dans les premiers navigateurs.
De plus je pense que Java pourrait évoluer pour être modulaire et n'installer dans le navigateur que le strict nécessaire au fur et à mesure des besoins. De même, ne pourrait-on pas imaginer de livrer une application Java entièrement autonome (en fait c'est déjà possible en utilisant des outils payants) ?
Le problème principal étant que les acteurs qui font les navigateurs sont engagés dans une mise à l'écart de Java dans le Web et dans les systèmes car ils veulent tous que le développeur utilise leur framework de développement à l'exclusion de tout autre (Google, Apple, Microsoft). Java étant multi-plateforme il doit être tué.
De la part de Google c'est quand même un peu bizarre étant donné qu'il a volé choisi Java pour en faire le système de développement sur Android. D'ailleurs il n'a pas choisi JavaScript mais Java (tout le monde sait que JavaScript est un très mauvais langage...). De fait on peut considérer qu'il y a désormais deux Java différents qui évoluent de manière indépendante. Cela fractionne encore plus les énergies.
C'est une spécialité de l'informatique de refaire 100 fois les mêmes outils. Il suffit pour s'en convaincre de consulter la liste des langages de programmation sur Wikipedia. Il faut imaginer tout le temps et l'argent dépensé pour créer tous ces langages dont peut-être 10% sont couramment utilisés et encore moins dans l'industrie. Et encore ce ne sont que les langages de programmation. Il y a plein d'autres langages pour tout un tas d'usages tous plus ou moins différents parfois de manière très subtile.
Franchement les différences (je considère uniquement le langage) entre C++, Java, Ruby, Groovy, Python, Scala, C#, JavaScript, Go, Dart, Eiffel etc. justifient-elles de créer un nouveau langage et un nouveau environnement de compilation, d'exécution et de débug ? Ne pourrait-on pas juste améliorer l'existant ? C'est par exemple ce que fait Java 8 en intégrant des nouveautés présentes dans d'autres langages. Mais comme le processus est long, les autres langages ont le temps de prendre une place significative.
Ceci dit, c'est plaisant de découvrir un nouveau langage mais le problème se pose de pouvoir le maitriser pour le mettre en œuvre de manière efficace, sachant que si l'on fait cela on se disperse immanquablement et je ne peux m’empêcher de penser que cela nuit à l'efficacité globale. Une autre façon de voir est de s'inspirer de ce que l'on voit dans d'autres langages pour l'appliquer dans son langage courant. C'est parfois possible mais pas toujours du fait de manques rédhibitoires.
D'ailleurs - une parenthèse - cela me fait penser aux films SF dans lesquels les informaticiens arrivent à télécharger des programmes dans des systèmes dont ils ne savent rien. On imagine donc que le futur n'utilisera qu'un seul système, avec un seul type de langage, un seul type de binaire, un seul type de connexion etc. On branche, ça upload et POUF le programme s'exécute ! Magique. Quand on voit le bordel que c'est actuellement j'ai de la peine à l'imaginer.
Il y a quand même un domaine où Java est très populaire, c'est le domaine des applications serveur, et on peut considérer qu'il ne survit que pour cela. C'est dommage car Java est l'évolution de Smalltalk qui était aussi une plateforme entière de développement aboutie aussi bien client que serveur.

MAJ: j'étais à l'instant sur un forum de développement Mac et ça parlait de Swift. C'est vrai que j'avais oublié de le citer dans ma liste non exhaustive de langages. Je ne connais pas bien Swift mais il semble qu'il soit plus statique que Objective-C qui est dynamique par nature. En effet la méthode exécutée n'est découverte qu'à l'exécution et non à la compilation. Visiblement Swift corrige cela. Mais alors on peut se demander pourquoi ne pas avoir choisi Java qui est fortement typé ?

samedi, mai 30 2015

FS1R (4)

J'ai mis à disposition une première version de l'éditeur pour le FS1R. Vous pouvez le télécharger à cette adresse : FS1REditorFx

vendredi, mai 15 2015

Script Calibre

Pour ceux comme moi qui utilisent Calibre pour gérer leur bibliothèque d'ebooks, voici un script qui sert à déterminer l'emplacement de l'eBook dans le système de fichiers du lecteur :

program:
     firstTag = list_item(field('tags'), 0, ',');
     firstLang = list_item(field('languages'), 0, ',');
     contains(firstTag, '.*documentation.*',
         strcat('doc/', field('title')),
         test(firstLang,
             strcat(firstLang, '/', field('author_sort'), '/', field('title')),
             strcat(field('author_sort'), '/', field('title'))
         )
);

En gros j'ai trois sortes de eBooks : les documentations (étiquette: documentation), les livres en anglais et les livres en français. Je veux que les documentations aillent directement dans un répertoire 'doc', tandis que les livres sont triés par langue.
Ce script n'est sans doute pas parfait, c'est le premier que je fais. A noter que Calibre émet un warning lorsqu'il est validé mais cela fonctionne quand même.

dimanche, avril 26 2015

FS1R (3)

J'ai commencé à traiter les FSEQ mais c'est vraiment compliqué. Voici un avant-goût : FS1R FSEQ J'utilise l'API Chart de javafx mais ce n'est pas certain que ce soit la meilleure solution. J'essaye de contrôler la hauteur de chaque point avec la souris.

Sinon j'ai bien avancé sur l'édition des voices : FS1R voice Je pense qu'il faudrait que j'ajoute un bandeau avec des contrôles de volume ou des "mute" pour tous les opérateurs, que ce soit accessible tout le temps.

samedi, février 7 2015

FS1R (2)

J'ai avancé sur l'éditeur et l'édition des performances est quasi fonctionnelle à part l'édition des effets qui est encore très sommaire. L'ergonomie n'est pas encore terrible, j'ai plein de refactoring à réaliser pour que ce soit vraiment pratique mais il faut que je puisse l'utiliser pour juger de ce qui est bien et de ce que je dois changer.
Avant de faire l'édition des voices, j'aimerais regarder les FSEQ et voir ce que je peux faire là-dessus histoire de faire autre chose que d'aligner des potards.

FS1R common

FS1R Effects

FS1R part

lundi, janvier 26 2015

FS1R (1)

J'ai commencé un éditeur pour le Yamaha FS1R. Il est encore un peu limité !

FS1R

dimanche, janvier 4 2015

Windows

Ah Windows aime bien donner quelques frayeurs de temps en temps à son utilisateur.
J'ai mis à jour le BIOS de ma carte mère (première fois que je fais cela). Cela s'est bien passé à partir du programme @BIOS depuis Windows, ensuite je reboot et paf, ça ne boot pas. J'ai gambergé un peu pour finalement trouver une option du BIOS qui ne semblait pas correcte d'après les vagues souvenirs que j'en avais : il fallait AHCI et c'était IDE (en fait IDE m'a paru obsolète...). Donc après avoir changé ça, le PC arrive à booter, ouf !
Sauf que juste après il me dit que je dois ré-activer Windows bien que je n'ai pas changé de hardware. Bon finalement je viens de lancer le truc, il se lance, réfléchit un moment et me dit que c'est bon ! Merci encore.
Pffff, que de stress.

dimanche, décembre 7 2014

Et si je passais sur Linux ?

Je suis passé de Mac à Windows sans perdre beaucoup de logiciels. Parmi les logiciels que j'ai acheté, je crois que j'ai perdu uniquement Poser. Est-ce que ce serait le cas si je passais sur Linux ? Voici la liste des logiciels que j'utilise couramment :
Pour Internet :

  • Thunderbird : OK
  • Firefox OK
  • Filezilla OK
  • Putty ssh OK
  • Pidgin OK

Pour la musique :

  • Ableton Live 8 KO
  • Propellerheads Reason 7.1 KO
  • Audacity OK
  • iTunes KO
  • ObieEditorFx (mon éditeur Matrix-1000 écrit en Java 8) OK

Pour l'image 2D :

  • Gimp OK
  • ArtRage, semble fonctionner avec WINE, ?
  • Mischief : KO
  • SketchBook Express KO
  • driver Wacom pour la Bamboo ?

Pour l'image 3D :

  • Shade KO
  • Hexagon KO
  • Blender OK
  • Wings 3D OK
  • DAZ 3D KO (WINE ?)
  • Vue 6 KO
  • Bryce 7 KO

Pour la video :

  • VLC OK

Pour le développement :

  • Java OK
  • Netbeans OK
  • IDEA OK

Pour les ebooks :

  • Calibre OK

Pour les photos :

  • Galerie de photo Windows KO
  • Rawtherapee OK
  • driver RAW pour mon Pentax ?

Pour le système :

  • FreeFileSync OK

Les jeux :

  • XPlane OK
  • driver pour mon joystick Cyborg machin ?

Finalement les domaines les plus touchés sont la musique et la 3D. Pour la 3D ce n'est pas bloquant car j'en fait assez peu. Par contre pour la musique c'est vraiment bloquant. Une solution serait de passer sur BitWig mais je perdrais énormément de plugins VST dont certains payants (Zebra, Kuassa, Sampletank). En fait je ne sais pas si les plugins VST Windows fonctionnent sur Linux. Cela suppose aussi de faire une croix sur l'investissement que représente Live et Reason, ce qui n'est pas réjouissant.
Il faudrait aussi trouver un remplaçant pour itunes mais ça doit exister à condition que je convertisse les morceaux achetés en MP3 ou autre. Heureusement je n'en ai pas beaucoup.

Conclusion :
Je ne pense pas que Linux attirera beaucoup les gens tant que les logiciels commerciaux ne fonctionneront que sur Mac/Windows. Cela suppose que les éditeurs fassent l'effort de choisir des plateformes de développement qui le permettent. A ce titre Bitwig est intéressant car il est écrit en Java pour ce qui est de la GUI et en C pour l'audio. C'est vraiment remarquable et cela montre que Java est une plateforme sérieuse pas uniquement réservée aux serveurs.

dimanche, novembre 2 2014

ObieEditorFx Matrix-1000

J'ai terminé une première version de l'éditeur Java 8 pour le Matrix-1000. J'ai réussi à caser tous les paramètres sur une page ce qui était une condition sine qua non. En tout cas je le trouve beaucoup plus beau et plus ergonomique que celui de JSynthLib, sans me vanter. Bon c'est vrai j'ai honteusement copié le look des potentiomètres d'Ableton Live, j'avoue, comme ça je ne suis pas dépaysé ;)
Vous pouvez le télécharger ici. En voici un aperçu : ObieEditorFx

dimanche, octobre 26 2014

Preferences

Je me demandais comment gérer les préférences en Java de manière transparente par rapport au système, et bien en fait c'est déjà dans le JDK en ce depuis la version 1.4 !
C'est la classe java.util.prefs.Preferences qui gère cela.
Voila ce que c'est que d'avoir fait des logiciels serveurs pendant des années, il y a des classes dont je n'ai aucune connaissance.

Optional

Je viens de m'apercevoir que le JDK 8 contient la classe Optional qui sert à contenir une valeur potentiellement absente.
Habituellement on retourne null pour signifier l'absence de valeur. Néanmoins cela peut provoquer des NPE plus tard dans le code.
Je n'étais pas hyper convaincu de l'intérêt de Optional, mais je pense que c'est quand même mieux de l'utiliser pour plusieurs raisons :

  1. le fait que la méthode peut ne pas fournir de valeur est indiqué dans sa signature
  2. l'interface est claire : isPresent et get
  3. le get lève NoSuchElementException


Le type de retour indique la possibilité de ne pas avoir de valeur alors qu'avec une méthode qui retourne null il faut consulter la javadoc. Ainsi si on prend l'habitude de tester isPresent avant de l'utiliser, pas de problème. Mais même si on appelle get sur un Optional vide on à l'exception. En fait il est préférable d'utiliser la méthode ifPresent comme indiqué sur la page Oracle.
Évidemment cela suppose de ne pas transmettre un Optional en paramètre car là il me semble qu'on retombe dans les inconvénients de transmettre une valeur null. Je pense qu'il faut appeler isPresent et get immédiatement après le retour de méthode, ainsi si il y a un problème il est localisé au plus près de la source.

Voir aussi

samedi, octobre 11 2014

Matrix 1000

Le Matrix est vieux synthétiseur analogique que j'ai le plaisir de posséder. Malgré toutes ses qualités, il ne permet pas d'éditer directement les sons.
Dernièrement une personne m'a remercié d'avoir fait un éditeur pour Mac en m'envoyant une EPROM qui corrige certains bugs du synthé. C'est assez extraordinaire le travail des passionnés qui permet de mettre à jour des appareils très vieux mais qui continuent de fonctionner néanmoins.
Du coup, je me suis reposé la question de l'éditeur pour ce Matrix car maintenant que je suis sur Windows, comble de l'ironie je ne peux plus utiliser l'éditeur que j'avais fait pour Mac.
J'ai donc décidé d'en faire un nouveau en JavaFX. Je ne suis pas encore très avancé mais voici une image de la chose : Obie.jpg

vendredi, avril 25 2014

ME80

C'est le nom d'un plugin VST fabuleux qui simule le Yamaha CS80, rien que ça. Il est disponible sur le site memorymoon pour la modique somme de $40. Par contre il ne fonctionne que sur Windows en 32bits. Je crois qu'ils travaillent sur une version 64bits.
Il exploite l'aftertouch polyphonique évidemment et aussi l'aftertouch par canal avec un mode particulier et optionnel qui n'applique l'aftertouch uniquement sur la dernière note jouée.
J'arrive ici à une absurdité totale qui est que les deux logiciels audio que je possède (j'ai payé au moins 1000€ bordel !) à savoir Ableton Live 8 et Reason 7 ne supportent pas l'aftertouch polyphonique alors qu'un soft comme Reaper à $60 le supporte. Résultat, quand je joue sur le ME80 à travers Ableton je ne dispose plus que de l'aftertouch par canal alors que j'ai un Ensoniq VFX qui possède - chose rare - l'aftertouch polyphonique.
Je le dis c'est un scandale.
La norme MIDI date de 1983 et ces cons d'Ableton n'ont pas encore trouvé le temps de l'implémenter ! Dingue.
Alors le son il est comment hein hein ?
Ben le son est absolument génial, on se prend pour Vangelis en 2 secondes. Un truc à signaler aussi c'est que l'aftertouch est filtré, ce qui veut dire qu'il change de façon beaucoup plus naturelle qu'avec d'autres synthés qui ne filtrent rien. Par exemple si je patch un son utilisant l'aftertouch sur Zebra ça sonne carrément moins bien, il y a des sauts disgracieux.
Vous pouvez écoutez deux petites interprétations sur ma page de musique. A noter que seul le son de brass vient du ME80 dans Blade Runner. Il faudrait que j'ajoute une improvisation pendant laquelle je change le son en direct.
J'avais essayé le CS80V d'Arturia mais il ne m'a jamais convaincu, et chose bizarre il n'avait aucun preset qui rappelait de près ou de loin Vangelis alors que le ME80 en a plein, ça veut tout dire. ME80

dimanche, décembre 15 2013

Cohérence cardiaque

Pour ceux qui débutent dans la pratique de la cohérence cardiaque (comme moi), j'ai fait un petit programme Java qui aide à se synchroniser sur le bon rythme.

Cohérence cardiaque

Vous pouvez le télécharger ici

- page 1 de 2