IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

Utiliser la carte son


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Utiliser la carte son
    Matériel
    carte mère Asrock 775i65 G (carte son et video intégrées)

    Bonjour,
    Je suis débutant en assembleur, et j'aimerais faire du son , musique en tant réel autrement dit sans passer par un fichier *.wav.
    En résumé :
    stocker le son dans la ram sous la forme d'un tableau.
    ensuite le jouer en utilisant

    Je suis un ancien programmateur de Quick Basic (Qbasic), maintenant évidemment un peu dépassé .... mais il exister une fonction sound pour jouer du son Sound(fréquence,temps)

    Je n'ai pas trouvé de fonction équivalente en Python, C

    J'ai donc recherché en assembleur(le langage le plus près de la machine !), j'ai vu en effet qu'il y avait une interruption int 220h.
    Cependant pas de détails sur les fonctions associées à l'interruption

    Ma demande est donc double :
    en assembleur où puis je trouver les fonctions associées à l'interrution 220h
    existe il un langage informatique où je peux faire du son en temps réel(sans passer par un fichier *.wav)

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 402
    Points : 23 787
    Points
    23 787
    Par défaut
    Bonjour,

    Malheureusement, il va falloir te remettre un peu à niveau, car le fonctionnement des PC contemporains a considérablement évolué depuis les années 1990.

    Il n'y a pas d'interruption 220h. Le port 220h, en revanche, était le port utilisé par les cartes Soundblaster, puis par leurs compatibles (strictement compatibles, pas simplement au niveau des appels du pilote). Il était possible, sous D.O.S., d'écrire un petit programme qui faisait jouer un sample directement, même en utilisant le D.M.A., ce qui nous a fait passer des après-midi très sympas quand j'étais ado. Enfin, c'était possible quand on n'entrait pas en conflit avec EMM386.

    Aujourd'hui, les cartes utilisent majoritairement le port PCI, les standards ont considérablement évolué (on a eu AC97 pendant un moment ...), et surtout, il y a belle lurette que tous les systèmes d'exploitation, désormais, fonctionnent en mode protégé et ne te laissent plus accéder directement au matériel.

    La réponse est donc : il faut demander à ton système d'exploitation de jouer ton son.

    Après, cela dépend donc de l'environnement dans lequel tu te trouves. Sous Windows, il existe PlaySound pour faire cela facilement.

    Ces primitives sont surtout faites pour être exploitées en C. Ça veut dire qu'il faut que tu les appelles de la même façon. Pour cela, on empile généralement tous les paramètres (dans la pile, donc) avant de faire un CALL de ladite fonction.

    Il existait une macro INVOKE pour le faire facilement. Je ne sais pas si elle fonctionne toujours ou pas.

  3. #3
    Membre actif

    Inscrit en
    Février 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 200
    Points : 235
    Points
    235
    Par défaut
    Le gros changement réside surtout dans le fait que ce n'est plus ton CPU qui doit faire le travail mais ton DSP (à la manière d'une carte graphique). C'est lui (le DSP) qui génère une interruption cyclique (qui fixe aussi les latences) et te permet de synchroniser les maj. des datas via une call-back.

    Si tu désires faire de la synthèse (puisque tu parles de temps réel), le format des données ne devrait pas trop te poser de problème d’adaptation. La modification dynamique de tes tables ne posant pas non plus de problèmes particuliers si tu respectes l’architecture interruption / callback.

    Si ton but n’est que de gérer des blocs de samples statiques, la partie jeux de DirectX encapsule des gestionnaires complets (y compris 3D, réverbération, filtres…).

    Il faut que tu télécharges et étudie le SDK et le SDK DirectX. Toutes les documentations, sérieuses, sont en anglais. Attention aux vieilles API, la plupart sont déprecated ou incompatibles.

    Quoi qu'il en soit, si l'approche te paraît plus complexe, dans un premier temps, la puissance de contrôle est largement démultipliée pour une charge quasiment nulle.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Tout d'abord, merci de vos réponses, vous m'avez donné quelques pistes de travail.
    je vais commencer par regarder playsound !
    Encore merci

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/12/2009, 07h25
  2. utiliser la carte son comme entrée
    Par chatelot16 dans le forum Débuter
    Réponses: 3
    Dernier message: 19/04/2009, 13h48
  3. utiliser la carte son comme entrée
    Par chatelot16 dans le forum Programmation multimédia/Jeux
    Réponses: 0
    Dernier message: 18/04/2009, 15h13
  4. Impossible d'utiliser ma carte son :(
    Par Leobaillard dans le forum Windows Vista
    Réponses: 2
    Dernier message: 10/06/2006, 17h37
  5. Utiliser la carte son
    Par aliwassem dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 04/12/2005, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo