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

Langage Delphi Discussion :

Midi et système exclusif.


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 30
    Points
    30
    Par défaut Midi et système exclusif.
    Bonsoir à tous,
    je recherche le fichier "midi.zip"
    qui était situé à cette adresse (mais qui n'y est plus évidement): http://www.pics-software.de/download/misc/midi.zip, afin de faire de jouer du midi sous Delphi.

    Sinon, j'ai trouvé pas mal d'info sur le forum pour jouer des fichiers midi , mais c'est pas ce qui m'interesse. Tous ce que je veux, c'est jouer des notes en envoyant une commande au système exclusif d'appareil externe ou à l'émulateur de synthé qui se trouve dans windows. A moins d'avoir mal cherché, j'ai rien trouvé là dessus.
    J'ai précisé 'l'émulateur' parce que j'ai été obligé de désactiver la carte son de mon ordi. qui mettez le souk avec ma Delta 66(carte son dédié aux musiciens, mais qui ne possède pas de synthé en interne).
    Si c'est comme à l'époque du basic ça devrait être assez simple, il suffit de me donner un exemple de commande. À moins que cela est évolué et qu'on puisse lui faire jouer un do en entrant do au lieu de nombres. Ce serait le pieds!

    Un carambar au premier qui me donne la réponse !

    Merci.

    Pendant que j'y suis, si quelqu'un a fait un petit programme pour sortir le système exclusif de synthé et autre boite d'effet, je suis preneur!

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 871
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 871
    Points : 15 287
    Points
    15 287
    Par défaut
    Yop !

    Pas compris grand chose à tes explications, mais s'il est question de "jouer du midi sous Delphi", tu pourrais jeter un oeil à BASS, qui est une librairie bien sympa, avec des démos et tout le fourbi.

  3. #3
    Membre régulier Avatar de user 56gt8
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 92
    Points
    92
    Par défaut
    Bonjour , il y l'unité midi hyper liée ci dessous qui est pas mal ( en tout cas elle correpond à mes besoins)
    http://www.midimountain.com/delphi_midi.html

  4. #4
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Bonsoir.

    Merci user 56gt8

    Sympa un petit logiciel qui à l'air de reconnaitre le système exclusif! Je vais tester.

    Merci aussi, jipété.
    Si c'est "le système exclusif" qui te gène pose moi la question je te répondrais avec plaisir pour t'expliquer ce que c'est.
    Mais avant tout, je sais pas ce que c'est une librairie. J'ai vu ça plusieurs fois on dit d'utiliser tel ou tel librairie, mais c'est quoi, et ça sert à quoi. Si c'est quelque chose à ajouter dans Delphi, ou ça se met?

    Sinon pour faire simple qu'est-ce que je dois écrire dans delphi pour qu'il me joue un do avec le synthé de la carte son. C'est tous ce que j'ai besoin de savoir finallement! S'il vous plait donnez moi un exemple!
    "Moi petit débutant en Delphi pas tout comprendre encore."

    Merci d'avance.

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 755
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 755
    Points : 13 349
    Points
    13 349
    Par défaut
    Je te laisse déterminer la fréquence de ton do . Les autres infos sont ici.

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Bonsoir.

    La note do = C.
    Tu dois pouvoir jouer la note que tu veux en utilisant ce tableau de correspondance, par exemple C5 = 60 :
    http://www.midimountain.com/midi/midi_note_numbers.html

    Donc normalement, si tu utilises la démo donnée par user 56gt8, il faudrait de convertir 60 en hexadécimal.
    -> 3C

  7. #7
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Je te laisse déterminer la fréquence de ton do . Les autres infos sont ici.
    J'ai récuperé le programme donné par andnotor. Déjà il faut créer une procédure, et j'arrive pas à le faire marcher sur mon ordi. Et visiblement il va chercher les sons dans la table wave de la carte et non pas les instruments émulé sur celle si. Mais je me trompe peut-être!
    J'ai regardé avec attention aussi tous les autres posts, et j'en arrive à la conclusion suivante.

    Il n'existe aucunes commandes qui permette de faire jouer des notes midi sous Delphi sans avoir au préalable créer une procédure.

    Sous Atari, je me souviens avoir fait jouer des notes à mon synthé qui était à l' époque externe. C'était d'une simplicité enfantine. Si je me souvient bien je me servais à l'époque du GFAbasic comme langage de programmation. Il suffisait de taper out(3) "nombre hexadécimal" et ça vous sortait, suivant le nombre hexadécimal entré; un note on, un program change, un note off etc. Déjà tous les appareils suivaient la norme général midi.
    Et les cartes sons internes des ordis actuel suivent encore cette norme.
    Alors pourquoi Borland n' a pas pensé à ça?

    En tous cas je vous remercie vivement de l'attention que vous m'avez accordés.

    Amicalement, Pascal.

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Borland a pensé à tout, enfin c'est surtout le rôle de l'OS, ici Windows;
    Borland n'a fait que réaliser l'interface de programmation pour accèder à ses fonctions.
    Avec le fameux MMSYSTEM pour l'accès aux fonctions multimedias de base.
    Sans oublier DirectX.

    Delphi est un environnement de programmation très complet et puissant.
    Evidemment, faut se pencher sérieusement sur la question, chercher à comprendre, fouiner, tester...

    sujet résolu ?

  9. #9
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    MMSYSTEM a beau être fameux, je sais pas ce que c'est.
    Bon ben ma nouvelle question est: existe t'il dans l'interface de programmation de Delphi, un moyen pour jouer une note du synthé interne en MIDI sans bidouiller dans la table d'onde.
    une réponse direct me suffira. C'est à dire dans le pire des cas un oui ou un non.
    Ça fait des jours que j'ai cherché des infos sur ce sujet avant de poster. Et plus je cherche plus je trouve des explications qui me plongent dans la confusion. Loin de moi l'idée de mettre en doute les compétences de ceux qui les ont écrites, mais tous ça est beaucoup trop théorique pour moi. Pour comprendre quelque chose j'ai besoin d'exemple. Je suis juste un artiste qui vient faire une incursion dans le monde magique, mais combien austère de la programmation. Excusez-moi je m'emballe!

    Tous ce que je recherche c'est une explication simple, un peu de pédagogie ne fait pas de mal...

    Bonsoir.

  10. #10
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Tu peux très bien obtenir la même chose qu'avec un Atari : Une fonction super simple pour jouer une note midi avec un nombre hexadécimal en paramètre, il suffit de préparer une unité qui contiendra cette fonction. Elle-même utilisera l'unité mmsystem.pas qui fournira l'accès aux fonctions Midi de Windows.

    J'ai fais l'effort de ressortir mon vieux disque dur pour retrouver ma démo...
    Tu cliques sur le bouton comme si tu appuyais sur une touche d'un synthé :

    http://sub0.developpez.com/delphi/midi.zip

    ► La notation hexadécimale des notes est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      midiOutShortMsg(MidiOut, $007F3C90);
    1er octet = 00 (inutilisé?)
    2ème octet = 7F (la vélocité 0..127)
    3ème octet = 3C (la note DO)
    4ème octet = le status + canal midi
    90 = jouer la note sur le canal midi 1
    80 = stopper la note sur le canal midi 1

    ► Pour changer d'instrument avant de jouer la note :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      midiOutShortMsg(MidiOut, $0000C4C0);
      midiOutShortMsg(MidiOut, $007F3C90);
    C4 = numéro du programme (0..127)
    C0 = commande + canal midi
    C = ProgramChange
    0 = canal midi 1

    ► Pour stopper toutes les notes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      midiOutShortMsg(MidiOut, $00007BB0);
    A+

  11. #11
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Merci beaucoup Sub0.

    C'est sympa de me livrer tes petits secrets.
    Avec ces super explications je devrais m'en sortir.
    C'est sympa d'avoir resorti ton vieux disque dur juste pour moi!
    Si je trouve l'utilisation du premier octet j'en ferais part dans un prochain post.
    (Il servirait pour les effets que ça ne m'étonnerait pas!).
    Laisse moi quelques jours pour mettre en résolu car je vais pas pouvoir tout de suite faire des essais. Serais absent.
    A+ et merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Système]Verrouillage en mode exclusif
    Par nunurs83 dans le forum Sécurité
    Réponses: 4
    Dernier message: 25/04/2007, 14h51
  2. [Système]Base de données indisponible car en mode exclusif
    Par karish dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 27/03/2007, 10h00
  3. Réponses: 13
    Dernier message: 23/03/2007, 12h22
  4. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  5. IA avec le système de note
    Par scorpiwolf dans le forum C
    Réponses: 4
    Dernier message: 06/05/2002, 12h13

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