Ca fait un bout de temps que je faisais des recherches sur les sons en général.
Je m'étais mis en tête de faire bruitages et musiques en MIDI uniquement.
Puis, j'ai découvert

C'est pour ça que depuis 15 jours, je me suis attaqué au pure_ADSR (voir section :applications).
Avec l'API "mciSendString_" impossible de trouver une documentation claire(pour moi, bien sûr

Je voudrai simplement lire un fichier quand je veux et autant de fois que je veux dans une application.
Puisque mon objectif est de choisir le MIDI pour la musique et les wav pour les effets sonores et tout ça sans fichiers joints.
Voilà mon travail:
Code : Tout sélectionner
;data to midi
;auteur huitbit
;pb4.30
SetCurrentDirectory(GetTemporaryDirectory());travail dans le répertoire temporaire
CreateFile(1,"musique.mid")
length=942
Restore musique
For i=0 To length
Read.c donnee
WriteByte(1,donnee)
Next i
CloseFile(1)
mciSendString_("open musique.mid type sequencer alias musique", 0,0,0)
OpenWindow ( 0 ,10,10,200,200, "Play" , #PB_Window_SystemMenu )
mciSendString_ ( "play musique" ,0,0,0)
Repeat
event= WaitWindowEvent ()
Until Event = #PB_Event_CloseWindow
mciSendString_ ( "close musique" ,0,0,0)
DataSection
musique: ; 942 octets de données
Data.c 77,84,104,100,0,0,0,6,0,0,0,1,1,224,77,84,114,107,0,0,3,152,0,255,3,6,84,121,112,101,32,48,0,255,81,3,4,142,11,0,255
Data.c 88,4,4,2,24,8,0,255,1,13,66,121,32,77,97,116,116,32,82,97,117,112,112,0,255,2,44,67,111,112,121,114,105,103,104,116,32,169,32,49
Data.c 57,57,55,32,98,121,32,78,111,116,101,87,111,114,116,104,121,32,65,114,116,87,97,114,101,44,32,73,110,99,46,0,255,2,19,65,108,108,32,82
Data.c 105,103,104,116,115,32,82,101,115,101,114,118,101,100,0,255,1,32,71,101,110,101,114,97,116,101,100,32,98,121,32,78,111,116,101,87,111,114,116,104
Data.c 121,32,67,111,109,112,111,115,101,114,0,255,33,1,0,0,176,7,127,0,10,64,0,192,68,0,255,33,1,0,0,177,7,127,0,10,64,0,193,58
Data.c 0,177,10,20,0,255,33,1,0,0,178,7,127,0,10,64,0,194,49,0,255,33,1,0,0,179,7,127,0,10,64,0,195,46,0,179,10,127,135,64
Data.c 144,72,110,0,145,48,60,0,146,69,92,0,147,72,45,134,72,144,72,0,0,145,48,0,0,146,69,0,0,147,72,0,120,144,77,110,0,145,41,60
Data.c 0,146,72,92,0,147,77,45,133,0,144,77,0,0,147,77,0,80,144,72,110,0,147,72,45,120,145,41,0,0,146,72,0,115,144,72,0,0,147,72
Data.c 0,5,144,74,110,0,145,43,60,0,146,70,92,0,147,74,45,131,16,144,74,0,0,147,74,0,80,144,70,110,0,147,70,45,130,104,145,43,0,0
Data.c 146,70,0,40,144,70,0,0,147,70,0,80,144,67,110,0,145,48,60,0,146,67,92,0,147,67,45,134,72,144,67,0,0,145,48,0,0,146,67,0
Data.c 0,147,67,0,120,144,72,110,0,145,48,60,0,146,65,92,0,147,72,45,132,127,144,72,0,0,147,72,0,81,144,69,110,0,147,69,45,120,145,48
Data.c 0,0,146,65,0,114,144,69,0,0,147,69,0,6,144,65,110,0,145,41,60,0,146,69,92,0,147,65,45,131,15,144,65,0,0,147,65,0,81,144
Data.c 69,110,0,147,69,45,130,104,145,41,0,0,146,69,0,40,144,69,0,0,147,69,0,80,144,67,110,0,145,43,60,0,146,67,92,0,147,67,45,134
Data.c 72,144,67,0,0,145,43,0,0,146,67,0,0,147,67,0,120,145,48,60,0,146,60,92,129,107,145,48,0,5,46,60,129,107,46,0,5,144,67,110
Data.c 0,145,45,60,0,147,67,45,115,144,67,0,0,147,67,0,5,144,69,110,0,147,69,45,115,145,45,0,0,144,69,0,0,147,69,0,5,144,70,110
Data.c 0,145,43,60,0,147,70,45,115,144,70,0,0,147,70,0,5,146,60,0,0,144,71,110,0,147,71,45,115,145,43,0,0,144,71,0,0,147,71,0
Data.c 5,144,72,110,0,145,53,60,0,146,77,92,0,147,72,45,134,72,144,72,0,0,145,53,0,0,146,77,0,0,147,72,0,120,144,77,110,0,145,51
Data.c 60,0,146,75,92,0,147,77,45,133,0,144,77,0,0,147,77,0,80,144,72,110,0,147,72,45,120,145,51,0,0,146,75,0,115,144,72,0,0,147
Data.c 72,0,5,144,74,110,0,145,50,60,0,146,74,92,0,147,74,45,131,16,144,74,0,0,147,74,0,80,144,70,110,0,147,70,45,130,104,145,50,0
Data.c 0,146,74,0,40,144,70,0,0,147,70,0,80,144,67,110,0,145,49,60,0,146,73,92,0,147,67,45,134,72,144,67,0,0,145,49,0,0,146,73
Data.c 0,0,147,67,0,120,144,72,110,0,145,48,60,0,146,69,92,0,147,72,45,133,0,144,72,0,0,147,72,0,80,144,69,110,0,147,69,45,120,145
Data.c 48,0,0,146,69,0,115,144,69,0,0,147,69,0,5,144,70,110,0,145,40,60,0,146,72,92,0,147,70,45,131,16,144,70,0,0,147,70,0,80
Data.c 144,64,110,0,147,64,45,130,104,145,40,0,0,146,72,0,40,144,64,0,0,147,64,0,80,144,65,110,0,145,41,60,0,146,65,92,0,147,65,45
Data.c 134,72,144,65,0,0,145,41,0,0,146,65,0,0,147,65,0,0,255,47,0,0
Code : Tout sélectionner
;midi_to_data
;auteur huitbit
;pb4.30
file$ = OpenFileRequester("Sélectionnez un fichier","","*.mid",0)
If file$
If ReadFile(0, file$)
length = Lof(0) ; Lit la taille en octets du fichier
*MemoryID = AllocateMemory(length) ; alloue un bloc mémoire de la taille du fichier
If *MemoryID
bytes = ReadData(0, *MemoryID, length) ; Lit les données du fichier et les place dans le bloc mémoire
EndIf
CloseFile(0)
EndIf
EndIf
If *MemoryID
musique$="Datasection"+Chr(13)+"musique: ; "+Str(length)+" octets de donn"+Chr(233)+"es"+Chr(13)+"Data.c "
For i=0 To length
If i%40=0 And i<>0
code_separation.s=Chr(13)+"data.c "
Else
code_separation.s=","
EndIf; i%40=0 And i<>0
If i=length
code_separation.s=""
EndIf
musique$=musique$+Str(PeekC(*MemoryID+i))+code_separation
Next i
FreeMemory(*MemoryID)
EndIf ; If *MemoryID
SetClipboardText(musique$)
Debug "Vos datas se trouvent dans le presse-papier !"
Hasta la vista !