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

C Discussion :

musique midi dll


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Ingénieur système
    Inscrit en
    Janvier 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur système

    Informations forums :
    Inscription : Janvier 2008
    Messages : 58
    Par défaut musique midi dll
    bonjour à la communauté

    je vais cherché à être précis (peut être trop !!!)
    je programme sous VB6 (tout le monde n'est pas parfait)
    j'ai développé un programme qui me permet de faire du piano bar (je suis aussi modestement un pianiste)
    c'est un genre de logiciel karoké midi plus élaboré qui m'affiche également l'accompagnement piano, gère des playlistes, gère le tempo
    permet de se positionner dans le morceau, gère le play en temps et en mesure, etc...
    (c'est curieux chez les programmeurs ce besoin de faire des phrases !!!)

    je pensais que j'allais m'en sortir avec directx géré directement dans VB
    ca fonctionne pour les fonctions de base mais galère pour aller plus loin dans les fonctionnalités (exemple entre autres, le transpose ...)
    j'ai fait le tour de la question et je suis obligé de créer une dll en utilisant les low-fonctions de winmm.dll pour une question de rapidité de traitement des évènemenents midi
    comme la plus part des programmes midi je suppose

    plutot que developper en C une dll (j'ai quelques bases mais pas assez pour aller de A jusqu'à Z) j'ai cherché une dll existante
    je suis tombé sur l'excellent sequenceur de gagah

    il n'utilise pas de dll mais les fonctions dans son source sont celles dont j'ai besoin et après en tatonnant je pourrais les adapter
    mais voilà, je n'ai pas assez de connaissance pour me retourver dans ses sources malgré tout super bien organisées et documentées
    j'ai essayé de le contacter sur cette messagerie sans réponse

    autre piste, j'ai essayé aussi la dll maximum midi mais elle ne fonctionne pas avec VB
    je pense (meme sur) que les fonctions sont pas déclarées au niveau de l'export pour fonctionner avec VB
    et je ne suis pas assez callé pour le faire
    http://www.maxmidi.com/

    bref (un peu long mais ca economise les dialogues)

    voila ce dont j'ai besoin
    quelqu'un qui peut me donner une réponse sur une dll en C qui fonctionne sous VB6 avec des sources documentées qui :
    gère les periphériques midi in out, charge un fichier midi, le joue (donc forcement avec un timer)
    (plus serait la cerise sur le gateau)

    ou quelqu'un qui peut contacter gagah
    ou quelqu'un qui serait reprendre les sources de gagah pour isoler les fonctions et les mettre en dll
    ou quelqu'un qui serait comment redéclarer les fonctions de maximum midi pour que je puissse les recomplier sous codeblock

    précision "j'essaye" de programmer en C avec codeblock et le compilateur mingw

    j'ai récupéré pleins de sources mais sans résultat

    à voir tous les messages sur pleins de forums je pense que ca pourrait aussi en aider plus d'un
    merci d'avance à tous

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par ccinfonews Voir le message
    je vais cherché à être précis (peut être trop !!!)
    je programme sous VB6 (tout le monde n'est pas parfait)
    j'ai développé un programme qui me permet de faire du piano bar (je suis aussi modestement un pianiste)
    c'est un genre de logiciel karoké midi plus élaboré qui m'affiche également l'accompagnement piano, gère des playlistes, gère le tempo
    permet de se positionner dans le morceau, gère le play en temps et en mesure, etc...
    <...>
    Il est un peu tard, mais en tant que musicien, le sujet m'interesse. N'hésite pas à me relancer si je l'oublie

    C'est bien de faire de phrases et d'écrire correctement, le français (ça change), mais évite les commentaires inutiles genre :

    (peut être trop !!!), (tout le monde n'est pas parfait)
    etc.

    (aucune honte à avoir d'utiliser VB6. C'est probablement une des meilleure machine de guerre que je connaisse pour faire du développement Windows...)

  3. #3
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    J'ai eu le temps de faire une petite source hier (spécialement pour toi ) alors voilà. C'est dans le ZIP et comme d'hab j'ai joint un mini tutorial avec pour épargner les sources des commentaires trop longs. midi.dll implémente les fonctions permettant de jouer une note, etc. Le programme midi_demo.exe montre un exemple d'utilisation de la dll. Tu dois te lier avec midi.lib (Code::Blocks : libmidi.a). Le ZIP contient tous les fichiers : midi.pdf (le tutorial), midi.c, midi.h, midi.dll, libmidi.a, midi_demo.c et midi.exe.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Melem Voir le message
    J'ai eu le temps de faire une petite source hier (spécialement pour toi ) alors voilà.<...>
    Miam !

  5. #5
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    C'était bon?

    @ccinfonews : J'ai oublié un truc, pour jouer un fichier midi il faut juste utiliser les commandes MCI. Pour ça, il y a la fonction mciSendString que tu connais déjà peut-être, elle est très simple à utiliser. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <windows.h>
    #include <mmsystem.h>
    #include <stdio.h>
     
    int main()
    {
        mciSendString("open musique.midi alias zik", NULL, 0, NULL);
        mciSendString("play zik", NULL, 0, NULL);
        getchar();
        mciSendString("stop zik", NULL, 0, NULL);
        mciSendString("close zik", NULL, 0, NULL);
     
        return 0;
    }
    Pour plus d'infos regarde l'aide sur MSDN : http://msdn2.microsoft.com/en-us/lib...92(VS.85).aspx

  6. #6
    Membre confirmé
    Profil pro
    Ingénieur système
    Inscrit en
    Janvier 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur système

    Informations forums :
    Inscription : Janvier 2008
    Messages : 58
    Par défaut
    Hello Melem

    je te remercie un peu tard de ce que tu proposes
    mais je n'avais pas de notification et je pensais que ca interressais personne
    je suis revenu après un contact avec tintin72 et découvre tes posts

    si tu es encore sur les forums je regarde tout ca demain et te tiens au courant

    merci encore une fois

  7. #7
    Membre confirmé
    Profil pro
    Ingénieur système
    Inscrit en
    Janvier 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur système

    Informations forums :
    Inscription : Janvier 2008
    Messages : 58
    Par défaut
    hello Melem

    je viens de regarder ce que tu m'avais concocté - DLL et exemple
    c'est effectivement dans cet esprit que je souhaite dev cette DLL
    les low api que tu utilises je les maitrise
    lecture devices, send short or long message, ...

    mais c'est pour faire l'ensemble de la DLL que je ne maitrise pas assez le C

    exemple rapide de fonctions en C
    chargement du fichier midi (type 0 et 1) évènements "dans une seule piste" ou en liste chainée...
    (ca je l'ai fait mais pas en liste chainée)
    play (initialisation d'un timer précis et envoi des évènements) avec lecture temps réel de la position time ou beat:mes...

    il me manque des connaissances en C mais je connais parfaitement la théorie
    j'ai fait une analyse fonctionnelle

    en ce qui concerne les mci - j'ai développé mon premier programme midi en utilisant ces api (je l'utilise encore)
    ca fonctionnait bien mais ne permet pas de faire des fonctions élaborées comme par exemple le transpose

    si tu as un peu de temps et que tu peux m'aider ce serait super

    je te remercie encore une fois de ton attention

  8. #8
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Un langage de programmation, ça s'apprend. Tu ne peux pas utiliser le C si tu ne le connais pas donc apprends-le avant de l'utiliser. Sinon, laisse la DLL comme elle est et utilise-la depuis le langage que tu maîtrises déjà.

    Pour enchaîner des commandes (donc jouer de la musique), utilise un tableau au lieu d'une liste chaînée. Pour représenter une commande, utilise une structure contenant la commande proprement dire (commande MIDI) et le temps qu'il faut avant de passer à la commande suivante.

    Pour le transpose, pourquoi t'as besoin de fonction pour le faire. Tu ne peux pas le faire toi-même ?

  9. #9
    Membre confirmé
    Profil pro
    Ingénieur système
    Inscrit en
    Janvier 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur système

    Informations forums :
    Inscription : Janvier 2008
    Messages : 58
    Par défaut
    mouais

    tes commentaires sont d'une évidence
    t'aurais pu t'éconimiser

    je te remercie pour ta première réponse mais pas pour le reste
    je sais ce dont j'ai besoin et ma demande est claire

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/10/2013, 02h47
  2. programmer une dll midi
    Par ccinfonews dans le forum Autres
    Réponses: 0
    Dernier message: 27/04/2009, 17h16
  3. [musique] Synthé midi réaliste
    Par Asdorve dans le forum La taverne du Club : Humour et divers
    Réponses: 7
    Dernier message: 13/03/2008, 19h06
  4. Fichier Midi : récupérer les notes de musique
    Par zardi dans le forum Multimédia
    Réponses: 2
    Dernier message: 20/12/2005, 02h38
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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