La petite musique du haut-parleur système

Soyez le premier à donner votre avis sur cette source.

Vue 5 089 fois - Téléchargée 684 fois

Description

Hé bien c'est une classe qui permet de faire de la musique avec le speaker de la carte mère. On écrit la musique sous forme de chaine (octave & note & altération & rythme), puis elle est convertie en fréquences et en durées. On peux mémoriser plusieurs voix et en jouer une ou plusieurs en même temps, au tempo voulu.

En plus du module de classe (Speaker.cls) il y a un projet de démonstration avec quelques partitions pour l'exemple.

Source / Exemple :


'Format d'une note : Octave(fac) & Note(oblig) & Altération(fac) & Rythme(fac)
'Si l'octave ou le rythme n'est pas précisé c'est le même que le précédent

'Octave : de 0 à 9
'Note : de A à G, ou S (silence)
'Altération : # ou &
'Rythme : r (ronde), b (blanche), n (noire), c (croche), d (double), t (triple), q (quadruple)

'La : "A"
'Do dièse 4 : "4C#"
'Si bémol : "B&"
'Sol noire 2 : "2Gn"
'Ré bémol blanche pointé : "D&b."
'Fa 2 temps 1/2 (liaison) : "Fb_c
'Do et sol en blanche : "C|Gb"
'Accord do 7e en croche double pointé : "C|E|G|B&c.."

'Au clair de la lune : "3Cc C C D En D Cc E D D Cb"

'jouer une voix
Speaker.Charger "Cc C C D En D Cc E D D Cb"
Speaker.Jouer

'la jouer plus vite (par défaut ça joue à 60)
Speaker.Jouer 120

'rajouter 2 voix et jouer les 3
Speaker.Charger "1Cb. Dn C D Cb", 2
Speaker.Charger "6Cn S E D C S C", 3
Speaker.Jouer

'jouer les voix 2 à 3 très vite
Speaker.Jouer 200, 2, 3

'effacer la voix 1
Speaker.Charger "", 1

'commencer à jouer une note
Speaker.JouerNote "A#|Dn._b"

'l'arrêter
Speaker.StopperNote

Conclusion :


Ce code ne marche que sur 2000 et XP, l'API Beep fonctionne mal sur les autres systèmes. Et puis la classe n'est pas très complète j'ai pas eu le temps de finir, à vous de l'améliorer.

Note : suivant les buzzer on entend des choses assez différentes. Il faut bien faire attention à la propriété "Echantillonage" : normalement plus elle est faible mieux ça marche, mais certains buzzers émettent un grésillement infame si elle est trop petite. Pour ce que j'ai vu, ça marche pas mal entre 1 et 30 ms.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
26
Date d'inscription
mardi 21 novembre 2000
Statut
Membre
Dernière intervention
17 novembre 2007

Trés sympa cette source !

Je crois que je vais intégrer quelques musiques basiques dans mes programmes.... mdr ! ;)
Messages postés
1
Date d'inscription
dimanche 11 avril 2004
Statut
Membre
Dernière intervention
7 janvier 2006

Cool. Il faut du temps pour apprendre à écrire une partition.
Messages postés
1114
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Bé en fait, je crois que ça dépend des cartes. Certaines ont un connecteur pour brancher un speaker d'env 3 cm de diamètre, d'autre ont les 2 (connect+HP intégré). J'ai déja eu des cartes qui faisaient les BIP malgré le cable non branché du speaker supplémentaire, et d'autres non.
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
c cool comme source, mais moi j'ai un shuttl et j'ai bien peur de ne pas avoir de speaker sur la CM :/
donc ca marche pô snif
Messages postés
1114
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Bien pensé ;)
Le probleme, c'est que j'ai pas branché l'HP Systeme, je n'aime pas les vieux bruits qu'ils font :p

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.