Voila mon premier programme en C++ ! (à l'origine traduit du Turbo Pascal en C puis C++)
Il est en mode console, et ne fonctionne visiblement que sur XP, à cause d'une API (Beep()) moins paramétrable sous 9x.
Le fonctionnement est très simple : votre clavier d'ordinateur est à présent un clavier de synthé (très analogique).
Vous jouez une phrase (Q = Do -> * = Sol, + touches noires Z = Do# -> $ = Fa #), qui est jouée en boucle après pression de échap.
Fonctions (en bouclage) : Reverse (même rythme, notes inversées), echap (jouage du début), etc tout est indiqué.
Améliorations envisagées : interface graphique, fonctions de sound mapping au lieu de Beep() qui n'est pas top (minuscule délai, compatible avec XP seulement, courbe non paramétrable (sinusoïde, et encore ça dépend). Lancements de samples grace au pavé num. etc il y en aurait des choses à faire..... Dans l'idéal, un portage sur système embarqué pour en faire un vrai instrument ?
Voila j'aimerais donc votre avis sur la façon dont c'est codé, conseils, remarques...
Si ça manque de commentaires, merci de me le faire remarquer, j'en ajoute quelques uns pour cppfrance mais peut etre pas assez.
A oui, et j'oubliais, codé avec Dev-C++.
Merci à tous :-)
Source / Exemple :
/* voir le zip */
Conclusion :
Quelques défauts :
- Je n'ai pas encore trouvé le graal pour l'interception des touches dans la fonction Loop() : c'est un peu du bricolage.
- J'ai tout transformé les fonctions C en fonctions C++ (car le C en C++ c'est mal il paraît, et puis faut bien que j'apprenne), et il me manque encore quelques fonctionnalités comme le traitement des erreurs d'ouverture/lecture/écriture de fichier (Exceptions peut-etre ?)...
- Bug intermittant : parfois (rare) le sample arrête de boucler, pour qui pour quoi...
- Taille impressionnante de l'exe (1,38 Mo) !? la faute aux #include ?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.