Page 2 sur 3

Publié : dim. 26/sept./2004 18:55
par Jacobus
Salut,

Il semble que chez moi, le seul problème concerne l'ouverture de fichier, car une partie seulement est lue, mais c'est le RIFF qui n'est pas reconnu.
D'ailleurs j'ai remarqué un truc.
Si j'essaie d'ouvrir un fichier, il est ouvert pendant 2 secondes environ puis se referme et 2 à 3 secondes après apparaît le message d'erreur annonçant que le RIFF n'est pas reconnu.
Mais si au lieu de fermer les fenêtres ouvertes immédiatement et que j'attend un peu, j'ai une répétition des messages d'erreur, sur les précédents qui ne se sont pas fermés. J'ai attendu pour voir... à trois répétitions j'ai commencé à vouloir les refermer une à une ( des doublons) et cela n'a pas été facile. temps de fermeture conjugué au temps de réapparition des autres... j'en avais plein l'une sur l'autre.
Maintenant j'atends plus je ferme aussi sec. (Ceci tant que la fenêtre MDI du fichier que j'ai tenté d'ouvrir est affichée, vide bien sûr)

Voilà, juste pour info
@+ Jacobus

Publié : dim. 26/sept./2004 22:09
par ZapMan
Les messages d'erreur sont-ils tous les mêmes ? Quel est exactement le texte ou les textes de ces messages ? La version que je t'ai envoyée change-t-elle quelque chose pour ce message ? Et pour le problème d'affichage de l'aide ? (c'était notre séquence "questions pour un champion"). La version 20e que je viens de mettre en ligne présente encore une petite différence concernant l'ouverture des fichiers, il serait également intéressant que tu compare avec la version 20d que je t'ai expédié.

Publié : lun. 27/sept./2004 8:27
par Jacobus
:D Est-ce que je reçois 20 000 € si je répond correctement ? :lol:
Certains messages d'erreur comportent le nombre d'octets lus, puis le message affiche Formats de fichiers non reconnus(liste) et plus loin entre paranthèses (RIFF not found) Bref, je refais des tests et je t'envoie des captures en Gif, ce sera plus probant.

Publié : lun. 27/sept./2004 21:06
par ZapMan
Merci. Pour les 20 000 euros, je suis sûr que le projet te rapportera plus que ça !

Publié : mer. 29/sept./2004 19:16
par Le Soldat Inconnu
Pour l'intégration de ma lib ToolBarXP, j'ai résolu le prob.

j'ai du modifier une lib à cause de ta fenêtre conçu avec CreateWindowEx_(

je t'envoie la lib modifié et le code exemple

Publié : mer. 29/sept./2004 21:11
par ZapMan
T'es un chef, Régis ! :wink:

Voici, juste pour vous apâter, un apperçu de mon travail en cours sur MonPiano :

Image

Les notes figurant sur la partition sont bien entendu éditables à la souris en hauteur, position et longueur.

Publié : mer. 06/oct./2004 13:09
par ZapMan
Je touche au but. Je viens de réactualiser l'image ci-dessus.

Publié : dim. 10/oct./2004 17:42
par Jacobus
Salut :D

Splendide !! Quel phénomène ce ZapMan !

Je viens de référencer freesoundeditor sur http://fr.audiofanzine.com/ dans la partie qui m'est réservée, ce qui devrait t'apporter quelques visites supplémentaires...enfin j'espère. la communauté comptant plus de 80000 membres avec plus de 800 connectés en permanence. il se pourrait donc que tu reçoives du courrier de ceux-ci...tous très Music.
Qu'est-ce-tu dis ? ta boîte est pleine ! :mrgreen:

Un petit blème pour télécharger les Zip sur freesoundeditor, j'y arrive pas.
j'obtiens que des documents html. :roll:

Dans le Métronome de MonPiano, m'est avis que la cadence se compte en BPM et non en BMP... une petite inversion :wink:

DropUpLoad : Gros travail d'utilité générale je dirais, ta démonstration est plus qu'intéressante pour tout le monde. Reste plus qu'à remplir la zone de téléchargement de freesoundeditor avec des appli au goût de "reviens-y" (Pas trop de temps en ce moment...mais ça va viendre )

L'empire n'a qu'à bien se tenir...grand maître Yoda
Là, là...je sens que tu as les oreilles qui pointent :lol:


@+ Jacobus

Publié : dim. 10/oct./2004 21:25
par ZapMan
Jacobus a écrit :1- Je viens de référencer freesoundeditor sur http://fr.audiofanzine.com/
2- Un petit blème pour télécharger les Zip sur freesoundeditor, j'y arrive pas.
3- Là, là...je sens que tu as les oreilles qui pointent :lol:
1- Merci encore, c'est chic !
2- Tous ? Ou seulement certains ? J'ai tout vérifier et ça passe chez moi !
3- C'est donc ça qui me chatouillais !

Publié : sam. 30/oct./2004 19:00
par Backup
je suis allée a la peche !! :D

j'ai trouvé de quoi satisfaire ton apetit du MiDI

voici recuperé sur codearchive une petite librairie complete de la gestion du midi

Code : Tout sélectionner

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2786&highlight=
; Author: GPI
; Date: 09. November 2003


;info:Play Midis direct (with mci) 
Procedure GetMidiLength(Nb) 
    a$=Space(#MAX_PATH) 
    i=mciSendString_("status mid"+Str(Nb)+" length",@a$,#MAX_PATH,0) 
    ProcedureReturn Val(a$) 
EndProcedure 
Procedure SetMidiTimeFormatToMS(Nb) 
    ProcedureReturn mciSendString_("set mid"+Str(Nb)+" time format milliseconds",0,0,0) 
EndProcedure 
Procedure SetMidiTimeFormatToTick(Nb) 
    ProcedureReturn mciSendString_("set mid"+Str(Nb)+" time format song pointer",0,0,0) 
EndProcedure 
Procedure LoadMidi(Nb,file.s) 
    ;i=mciSendString_("open Sequencer!"+Chr(34)+file+Chr(34)+" alias mid"+Str(Nb),0,0,0) 
    i=mciSendString_("OPEN "+Chr(34)+file+Chr(34)+" Type SEQUENCER ALIAS mid"+Str(Nb),0,0,0) 
    If i=0 
        ProcedureReturn #True 
    Else 
        ProcedureReturn #False 
    EndIf 
EndProcedure 
Procedure PlayMidi(Nb) 
    i=mciSendString_("play mid"+Str(Nb)+" from "+Str(0),0,0,0) 
    ProcedureReturn i 
EndProcedure 
Procedure PlayMidiFrom(Nb,Start,endPos) 
    i=mciSendString_("play mid"+Str(Nb)+" from "+Str(Start)+" to "+Str(endPos),0,0,0) 
    ProcedureReturn i 
EndProcedure 
Procedure PauseMidi(Nb) 
    i=mciSendString_("pause mid"+Str(Nb),0,0,0) 
    ProcedureReturn i 
EndProcedure 
Procedure ResumeMidi(Nb) 
    i=mciSendString_("resume mid"+Str(Nb),0,0,0) 
    ProcedureReturn i 
EndProcedure 
Procedure StopMidi(Nb) 
    i=mciSendString_("stop mid"+Str(Nb),0,0,0) 
    ProcedureReturn i 
EndProcedure 
Procedure FreeMidi(Nb) 
    i=mciSendString_("close mid"+Str(Nb),0,0,0) 
    ProcedureReturn i 
EndProcedure 
Procedure SetMidiTempo(Nb,Tempo) 
    i=mciSendString_("set mid"+Str(Nb)+" tempo "+Str(Tempo),0,0,0) 
    ProcedureReturn i 
EndProcedure 
Procedure GetMidiPosition(Nb) 
    a$=Space(#MAX_PATH) 
    i=mciSendString_("status mid"+Str(Nb)+" position",@a$,#MAX_PATH,0) 
    ProcedureReturn Val(a$) 
EndProcedure 
Procedure GetMidiTempo(Nb) 
    a$=Space(#MAX_PATH) 
    i=mciSendString_("status mid"+Str(Nb)+" Tempo",@a$,#MAX_PATH,0) 
    ProcedureReturn Val(a$) 
EndProcedure 
Procedure IsMidiPlaying(Nb) 
    a$=Space(#MAX_PATH) 
    i=mciSendString_("status mid"+Str(Nb)+" mode",@a$,#MAX_PATH,0) 
    If a$="playing" 
        ProcedureReturn #True 
    Else 
        ProcedureReturn #False 
    EndIf 
EndProcedure 
Procedure IsMidiPaused(Nb) 
    a$=Space(#MAX_PATH) 
    i=mciSendString_("status mid"+Str(Nb)+" mode",@a$,#MAX_PATH,0) 
    If a$="paused" 
        ProcedureReturn #True 
    Else 
        ProcedureReturn #False 
    EndIf 
EndProcedure 
Procedure IsMidiReady(Nb) 
    a$=Space(#MAX_PATH) 
    i=mciSendString_("status mid"+Str(Nb)+" mode",@a$,#MAX_PATH,0) 
    Debug a$ 
    If a$="not ready" 
        ProcedureReturn #False 
    Else 
        ProcedureReturn #True 
    EndIf 
EndProcedure 


;- Example
; OpenWindow(1,0,200,10,10,#PB_Window_SystemMenu,"Midi-Test") 
; 
; LoadMidi(1,"D:\download\vgmusic.com\music\dreamcast\sa_dc_06.mid") 
; Debug GetMidiLength(1) 
; SetMidiTimeFormatToMS(1) 
; Debug GetMidiLength(1) 
; 
; PlayMidi(1) 
; 
; old=-1 
; Repeat 
;   If IsMidiPlaying(1) 
;     event=WindowEvent() 
;     x=GetMidiPosition(1)/100 
;     If old<>x 
;       Debug "+"+Str(x) 
;       old=x 
;     EndIf 
;   Else 
;     event=WaitWindowEvent() 
;   EndIf 
; Until event=#PB_Event_CloseWindow 
; StopMidi(1) 
; FreeMidi(1)
; 

; ExecutableFormat=Windows
; EOF
puis il y a ça aussi !

Code : Tout sélectionner

; English forum: http://purebasic.myforums.net/viewtopic.php?t=8107&highlight=
; Author: Cor
; Date: 29. October 2003

Global hMidiOut
#Acoustic_Steel_Guitar = 25
#Channel1 = 1
#Channel2 = 2
#Channel3 = 3
#Channel4 = 4
#Channel5 = 5
#Channel6 = 6


Procedure MidiOutMessage(hMidi,iStatus,iChannel,iData1,iData2)
    dwMessage = iStatus | iChannel | (iData1 << 8 ) | (iData2 << 16)
    ProcedureReturn midiOutShortMsg_(hMidi, dwMessage) ;
EndProcedure

Procedure SetInstrument(channel,instrument)
    MidiOutMessage(hMidiOut, $C0,  channel, instrument, 0)
EndProcedure

Procedure PlayNote(channel,Note,velocity)
    MidiOutMessage(hMidiOut, $90, channel, Note , velocity)
EndProcedure


Procedure StopNote(channel,Note)
    MidiOutMessage(hMidiOut, $90, channel, Note , 0)
EndProcedure

midi.MIDIOUTCAPS
devices = midiOutGetNumDevs_()

For devnum=-1 To devices-1
    If midiOutGetDevCaps_(devnum,@midi,SizeOf(MIDIOUTCAPS))=0
        If midi\wVoices >0
            midiport=devnum
        EndIf
    EndIf
Next

*hMidiOut.l
If midiOutOpen_(@hMidiOut,midiport,0,0,0) = #MMSYSERR_NOERROR
    ; set acoustic steel guitar as instrument
    SetInstrument(#Channel1,#Acoustic_Steel_Guitar)
    SetInstrument(#Channel2,#Acoustic_Steel_Guitar)
    SetInstrument(#Channel3,#Acoustic_Steel_Guitar)
    SetInstrument(#Channel4,#Acoustic_Steel_Guitar)
    
    
    For  cnt = 1 To 5
        ; normal sound
        PlayNote(#Channel1,$2D,63)
        PlayNote(#Channel2,$39,63)
        PlayNote(#Channel3,$3C,63)
        PlayNote(#Channel4,$40,63)
        
        
        Delay (2000)
        StopNote(#Channel1,$2D)
        StopNote(#Channel2,$39)
        StopNote(#Channel3,$3C)
        StopNote(#Channel3,$40)
        
        ; this must be a staccato sound
        PlayNote(#Channel1,$39,100)
        PlayNote(#Channel2,$3C,100)
        PlayNote(#Channel3,$40,100)
        
        Delay (300)
        StopNote(#Channel1,$39)
        StopNote(#Channel2,$3C)
        StopNote(#Channel3,$40)
        Delay (200)
        
        ; this must be a muted sound
        PlayNote(#Channel1,$2D,80)
        PlayNote(#Channel2,$30,80)
        PlayNote(#Channel3,$34,80)
        
        Delay (300)
        StopNote(#Channel1,$2D)
        StopNote(#Channel2,$30)
        StopNote(#Channel3,$34 )
        Delay (285)
        
    Next
    
    ; end: reset instruments to 0 (default)
    SetInstrument(#Channel1,0)
    SetInstrument(#Channel2,0)
    SetInstrument(#Channel3,0)
    SetInstrument(#Channel4,0)
    
    ; end: close MIDI output
    midiOutClose_(hMidiOut)
EndIf
End

; ExecutableFormat=Windows
; EOF

Publié : dim. 31/oct./2004 23:49
par ZapMan
Merci, Dobro :D Ca pourra servir pour que MonPiano joue AUSSI avec un instrument Midi. Mais je garde ça pour une prochaine version, sinon je n'aurais jamais fini celle là !.

Publié : lun. 01/nov./2004 1:52
par Backup
pas seulement !!

grace a cette librairie le piano pourra sauver ses partoche en format midi (*.mid)

et bien sur relire ce format , c'est un standard en music !!! indispensable ! :D

Publié : lun. 01/nov./2004 2:16
par ZapMan
Je ne crois pas que ces exemples puissent aider pour ça. Sauf erreur, les instructions utilisées ici permettent d'envoyer un fichier midi complet vers le synthétiseur de la carte son, mais elles ne permettent pas d'ouvrir le ventre de ce fichier pour examiner son contenu. Et elles ne permettent pas de créer un fichier midi. C'est un peu comme l'instruction "PlaySound" qui te permet d'envoyer un fichier vers la carte son mais qui ne te permet pas de regarder à l'intérieur de ce fichier pour voir ce qu'il y a. J'ai le même problème avec les fichiers MP3 : facile de les envoyer vers la carte son, mais impossible de les décoder !
J'ai écrit un décodeur de fichier midi qui permet de regarder à l'intérieur du fichier.
http://purebasic.hmt-forum.com/viewtopi ... highlight=
MonPiano est déjà capable de lire des partitions Midi grâce à ça. Il me reste encore à écrire la partie qui va enregistrer au format Mdi ce que l'on a joué dans MonPiano.

Publié : lun. 01/nov./2004 9:31
par Backup
ha ! bah oui ! c'est vrais !! :?

Publié : mer. 06/juil./2005 13:55
par Dr. Dri
Je sais que le projet n'avance pas beaucoup mais je voulais tout de même laisser un petit merci en bonne et due forme... c'est grace à sound editor que j'ai pu comprendre le format wave...

http://purebasic.hmt-forum.com/viewtopic.php?t=3123

Dri :D