Publié : jeu. 09/sept./2004 14:30

Je viens de terminer un petit instrument et je voudrai connaître vos opinions, critiques et autre...
je vous pose le code ici, mais si vous voulez l'exe et autres n'hésitez pas.
Bon comme je n'ai pas trop de temps, je me sauve.
(Même quand j'ai pas le temps je code,...dur dur. C'est Typhoon qu'a raison)
Code : Tout sélectionner
;MonPiano version 1.0 par Jacobus 09/2004
; PureBasic 3.91 et Windows Me (Oui je sais ça craint, mais bon...)
;Utilisation de la Librairie MoreProgressBarGadget de Denis (Top comme Lib!)
;Destination : SoundEditor, projet de ZapMan
;A intégrer ou comme instrument séparé (bug Brother en chef ?)
;
;Reste à intégrer un recorder (Flype?) pour transférer les créations dans SE
;Partitionneur à base d'un éditorgadget (en cours quand j'ai le temps, comme le player))
;Recherche un connaisseur de solfège (Dobro ?) pour générer 36 notes de base en wav
;les idées, critiques, optimisations et autres sont bienvenues.
;
;Déjà avec ça on peut... vous pouvez vous amuser
;@+ Jacobus
;
;Si vous souhaitez les BMP et ico, demandez moi.
;Si vous préférez l'exe, demandez moi
;Si vous voulez une première banque de sons, demandez aussi.
;Si vous voulez rien, ben tanpis.
;***********************************************************
;N'oubliez pas de changer les chemins d'accès
;en fonction de vos préférences et répertoires,
;sinon ça marche pas c'est sûr !
;****************************************************************
InitSound()
Enumeration
#window = 0
EndEnumeration
Enumeration
;- constantes images
#Image0
#Image1
#Image2
#Image3
#Image4
#Image5
#Image6
#touche_blanche
#touche_noire
;- constantes btn
#btn_0
#btn_1
#btn_2
#btn_3
#btn_4
#btn_5
#btn_6
#btn_7
#btn_8
#btn_9
#btn_10
#btn_11
#btn_12
#btn_13
#btn_14
#btn_15
#btn_16
#btn_17
#btn_18
#btn_19
#btn_20
#btn_21
#btn_22
#btn_23
#btn_24
#btn_25
#btn_26
#btn_27
#btn_28
#btn_29
#btn_30
#btn_31
#btn_32
#btn_33
#btn_34
#btn_35
#btn_36
;- constantes panel
#panel_1
#SHORTCUTS
#Btn_load
#Text_load
#frame1
#frame2
#frame3
#frame4
#Text_Acces
#Text_Info
#Text_concept
#ProgBar_1
#ProgBar_2
#ProgBar_3
#ProgBar_4
#ProgBar_5
#ProgBar_6
#ProgBar_7
#ProgBar_8
#ProgBar_9
#ProgBar_10
#ProgBar_11
#ProgBar_12
#ProgBar_13
#ProgBar_14
#ProgBar_15
#ProgBar_16
#ProgBar_17
#ProgBar_18
#ProgBar_19
#ProgBar_20
#ProgBar_21
#ProgBar_22
#ProgBar_23
#ProgBar_24
#ProgBar_25
#ProgBar_26
#ProgBar_27
#ProgBar_28
#ProgBar_29
#ProgBar_30
#ProgBar_31
#ProgBar_32
#ProgBar_33
#ProgBar_34
#ProgBar_35
#ProgBar_36
#ProgBar_37
#ProgBar_38
;-constantes sons
#son_0
#son_1
#son_2
#son_3
#son_4
#son_5
#son_6
#son_7
#son_8
#son_9
#son_10
#son_11
#son_12
#son_13
#son_14
#son_15
#son_16
#son_17
#son_18
#son_19
#son_20
#son_21
#son_22
#son_23
#son_24
#son_25
#son_26
#son_27
#son_28
#son_29
#son_30
#son_31
#son_32
#son_33
#son_34
#son_35
#son_36
EndEnumeration
Global Image0
Global Image1
Global Image2
Global Image3
Global Image4
Global Image5
Global Image6
Global Image7
Global Image10
Global ToucheB
Global ToucheN
Global son0.s
Global son1.s
Global son2.s
Global son3.s
Global son4.s
Global son5.s
Global son6.s
Global son7.s
Global son8.s
Global son9.s
Global son10.s
Global son11.s
Global son12.s
Global son13.s
Global son14.s
Global son15.s
Global son16.s
Global son17.s
Global son18.s
Global son19.s
Global son20.s
Global son21.s
Global son22.s
Global son23.s
Global son24.s
Global son25.s
Global son26.s
Global son27.s
Global son28.s
Global son29.s
Global son30.s
Global son31.s
Global son32.s
Global son33.s
Global son34.s
Global son35.s
Global son36.s
;-catch images
Image0 = CatchImage(0, ?Image0)
Image1 = CatchImage(1, ?Image1)
Image2 = CatchImage(2, ?Image2)
Image3 = CatchImage(3, ?Image3)
Image4 = CatchImage(4, ?Image4)
Image5 = CatchImage(5, ?Image5)
Image6 = CatchImage(6, ?Image6)
Image7 = CatchImage(7, ?Image7)
ToucheB = CatchImage(8, ?ToucheB)
ToucheN = CatchImage(9, ?ToucheN)
Image10 = CatchImage(10, ?Image10)
DataSection
;-Data images
Image0 : IncludeBinary "C:\Mes documents\Mes images\icônesVS\AUTOLOAD.ico"
Image1 : IncludeBinary "C:\Mes documents\Mes images\icônesVS\About.ico"
Image2 : IncludeBinary "C:\Mes documents\Mes images\icônesVS\Bal_droite.ico"
Image3 : IncludeBinary "C:\Mes documents\Mes images\icônesVS\Bal_gauche.ico"
Image4 : IncludeBinary "C:\Mes documents\Mes images\icônesVS\level.ico"
Image5 : IncludeBinary "C:\Mes documents\Mes images\icônesVS\level_01.ico"
Image6 : IncludeBinary "C:\Mes documents\Mes images\icônesVS\level_02.ico"
Image7 : IncludeBinary "C:\Mes documents\Mes images\icônesVS\level_03.ico"
ToucheB :IncludeBinary "C:\Mes documents\Mes images\BMP\ImagesSE\argent.BMP"
ToucheN :IncludeBinary "C:\Mes documents\Mes images\BMP\ImagesSE\noire.BMP"
Image10 : IncludeBinary "C:\Mes documents\Mes images\icônesVS\icon2.ico"
EndDataSection
Procedure Load_Sounds()
;Sélection du chemin pour trouver la banque sons voulue
CheminInitial$="C:\MonPiano\Banques de sons"
NomChemin$ = PathRequester("Ouvrez le dossier Banques de sons, sélectionnez celle que vous souhaitez utiliser puis cliquez sur OK, elle sera automatiquement copiée dans le dossier: USEBANK.", CheminInitial$)
;Copie des fichiers wav de la banque choisie vers UseBank
;Ecrasement des fichiers qui s'y trouvent, donc remplacement.
;A chaque chargement d'une nouvelle banque de sons, les sons sont remplacés.
RSource$ = NomChemin$
RDestination$="C:\MonPiano\UseBank"
RLoad = CopyDirectory(RSource$, RDestination$,"*.wav" ,#PB_FileSystem_Recursive)
If RLoad=0
MessageRequester("Y a comme un Blème !", "IMPOSSIBLE DE COPIER ET DE CHARGER LES SONS, SOIT VOUS AVEZ CLIQUE SUR ANNULER, SOIT LA BANQUE EST INTROUVABLE.",#MB_ICONERROR | #PB_MessageRequester_Ok)
EndIf
Bank.s = "C:\MonPiano\UseBank\*.wav"
Contenu = FileSize(Bank)
If Contenu = -1 ;s'il n'y a rien dans le dossier Bank...
MessageRequester("Répertoire vide !", "IL N'Y A AUCUN FICHIER WAV DANS VOTRE BANQUE",#MB_ICONEXCLAMATION | #PB_MessageRequester_Ok)
EndIf
;Si tout s'est bien passé, la banque son choisie a été transférée dans UseBank
;Initialisation et chargement de chaque son
son0.s ="C:\MonPiano\UseBank\son0.wav"
If LoadSound(#son_0,son0):IsSound(#Son_0)
EndIf
son1.s ="C:\MonPiano\UseBank\son1.wav"
If LoadSound(#son_1,son1):IsSound(#Son_1)
EndIf
son2.s ="C:\MonPiano\UseBank\son2.wav"
If LoadSound(#son_2,son2):IsSound(#Son_2)
EndIf
son3.s ="C:\MonPiano\UseBank\son3.wav"
If LoadSound(#son_3,son3):IsSound(#Son_3)
EndIf
SetGadgetState(#ProgBar_1, 20); ProgressBar se charge à 20%
son4.s ="C:\MonPiano\UseBank\son4.wav"
If LoadSound(#son_4,son4):IsSound(#Son_4)
EndIf
son5.s ="C:\MonPiano\UseBank\son5.wav"
If LoadSound(#son_5,son5):IsSound(#Son_5)
EndIf
son6.s ="C:\MonPiano\UseBank\son6.wav"
If LoadSound(#son_6,son6):IsSound(#Son_6)
EndIf
son7.s ="C:\MonPiano\UseBank\son7.wav"
If LoadSound(#son_7,son7):IsSound(#Son_7)
EndIf
son8.s ="C:\MonPiano\UseBank\son8.wav"
If LoadSound(#son_8,son8):IsSound(#Son_8)
EndIf
son9.s ="C:\MonPiano\UseBank\son9.wav"
If LoadSound(#son_9,son9):IsSound(#Son_9)
EndIf
son10.s ="C:\MonPiano\UseBank\son10.wav"
If LoadSound(#son_10,son10):IsSound(#Son_10)
EndIf
SetGadgetState(#ProgBar_1, 40); ProgressBar se charge à 40%
son11.s ="C:\MonPiano\UseBank\son11.wav"
If LoadSound(#son_11,son11):IsSound(#Son_11)
EndIf
son12.s ="C:\MonPiano\UseBank\son12.wav"
If LoadSound(#son_12,son12):IsSound(#Son_12)
EndIf
son13.s ="C:\MonPiano\UseBank\son13.wav"
If LoadSound(#son_13,son13):IsSound(#Son_13)
EndIf
son14.s ="C:\MonPiano\UseBank\son14.wav"
If LoadSound(#son_14,son14):IsSound(#Son_14)
EndIf
son15.s ="C:\MonPiano\UseBank\son15.wav"
If LoadSound(#son_15,son15):IsSound(#Son_15)
EndIf
son16.s ="C:\MonPiano\UseBank\son16.wav"
If LoadSound(#son_16,son16):IsSound(#Son_16)
EndIf
son17.s ="C:\MonPiano\UseBank\son17.wav"
If LoadSound(#son_17,son17):IsSound(#Son_17)
EndIf
SetGadgetState(#ProgBar_1, 60); ProgressBar se charge à 60%
son18.s ="C:\MonPiano\UseBank\son18.wav"
If LoadSound(#son_18,son18):IsSound(#Son_18)
EndIf
son19.s ="C:\MonPiano\UseBank\son19.wav"
If LoadSound(#son_19,son19):IsSound(#Son_19)
EndIf
son20.s ="C:\MonPiano\UseBank\son20.wav"
If LoadSound(#son_20,son20):IsSound(#Son_20)
EndIf
son21.s ="C:\MonPiano\UseBank\son21.wav"
If LoadSound(#son_21,son21):IsSound(#Son_21)
EndIf
son22.s ="C:\MonPiano\UseBank\son22.wav"
If LoadSound(#son_22,son22):IsSound(#Son_22)
EndIf
son23.s ="C:\MonPiano\UseBank\son23.wav"
If LoadSound(#son_23,son23):IsSound(#Son_23)
EndIf
son24.s ="C:\MonPiano\UseBank\son24.wav"
If LoadSound(#son_24,son24):IsSound(#Son_24)
EndIf
son25.s ="C:\MonPiano\UseBank\son25.wav"
If LoadSound(#son_25,son25):IsSound(#Son_25)
EndIf
SetGadgetState(#ProgBar_1, 80); ProgressBar se charge à 80%
son26.s ="C:\MonPiano\UseBank\son26.wav"
If LoadSound(#son_26,son26):IsSound(#Son_26)
EndIf
son27.s ="C:\MonPiano\UseBank\son27.wav"
If LoadSound(#son_27,son27):IsSound(#Son_27)
EndIf
son28.s ="C:\MonPiano\UseBank\son28.wav"
If LoadSound(#son_28,son28):IsSound(#Son_28)
EndIf
son29.s ="C:\MonPiano\UseBank\son29.wav"
If LoadSound(#son_29,son29):IsSound(#Son_29)
EndIf
son30.s ="C:\MonPiano\UseBank\son30.wav"
If LoadSound(#son_30,son30):IsSound(#Son_30)
EndIf
son31.s ="C:\MonPiano\UseBank\son31.wav"
If LoadSound(#son_31,son31):IsSound(#Son_31)
EndIf
son32.s ="C:\MonPiano\UseBank\son32.wav"
If LoadSound(#son_32,son32):IsSound(#Son_32)
EndIf
son33.s ="C:\MonPiano\UseBank\son33.wav"
If LoadSound(#son_33,son33):IsSound(#Son_33)
EndIf
son34.s ="C:\MonPiano\UseBank\son34.wav"
If LoadSound(#son_34,son34):IsSound(#Son_34)
EndIf
son35.s ="C:\MonPiano\UseBank\son35.wav"
If LoadSound(#son_35,son35):IsSound(#Son_35)
EndIf
son36.s ="C:\MonPiano\UseBank\son36.wav"
If LoadSound(#son_36,son36):IsSound(#Son_36)
EndIf
SetGadgetState(#ProgBar_1, 100); ProgressBar chargée à 100%
HideGadget(#Text_load,0); affichage du texte accompagnant la charge de la ProgressBar
EndProcedure
;- fenetre principale
If OpenWindow(0,0,0,745,280,#PB_Window_SystemMenu|#PB_Window_ScreenCentered| #PB_Window_MinimizeGadget| #PB_Window_Invisible,"MonPiano 1.0") And CreateGadgetList(WindowID(0))
CouleurFond = CreateSolidBrush_(RGB(0, 0, 0)); fond noir pour la ToolBar
SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, CouleurFond)
DeleteObject_(CouleurFond)
HideWindow(0, 0)
;-Barre outils
If CreateToolBar(0,WindowID())
ToolBarImageButton(0, Image0)
ToolBarToolTip(0,"Charger une banque de sons")
ToolBarImageButton(1, Image1)
ToolBarToolTip(1,"Info")
ToolBarSeparator()
ToolBarImageButton(2, Image4)
ToolBarToolTip(2,"Mode mute")
ToolBarImageButton(3, Image5)
ToolBarToolTip(3,"Volume niveau 1")
ToolBarImageButton(4, Image6)
ToolBarToolTip(4,"Volume niveau 2")
ToolBarImageButton(5, Image7)
ToolBarToolTip(5,"Volume niveau 3")
ToolBarSeparator()
ToolBarImageButton(6, Image3)
ToolBarToolTip(6,"Balance tout le son sur Haut parleur gauche")
ToolBarImageButton(7, Image2)
ToolBarToolTip(7,"Balance tout le son sur Haut parleur droit")
ToolBarImageButton(8, Image10)
ToolBarToolTip(8,"Retour en Stéréo")
ToolBarSeparator()
EndIf
;- panel gadget
PanelGadget(#panel_1,0,25,745,280); création de la boîte à onglets
;-Clavier
OpenGadgetList(#panel_1 ,"PANEL 1") ; Ajout d'un onglet
AddGadgetItem (#panel_1,-1,"CLAVIER SYNTHE");nomination de l'onglet
ButtonImageGadget(#btn_0,0,0,20,100,ToucheB);touche blanche
ButtonImageGadget(#btn_1,20,0,20,100,ToucheN);touche noire
ButtonImageGadget(#btn_2,40,0,20,100,ToucheB);etc...
ButtonImageGadget(#btn_3,60,0,20,100,ToucheN)
ButtonImageGadget(#btn_4,80,0,20,100,ToucheB)
ButtonImageGadget(#btn_5,100,0,20,100,ToucheB)
ButtonImageGadget(#btn_6,120,0,20,100,ToucheN)
ButtonImageGadget(#btn_7,140,0,20,100,ToucheB)
ButtonImageGadget(#btn_8,160,0,20,100,ToucheN)
ButtonImageGadget(#btn_9,180,0,20,100,ToucheB)
ButtonImageGadget(#btn_10,200,0,20,100,ToucheN)
ButtonImageGadget(#btn_11,220,0,20,100,ToucheB)
ButtonImageGadget(#btn_12,240,0,20,100,ToucheB)
ButtonImageGadget(#btn_13,260,0,20,100,ToucheN)
ButtonImageGadget(#btn_14,280,0,20,100,ToucheB)
ButtonImageGadget(#btn_15,300,0,20,100,ToucheN)
ButtonImageGadget(#btn_16,320,0,20,100,ToucheB)
ButtonImageGadget(#btn_17,340,0,20,100,ToucheB)
ButtonImageGadget(#btn_18,360,0,20,100,ToucheN)
ButtonImageGadget(#btn_19,380,0,20,100,ToucheB)
ButtonImageGadget(#btn_20,400,0,20,100,ToucheN)
ButtonImageGadget(#btn_21,420,0,20,100,ToucheB)
ButtonImageGadget(#btn_22,440,0,20,100,ToucheN)
ButtonImageGadget(#btn_23,460,0,20,100,ToucheB)
ButtonImageGadget(#btn_24,480,0,20,100,ToucheB)
ButtonImageGadget(#btn_25,500,0,20,100,ToucheN)
ButtonImageGadget(#btn_26,520,0,20,100,ToucheB)
ButtonImageGadget(#btn_27,540,0,20,100,ToucheN)
ButtonImageGadget(#btn_28,560,0,20,100,ToucheB)
ButtonImageGadget(#btn_29,580,0,20,100,ToucheB)
ButtonImageGadget(#btn_30,600,0,20,100,ToucheN)
ButtonImageGadget(#btn_31,620,0,20,100,ToucheB)
ButtonImageGadget(#btn_32,640,0,20,100,ToucheN)
ButtonImageGadget(#btn_33,660,0,20,100,ToucheB)
ButtonImageGadget(#btn_34,680,0,20,100,ToucheN)
ButtonImageGadget(#btn_35,700,0,20,100,ToucheB)
ButtonImageGadget(#btn_36,720,0,20,100,ToucheB)
;Inscription des touches de raccourcis correspondantes sous les touches,
;leur position est étudiée en fonction de l'affichage,
;donc à ne pas modifier pour la correspondance. (évite un textgadget pour chaque)
TextGadget(#SHORTCUTS, 0, 102, 740, 20," 1 2 3 4 5 6 7 8 9 0 A Z E R T Y U I O P Q S D F G H J K L M W X C V B N sp")
Frame3DGadget(#frame1,5,123,730,45,"Load Sounds"); pour faire joli
ButtonImageGadget(#Btn_load, 20,140,30,20,Image0)
GadgetToolTip(#Btn_load,"Chargement d'une banque de sons")
TextGadget(#Text_load, 320, 140, 100, 20," Go to the Music ! ",#PB_Text_Border)
HideGadget(#Text_load,1);Pour n'afficher ce texte qu'au chargement d'une banque sons
ProgressBarGadget(#ProgBar_1, 60,140,250,20, 0,100);barre de chargement des fichiers sons
SetProgressBarColor(#ProgBar_1, #Yellow, #Black);colorisation de la barre de chargement
;-Equalizer/Progressbar
;Merci à Denis pour sa Lib MoreProgressBarGadget, en couleurs, extra !
ProgressBarGadget(#ProgBar_2, 0,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_2, #Blue, #White)
ProgressBarGadget(#ProgBar_3, 20,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_3, #Green, #Black)
ProgressBarGadget(#ProgBar_4, 40,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_4, #Blue, #White)
ProgressBarGadget(#ProgBar_5, 60,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_5, #Green, #Black)
ProgressBarGadget(#ProgBar_6, 80,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_6, #Blue, #White)
ProgressBarGadget(#ProgBar_7, 100,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_7, #Blue, #White)
ProgressBarGadget(#ProgBar_8, 120,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_8, #Green, #Black)
ProgressBarGadget(#ProgBar_9, 140,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_9, #Blue, #White)
ProgressBarGadget(#ProgBar_10, 160,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_10, #Green, #Black)
ProgressBarGadget(#ProgBar_11, 180,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_11, #Blue, #White)
ProgressBarGadget(#ProgBar_12, 200,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_12, #Green, #Black)
ProgressBarGadget(#ProgBar_13, 220,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_13, #Blue, #White)
ProgressBarGadget(#ProgBar_14, 240,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_14, #Blue, #White)
ProgressBarGadget(#ProgBar_15, 260,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_15, #Green, #Black)
ProgressBarGadget(#ProgBar_16, 280,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_16, #Blue, #White)
ProgressBarGadget(#ProgBar_17, 300,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_17, #Green, #Black)
ProgressBarGadget(#ProgBar_18, 320,180,20,50, 0,100,#PB_ProgressBar_Vertical):SetProgressBarColor(#ProgBar_18, #Blue, #White)
ProgressBarGadget(#ProgBar_19, 340,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_19, #Blue, #White)
ProgressBarGadget(#ProgBar_20, 360,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_20, #Green, #Black)
ProgressBarGadget(#ProgBar_21, 380,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_21, #Blue, #White)
ProgressBarGadget(#ProgBar_22, 400,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_22, #Green, #Black)
ProgressBarGadget(#ProgBar_23, 420,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_23, #Blue, #White)
ProgressBarGadget(#ProgBar_24, 440,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_24, #Green, #Black)
ProgressBarGadget(#ProgBar_25, 460,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_25, #Blue, #White)
ProgressBarGadget(#ProgBar_26, 480,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_26, #Blue, #White)
ProgressBarGadget(#ProgBar_27, 500,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_27, #Green, #Black)
ProgressBarGadget(#ProgBar_28, 520,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_28, #Blue, #White)
ProgressBarGadget(#ProgBar_29, 540,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_29, #Green, #Black)
ProgressBarGadget(#ProgBar_30, 560,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_30, #Blue, #White)
ProgressBarGadget(#ProgBar_31, 580,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_31, #Blue, #White)
ProgressBarGadget(#ProgBar_32, 600,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_32, #Green, #Black)
ProgressBarGadget(#ProgBar_33, 620,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_33, #Blue, #White)
ProgressBarGadget(#ProgBar_34, 640,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_34, #Green, #Black)
ProgressBarGadget(#ProgBar_35, 660,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_35, #Blue, #White)
ProgressBarGadget(#ProgBar_36, 680,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_36, #Green, #Black)
ProgressBarGadget(#ProgBar_37, 700,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_37, #Blue, #White)
ProgressBarGadget(#ProgBar_38, 720,180,20,50, 0,100,#PB_ProgressBar_Vertical) :SetProgressBarColor(#ProgBar_38, #Blue, #White)
CloseGadgetList()
;-Obtention de banques
OpenGadgetList(#panel_1 ,"PANEL 2"); ajout d'un nouvel onglet, idem suivants
AddGadgetItem (#panel_1,-1,"Obtenir d'autres sonorités")
Frame3DGadget(#frame2,5,10,730,220,"Les banques sons, Comment les obtenir")
TextGadget(#Text_Acces, 20, 30, 700, 180,"Un certain nombre de banques sont livrées avec la version de base de MonPiano et vous pouvez les charger et jouer à votre guise. "+Chr(13)+""+Chr(13)+" Si vous souhaitez obtenir plus de banques et ainsi augmenter vôtre créativité musicale, n'hésitez pas à vous rendre sur : "+Chr(13)+""+Chr(13)+" http://www.freesoundeditor.com "+Chr(13)+""+Chr(13)+" Là vous trouverez les dernières nouveautés en matière de sonorités. Les banques sont composées de 36 sons chacune correspondant aux 36 touches du clavier. Vous pourrez acquérir chaque banque ou des lots de banques sons pour une somme modique. Les capacités de stockage des banques sons dépendent uniquement de la taille de votre disque dur et de votre intérêt pour la musique. Alors à bientôt sur freesoundeditor.com."+Chr(13)+""+Chr(13)+"Vous pouvez créer vous-même vos banques sons en composant des dossiers de 36 fichiers wav que vous aurez renommé, son1;son2; son3 etc..."+Chr(13)+"ASTUCE : Vous pouvez y mettre par exemple 12 Bass; 12 Beats; 12 guitares ... ensemble et jouer de 3 instruments en même temps. ")
CloseGadgetList()
;-Info
OpenGadgetList(#panel_1 ,"PANEL 3")
AddGadgetItem (#panel_1,-1,"Utilisation")
Frame3DGadget(#frame3,5,10,730,220,"Usage et destination")
TextGadget(#Text_Info, 20, 30, 700, 180,"Cet instrument est conçu pour accompagner SoundEditor, le meilleur logiciel d'édition de sons du moment."+Chr(13)+""+Chr(13)+" Ainsi vous pouvez créer votre mélodie à partir de ce piano, simple à appréhender dans son fonctionnement, et générer des fichiers wav que vous pourrez modifier, triturer, agrémenter... d'effets divers dans SoundEditor."+Chr(13)+""+Chr(13)+" Dans une prochaine version, il vous sera possible d'écrire votre partition en même temps que vous jouerez, sans rien faire d'autre que taper les touches de votre piano. De cette façon votre mélodie sera sauvegardée sous forme de fichier texte si vous le souhaitez, et si une mélodie que vous avez joué vous plaît, vous n'aurez qu'à éditer cette partition pour la conserver et donc vous en rappeler sans rechercher dans vos souvenirs sur quelles touches vous aviez frappé.."+Chr(13)+""+Chr(13)+" ASTUCES : - Le clavier de votre piano réagit de deux façons: Soit avec la souris et le curseur que vous pointez sur la touche en faisant un clic gauche. Soit en pianotant directement sur les touches de votre clavier d'ordinateur (AZERTY). Vous pouvez aussi faire les deux en même temps, de la main gauche vous pianotez et de la main droite vous utilisez la souris.")
CloseGadgetList()
;-Concept
OpenGadgetList(#panel_1 ,"PANEL 4")
AddGadgetItem (#panel_1,-1,"Conception et Développement")
Frame3DGadget(#frame4,5,10,730,220,"MonPiano - Développement")
TextGadget(#Text_concept, 20, 30, 700, 180,"- Jacobus 09/2004 - PB 3.91 - Windows Me - */ Lib MoreProgressBarGadget de Denis /* For ZapMan Project, SoundEditor "+Chr(13)+"- Ben...suffit de rajouter vos noms si ça vous dit de poursuivre le développement avec moi. "+Chr(13)+""+Chr(13)+" Reste à faire : Intégration d'un recorder - Partitionneur (en cours) - Optimisation de l'interface - Autres idées à germer -")
CloseGadgetList()
;-raccourcis clavier
;On octroi une touche de raccourci clavier par touche/bouton sur écran
AddKeyboardShortcut(#Window, #PB_Shortcut_1,#Btn_0)
AddKeyboardShortcut(#Window, #PB_Shortcut_2,#Btn_1)
AddKeyboardShortcut(#Window, #PB_Shortcut_3,#Btn_2)
AddKeyboardShortcut(#Window, #PB_Shortcut_4,#Btn_3)
AddKeyboardShortcut(#Window, #PB_Shortcut_5,#Btn_4)
AddKeyboardShortcut(#Window, #PB_Shortcut_6,#Btn_5)
AddKeyboardShortcut(#Window, #PB_Shortcut_7,#Btn_6)
AddKeyboardShortcut(#Window, #PB_Shortcut_8,#Btn_7)
AddKeyboardShortcut(#Window, #PB_Shortcut_9,#Btn_8)
AddKeyboardShortcut(#Window, #PB_Shortcut_0,#Btn_9)
AddKeyboardShortcut(#Window, #PB_Shortcut_A,#Btn_10)
AddKeyboardShortcut(#Window, #PB_Shortcut_Z,#Btn_11)
AddKeyboardShortcut(#Window, #PB_Shortcut_E,#Btn_12)
AddKeyboardShortcut(#Window, #PB_Shortcut_R,#Btn_13)
AddKeyboardShortcut(#Window, #PB_Shortcut_T,#Btn_14)
AddKeyboardShortcut(#Window, #PB_Shortcut_Y,#Btn_15)
AddKeyboardShortcut(#Window, #PB_Shortcut_U,#Btn_16)
AddKeyboardShortcut(#Window, #PB_Shortcut_I,#Btn_17)
AddKeyboardShortcut(#Window, #PB_Shortcut_O,#Btn_18)
AddKeyboardShortcut(#Window, #PB_Shortcut_P,#Btn_19)
AddKeyboardShortcut(#Window, #PB_Shortcut_Q,#Btn_20)
AddKeyboardShortcut(#Window, #PB_Shortcut_S,#Btn_21)
AddKeyboardShortcut(#Window, #PB_Shortcut_D,#Btn_22)
AddKeyboardShortcut(#Window, #PB_Shortcut_F,#Btn_23)
AddKeyboardShortcut(#Window, #PB_Shortcut_G,#Btn_24)
AddKeyboardShortcut(#Window, #PB_Shortcut_H,#Btn_25)
AddKeyboardShortcut(#Window, #PB_Shortcut_J,#Btn_26)
AddKeyboardShortcut(#Window, #PB_Shortcut_K,#Btn_27)
AddKeyboardShortcut(#Window, #PB_Shortcut_L,#Btn_28)
AddKeyboardShortcut(#Window, #PB_Shortcut_M,#Btn_29)
AddKeyboardShortcut(#Window, #PB_Shortcut_W,#Btn_30)
AddKeyboardShortcut(#Window, #PB_Shortcut_X,#Btn_31)
AddKeyboardShortcut(#Window, #PB_Shortcut_C,#Btn_32)
AddKeyboardShortcut(#Window, #PB_Shortcut_V,#Btn_33)
AddKeyboardShortcut(#Window, #PB_Shortcut_B,#Btn_34)
AddKeyboardShortcut(#Window, #PB_Shortcut_N,#Btn_35)
AddKeyboardShortcut(#Window, #PB_Shortcut_Space,#Btn_36)
;-boucle event
Repeat
EventID.l = WaitWindowEvent()
If EventID.l = #PB_EventGadget
Select EventGadgetID()
Case #Btn_load
HideGadget(#Text_load,1);Cache du texte
SetGadgetState(#ProgBar_1,0); remise à zéro de la barre de chargement
Load_Sounds();choix de la banque et chargement
;On vérifie que chaque son ait été correctement initialisé pour chaque touche/bouton
;et si oui le son est joué dès qu'on enfonce une touche/bouton
;Dans le même temps on rempli la ProgressBar attitrée pendant 200 ms puis on la vide
;On obtient ainsi l'effet d'équalizer et on peut visualiser ce que l'on fait.
Case #btn_0 : Resultat0 = IsSound(#Son_0) :If Resultat0<>0 :PlaySound(#son_0,0) :EndIf
SetGadgetState(#ProgBar_2, 100) :Delay(200) :SetGadgetState(#ProgBar_2, 0)
Case #btn_1 : Resultat1 = IsSound(#Son_1) :If Resultat1<>0 :PlaySound(#son_1,0) :EndIf
SetGadgetState(#ProgBar_3, 100) :Delay(200) :SetGadgetState(#ProgBar_3, 0)
Case #btn_2 : Resultat2 = IsSound(#Son_2) :If Resultat2<>0 :PlaySound(#son_2,0) :EndIf
SetGadgetState(#ProgBar_4, 100) :Delay(200) :SetGadgetState(#ProgBar_4, 0)
Case #btn_3 : Resultat3 = IsSound(#Son_3) :If Resultat3<>0 :PlaySound(#son_3,0) :EndIf
SetGadgetState(#ProgBar_5, 100) :Delay(200) :SetGadgetState(#ProgBar_5, 0)
Case #btn_4 : Resultat4 = IsSound(#Son_4) :If Resultat4<>0 :PlaySound(#son_4,0) :EndIf
SetGadgetState(#ProgBar_6, 100) :Delay(200) :SetGadgetState(#ProgBar_6, 0)
Case #btn_5 : Resultat5 = IsSound(#Son_5) :If Resultat5<>0 :PlaySound(#son_5,0) :EndIf
SetGadgetState(#ProgBar_7, 100) :Delay(200) :SetGadgetState(#ProgBar_7, 0)
Case #btn_6 : Resultat6 = IsSound(#Son_6) :If Resultat6<>0 :PlaySound(#son_6,0) :EndIf
SetGadgetState(#ProgBar_8, 100) :Delay(200) :SetGadgetState(#ProgBar_8, 0)
Case #btn_7 : Resultat7 = IsSound(#Son_7) :If Resultat7<>0 :PlaySound(#son_7,0) :EndIf
SetGadgetState(#ProgBar_9, 100) :Delay(200) :SetGadgetState(#ProgBar_9, 0)
Case #btn_8 : Resultat8 = IsSound(#Son_8) :If Resultat8<>0 :PlaySound(#son_8,0) :EndIf
SetGadgetState(#ProgBar_10, 100) :Delay(200) :SetGadgetState(#ProgBar_10, 0)
Case #btn_9 : Resultat9 = IsSound(#Son_9) :If Resultat9<>0 :PlaySound(#son_9,0) :EndIf
SetGadgetState(#ProgBar_11, 100) :Delay(200) :SetGadgetState(#ProgBar_11, 0)
Case #btn_10 : Resultat10 = IsSound(#Son_10) :If Resultat10<>0 :PlaySound(#son_10,0) :EndIf
SetGadgetState(#ProgBar_12, 100) :Delay(200) :SetGadgetState(#ProgBar_12, 0)
Case #btn_11 : Resultat11 = IsSound(#Son_11) :If Resultat11<>0 :PlaySound(#son_11,0) :EndIf
SetGadgetState(#ProgBar_13, 100) :Delay(200) :SetGadgetState(#ProgBar_13, 0)
Case #btn_12 : Resultat12 = IsSound(#Son_12) :If Resultat12<>0 :PlaySound(#son_12,0) :EndIf
SetGadgetState(#ProgBar_14, 100) :Delay(200) :SetGadgetState(#ProgBar_14, 0)
Case #btn_13 : Resultat13 = IsSound(#Son_13) :If Resultat13<>0 :PlaySound(#son_13,0) :EndIf
SetGadgetState(#ProgBar_15, 100) :Delay(200) :SetGadgetState(#ProgBar_15, 0)
Case #btn_14 : Resultat14 = IsSound(#Son_14) :If Resultat14<>0 :PlaySound(#son_14,0) :EndIf
SetGadgetState(#ProgBar_16, 100) :Delay(200) :SetGadgetState(#ProgBar_16, 0)
Case #btn_15 : Resultat15 = IsSound(#Son_15) :If Resultat15<>0 :PlaySound(#son_15,0) :EndIf
SetGadgetState(#ProgBar_17, 100) :Delay(200) :SetGadgetState(#ProgBar_17, 0)
Case #btn_16 : Resultat16 = IsSound(#Son_16) :If Resultat16<>0 :PlaySound(#son_16,0) :EndIf
SetGadgetState(#ProgBar_18, 100) :Delay(200) :SetGadgetState(#ProgBar_18, 0)
Case #btn_17 : Resultat17 = IsSound(#Son_17) :If Resultat17<>0 :PlaySound(#son_17,0) :EndIf
SetGadgetState(#ProgBar_19, 100) :Delay(200) :SetGadgetState(#ProgBar_19, 0)
Case #btn_18 : Resultat18 = IsSound(#Son_18) :If Resultat18<>0 :PlaySound(#son_18,0) :EndIf
SetGadgetState(#ProgBar_20, 100) :Delay(200) :SetGadgetState(#ProgBar_20, 0)
Case #btn_19 : Resultat19 = IsSound(#Son_19) :If Resultat19<>0 :PlaySound(#son_19,0) :EndIf
SetGadgetState(#ProgBar_21, 100) :Delay(200) :SetGadgetState(#ProgBar_21, 0)
Case #btn_20 : Resultat20 = IsSound(#Son_20) :If Resultat20<>0 :PlaySound(#son_20,0) :EndIf
SetGadgetState(#ProgBar_22, 100) :Delay(200) :SetGadgetState(#ProgBar_22, 0)
Case #btn_21 : Resultat21 = IsSound(#Son_21) :If Resultat21<>0 :PlaySound(#son_21,0) :EndIf
SetGadgetState(#ProgBar_23, 100) :Delay(200) :SetGadgetState(#ProgBar_23, 0)
Case #btn_22 : Resultat22 = IsSound(#Son_22) :If Resultat22<>0 :PlaySound(#son_22,0) :EndIf
SetGadgetState(#ProgBar_24, 100) :Delay(200) :SetGadgetState(#ProgBar_24, 0)
Case #btn_23 : Resultat23 = IsSound(#Son_23) :If Resultat23<>0 :PlaySound(#son_23,0) :EndIf
SetGadgetState(#ProgBar_25, 100) :Delay(200) :SetGadgetState(#ProgBar_25, 0)
Case #btn_24 : Resultat24 = IsSound(#Son_24) :If Resultat24<>0 :PlaySound(#son_24,0) :EndIf
SetGadgetState(#ProgBar_26, 100) :Delay(200) :SetGadgetState(#ProgBar_26, 0)
Case #btn_25 : Resultat25 = IsSound(#Son_25) :If Resultat25<>0 :PlaySound(#son_25,0) :EndIf
SetGadgetState(#ProgBar_27, 100) :Delay(200) :SetGadgetState(#ProgBar_27, 0)
Case #btn_26 : Resultat26 = IsSound(#Son_26) :If Resultat26<>0 :PlaySound(#son_26,0) :EndIf
SetGadgetState(#ProgBar_28, 100) :Delay(200) :SetGadgetState(#ProgBar_28, 0)
Case #btn_27 : Resultat27 = IsSound(#Son_27) :If Resultat27<>0 :PlaySound(#son_27,0) :EndIf
SetGadgetState(#ProgBar_29, 100) :Delay(200) :SetGadgetState(#ProgBar_29, 0)
Case #btn_28 : Resultat28 = IsSound(#Son_28) :If Resultat28<>0 :PlaySound(#son_28,0) :EndIf
SetGadgetState(#ProgBar_30, 100) :Delay(200) :SetGadgetState(#ProgBar_30, 0)
Case #btn_29 : Resultat29 = IsSound(#Son_29) :If Resultat29<>0 :PlaySound(#son_29,0) :EndIf
SetGadgetState(#ProgBar_31, 100) :Delay(200) :SetGadgetState(#ProgBar_31, 0)
Case #btn_30 : Resultat30 = IsSound(#Son_30) :If Resultat30<>0 :PlaySound(#son_30,0) :EndIf
SetGadgetState(#ProgBar_32, 100) :Delay(200) :SetGadgetState(#ProgBar_32, 0)
Case #btn_31 : Resultat31 = IsSound(#Son_31) :If Resultat31<>0 :PlaySound(#son_31,0) :EndIf
SetGadgetState(#ProgBar_33, 100) :Delay(200) :SetGadgetState(#ProgBar_33, 0)
Case #btn_32 : Resultat32 = IsSound(#Son_32) :If Resultat32<>0 :PlaySound(#son_32,0) :EndIf
SetGadgetState(#ProgBar_34, 100) :Delay(200) :SetGadgetState(#ProgBar_34, 0)
Case #btn_33 : Resultat33 = IsSound(#Son_33) :If Resultat33<>0 :PlaySound(#son_33,0) :EndIf
SetGadgetState(#ProgBar_35, 100) :Delay(200) :SetGadgetState(#ProgBar_35, 0)
Case #btn_34 : Resultat34 = IsSound(#Son_34) :If Resultat34<>0 :PlaySound(#son_34,0) :EndIf
SetGadgetState(#ProgBar_36, 100) :Delay(200) :SetGadgetState(#ProgBar_36, 0)
Case #btn_35 : Resultat35 = IsSound(#Son_35) :If Resultat35<>0 :PlaySound(#son_35,0) :EndIf
SetGadgetState(#ProgBar_37, 100) :Delay(200) :SetGadgetState(#ProgBar_37, 0)
Case #btn_36 : Resultat36 = IsSound(#Son_36) :If Resultat36<>0 :PlaySound(#son_36,0) :EndIf
SetGadgetState(#ProgBar_38, 100) :Delay(200) :SetGadgetState(#ProgBar_38, 0)
EndSelect
EndIf
;-fonctions toolbar
If EventID.l = #PB_EventMenu
Select EventID
Case #PB_EventMenu
Select EventMenuID()
Case 0 ;Load
HideGadget(#Text_load,1)
SetGadgetState(#ProgBar_1,0)
Load_Sounds()
Case 1 ;Info
MessageRequester("MonPiano V1.0", "MonPiano version 1.0 par Jacobus 09/2004 "+Chr(13)+" Généré avec : PureBasic 3.91 "+Chr(13)+" Système Windows Me ",#MB_ICONINFORMATION | #PB_MessageRequester_Ok)
Case 2 ; mute
;Ce bouton sert à couper le volume de chaque son, donc...
SoundVolume(#Son_0, 0);son_0 ramené au volume 0
SoundVolume(#Son_1, 0);son_1 ramené au volume 0
SoundVolume(#Son_2, 0);etc...
SoundVolume(#Son_3, 0)
SoundVolume(#Son_4, 0)
SoundVolume(#Son_5, 0)
SoundVolume(#Son_6, 0)
SoundVolume(#Son_7, 0)
SoundVolume(#Son_8, 0)
SoundVolume(#Son_9, 0)
SoundVolume(#Son_10, 0)
SoundVolume(#Son_11, 0)
SoundVolume(#Son_12, 0)
SoundVolume(#Son_13, 0)
SoundVolume(#Son_14, 0)
SoundVolume(#Son_15, 0)
SoundVolume(#Son_16, 0)
SoundVolume(#Son_17, 0)
SoundVolume(#Son_18, 0)
SoundVolume(#Son_19, 0)
SoundVolume(#Son_20, 0)
SoundVolume(#Son_21, 0)
SoundVolume(#Son_22, 0)
SoundVolume(#Son_23, 0)
SoundVolume(#Son_24, 0)
SoundVolume(#Son_25, 0)
SoundVolume(#Son_26, 0)
SoundVolume(#Son_27, 0)
SoundVolume(#Son_28, 0)
SoundVolume(#Son_29, 0)
SoundVolume(#Son_30, 0)
SoundVolume(#Son_31, 0)
SoundVolume(#Son_32, 0)
SoundVolume(#Son_33, 0)
SoundVolume(#Son_34, 0)
SoundVolume(#Son_35, 0)
SoundVolume(#Son_36, 0)
Case 3 ; level 1
;Bouton permettant de ramener le volume au 1/3 du général, donc...
SoundVolume(#Son_0, 33);son_0 ramené à 33% du volume max
SoundVolume(#Son_1, 33);etc...
SoundVolume(#Son_2, 33)
SoundVolume(#Son_3, 33)
SoundVolume(#Son_4, 33)
SoundVolume(#Son_5, 33)
SoundVolume(#Son_6, 33)
SoundVolume(#Son_7, 33)
SoundVolume(#Son_8, 33)
SoundVolume(#Son_9, 33)
SoundVolume(#Son_10,33)
SoundVolume(#Son_11,33)
SoundVolume(#Son_12,33)
SoundVolume(#Son_13,33)
SoundVolume(#Son_14,33)
SoundVolume(#Son_15,33)
SoundVolume(#Son_16,33)
SoundVolume(#Son_17,33)
SoundVolume(#Son_18,33)
SoundVolume(#Son_19,33)
SoundVolume(#Son_20,33)
SoundVolume(#Son_21,33)
SoundVolume(#Son_22,33)
SoundVolume(#Son_23,33)
SoundVolume(#Son_24,33)
SoundVolume(#Son_25,33)
SoundVolume(#Son_26,33)
SoundVolume(#Son_27,33)
SoundVolume(#Son_28,33)
SoundVolume(#Son_29,33)
SoundVolume(#Son_30,33)
SoundVolume(#Son_31,33)
SoundVolume(#Son_32,33)
SoundVolume(#Son_33,33)
SoundVolume(#Son_34,33)
SoundVolume(#Son_35,33)
SoundVolume(#Son_36,33)
Case 4 ; level 2
SoundVolume(#Son_0, 66);son_0 à 66% du volume max
SoundVolume(#Son_1, 66);etc...
SoundVolume(#Son_2, 66)
SoundVolume(#Son_3, 66)
SoundVolume(#Son_4, 66)
SoundVolume(#Son_5, 66)
SoundVolume(#Son_6, 66)
SoundVolume(#Son_7, 66)
SoundVolume(#Son_8, 66)
SoundVolume(#Son_9, 66)
SoundVolume(#Son_10,66)
SoundVolume(#Son_11,66)
SoundVolume(#Son_12,66)
SoundVolume(#Son_13,66)
SoundVolume(#Son_14,66)
SoundVolume(#Son_15,66)
SoundVolume(#Son_16,66)
SoundVolume(#Son_17,66)
SoundVolume(#Son_18,66)
SoundVolume(#Son_19,66)
SoundVolume(#Son_20,66)
SoundVolume(#Son_21,66)
SoundVolume(#Son_22,66)
SoundVolume(#Son_23,66)
SoundVolume(#Son_24,66)
SoundVolume(#Son_25,66)
SoundVolume(#Son_26,66)
SoundVolume(#Son_27,66)
SoundVolume(#Son_28,66)
SoundVolume(#Son_29,66)
SoundVolume(#Son_30,66)
SoundVolume(#Son_31,66)
SoundVolume(#Son_32,66)
SoundVolume(#Son_33,66)
SoundVolume(#Son_34,66)
SoundVolume(#Son_35,66)
SoundVolume(#Son_36,66)
Case 5 ; level 3
; volume max pour chaque son
SoundVolume(#Son_0, 100)
SoundVolume(#Son_1, 100)
SoundVolume(#Son_2, 100)
SoundVolume(#Son_3, 100)
SoundVolume(#Son_4, 100)
SoundVolume(#Son_5, 100)
SoundVolume(#Son_6, 100)
SoundVolume(#Son_7, 100)
SoundVolume(#Son_8, 100)
SoundVolume(#Son_9, 100)
SoundVolume(#Son_10,100)
SoundVolume(#Son_11,100)
SoundVolume(#Son_12,100)
SoundVolume(#Son_13,100)
SoundVolume(#Son_14,100)
SoundVolume(#Son_15,100)
SoundVolume(#Son_16,100)
SoundVolume(#Son_17,100)
SoundVolume(#Son_18,100)
SoundVolume(#Son_19,100)
SoundVolume(#Son_20,100)
SoundVolume(#Son_21,100)
SoundVolume(#Son_22,100)
SoundVolume(#Son_23,100)
SoundVolume(#Son_24,100)
SoundVolume(#Son_25,100)
SoundVolume(#Son_26,100)
SoundVolume(#Son_27,100)
SoundVolume(#Son_28,100)
SoundVolume(#Son_29,100)
SoundVolume(#Son_30,100)
SoundVolume(#Son_31,100)
SoundVolume(#Son_32,100)
SoundVolume(#Son_33,100)
SoundVolume(#Son_34,100)
SoundVolume(#Son_35,100)
SoundVolume(#Son_36,100)
Case 6 ; balance HP gauche
SoundPan(#Son_0, -100)
SoundPan(#Son_1, -100)
SoundPan(#Son_2, -100)
SoundPan(#Son_3, -100)
SoundPan(#Son_4, -100)
SoundPan(#Son_5, -100)
SoundPan(#Son_6, -100)
SoundPan(#Son_7, -100)
SoundPan(#Son_8, -100)
SoundPan(#Son_9, -100)
SoundPan(#Son_10, -100)
SoundPan(#Son_11, -100)
SoundPan(#Son_12, -100)
SoundPan(#Son_13, -100)
SoundPan(#Son_14, -100)
SoundPan(#Son_15, -100)
SoundPan(#Son_16, -100)
SoundPan(#Son_17, -100)
SoundPan(#Son_18, -100)
SoundPan(#Son_19, -100)
SoundPan(#Son_20, -100)
SoundPan(#Son_21, -100)
SoundPan(#Son_22, -100)
SoundPan(#Son_23, -100)
SoundPan(#Son_24, -100)
SoundPan(#Son_25, -100)
SoundPan(#Son_26, -100)
SoundPan(#Son_27, -100)
SoundPan(#Son_28, -100)
SoundPan(#Son_29, -100)
SoundPan(#Son_30, -100)
SoundPan(#Son_31, -100)
SoundPan(#Son_32, -100)
SoundPan(#Son_33, -100)
SoundPan(#Son_34, -100)
SoundPan(#Son_35, -100)
SoundPan(#Son_36, -100)
Case 7 ; balance HP droit
SoundPan(#Son_0, 100)
SoundPan(#Son_1, 100)
SoundPan(#Son_2, 100)
SoundPan(#Son_3, 100)
SoundPan(#Son_4, 100)
SoundPan(#Son_5, 100)
SoundPan(#Son_6, 100)
SoundPan(#Son_7, 100)
SoundPan(#Son_8, 100)
SoundPan(#Son_9, 100)
SoundPan(#Son_10,100)
SoundPan(#Son_11, 100)
SoundPan(#Son_12, 100)
SoundPan(#Son_13, 100)
SoundPan(#Son_14, 100)
SoundPan(#Son_15, 100)
SoundPan(#Son_16, 100)
SoundPan(#Son_17, 100)
SoundPan(#Son_18, 100)
SoundPan(#Son_19, 100)
SoundPan(#Son_20, 100)
SoundPan(#Son_21, 100)
SoundPan(#Son_22, 100)
SoundPan(#Son_23, 100)
SoundPan(#Son_24, 100)
SoundPan(#Son_25, 100)
SoundPan(#Son_26, 100)
SoundPan(#Son_27, 100)
SoundPan(#Son_28, 100)
SoundPan(#Son_29, 100)
SoundPan(#Son_30, 100)
SoundPan(#Son_31, 100)
SoundPan(#Son_32, 100)
SoundPan(#Son_33, 100)
SoundPan(#Son_34, 100)
SoundPan(#Son_35, 100)
SoundPan(#Son_36, 100)
Case 8;Stéréo
SoundPan(#Son_0, 0)
SoundPan(#Son_1, 0)
SoundPan(#Son_2, 0)
SoundPan(#Son_3, 0)
SoundPan(#Son_4, 0)
SoundPan(#Son_5, 0)
SoundPan(#Son_6, 0)
SoundPan(#Son_7, 0)
SoundPan(#Son_8, 0)
SoundPan(#Son_9, 0)
SoundPan(#Son_10,0)
SoundPan(#Son_11, 0)
SoundPan(#Son_12, 0)
SoundPan(#Son_13, 0)
SoundPan(#Son_14, 0)
SoundPan(#Son_15, 0)
SoundPan(#Son_16, 0)
SoundPan(#Son_17, 0)
SoundPan(#Son_18, 0)
SoundPan(#Son_19, 0)
SoundPan(#Son_20, 0)
SoundPan(#Son_21, 0)
SoundPan(#Son_22, 0)
SoundPan(#Son_23, 0)
SoundPan(#Son_24, 0)
SoundPan(#Son_25, 0)
SoundPan(#Son_26, 0)
SoundPan(#Son_27, 0)
SoundPan(#Son_28, 0)
SoundPan(#Son_29, 0)
SoundPan(#Son_30, 0)
SoundPan(#Son_31, 0)
SoundPan(#Son_32, 0)
SoundPan(#Son_33, 0)
SoundPan(#Son_34, 0)
SoundPan(#Son_35, 0)
SoundPan(#Son_36, 0)
;-fonctions raccourcis
;Idem que pour les touches écran mais pour les raccourcis clavier
Case #btn_0
Resultat0 = IsSound(#Son_0)
If Resultat0<>0
PlaySound(#son_0,0) :EndIf
SetGadgetState(#ProgBar_2, 100) :Delay(200) :SetGadgetState(#ProgBar_2, 0)
Case #btn_1
Resultat1 = IsSound(#Son_1)
If Resultat1<>0
PlaySound(#son_1,0) :EndIf
SetGadgetState(#ProgBar_3, 100) :Delay(200) :SetGadgetState(#ProgBar_3, 0)
Case #btn_2
Resultat2 = IsSound(#Son_2)
If Resultat2<>0
PlaySound(#son_2,0) :EndIf
SetGadgetState(#ProgBar_4, 100) :Delay(200) :SetGadgetState(#ProgBar_4, 0)
Case #btn_3
Resultat3 = IsSound(#Son_3)
If Resultat3<>0
PlaySound(#son_3,0) :EndIf
SetGadgetState(#ProgBar_5, 100) :Delay(200) :SetGadgetState(#ProgBar_5, 0)
Case #btn_4
Resultat4 = IsSound(#Son_4)
If Resultat4<>0
PlaySound(#son_4,0) :EndIf
SetGadgetState(#ProgBar_6, 100) :Delay(200) :SetGadgetState(#ProgBar_6, 0)
Case #btn_5
Resultat5 = IsSound(#Son_5)
If Resultat5<>0
PlaySound(#son_5,0) :EndIf
SetGadgetState(#ProgBar_7, 100) :Delay(200) :SetGadgetState(#ProgBar_7, 0)
Case #btn_6
Resultat6 = IsSound(#Son_6)
If Resultat6<>0
PlaySound(#son_6,0) :EndIf
SetGadgetState(#ProgBar_8, 100) :Delay(200) :SetGadgetState(#ProgBar_8, 0)
Case #btn_7
Resultat7 = IsSound(#Son_7)
If Resultat7<>0
PlaySound(#son_7,0) :EndIf
SetGadgetState(#ProgBar_9, 100) :Delay(200) :SetGadgetState(#ProgBar_9, 0)
Case #btn_8
Resultat8 = IsSound(#Son_8)
If Resultat8<>0
PlaySound(#son_8,0) :EndIf
SetGadgetState(#ProgBar_10, 100) :Delay(200) :SetGadgetState(#ProgBar_10, 0)
Case #btn_9
Resultat9 = IsSound(#Son_9)
If Resultat9<>0
PlaySound(#son_9,0) :EndIf
SetGadgetState(#ProgBar_11, 100) :Delay(200) :SetGadgetState(#ProgBar_11, 0)
Case #btn_10
Resultat10 = IsSound(#Son_10)
If Resultat10<>0
PlaySound(#son_10,0) :EndIf
SetGadgetState(#ProgBar_12, 100) :Delay(200) :SetGadgetState(#ProgBar_12, 0)
Case #btn_11
Resultat11 = IsSound(#Son_11)
If Resultat11<>0
PlaySound(#son_11,0) :EndIf
SetGadgetState(#ProgBar_13, 100) :Delay(200) :SetGadgetState(#ProgBar_13, 0)
Case #btn_12
Resultat12 = IsSound(#Son_12)
If Resultat12<>0
PlaySound(#son_12,0) :EndIf
SetGadgetState(#ProgBar_14, 100) :Delay(200) :SetGadgetState(#ProgBar_14, 0)
Case #btn_13
Resultat13 = IsSound(#Son_13)
If Resultat13<>0
PlaySound(#son_13,0) :EndIf
SetGadgetState(#ProgBar_15, 100) :Delay(200) :SetGadgetState(#ProgBar_15, 0)
Case #btn_14
Resultat14 = IsSound(#Son_14)
If Resultat14<>0
PlaySound(#son_14,0) :EndIf
SetGadgetState(#ProgBar_16, 100) :Delay(200) :SetGadgetState(#ProgBar_16, 0)
Case #btn_15
Resultat15 = IsSound(#Son_15)
If Resultat15<>0
PlaySound(#son_15,0) :EndIf
SetGadgetState(#ProgBar_17, 100) :Delay(200) :SetGadgetState(#ProgBar_17, 0)
Case #btn_16
Resultat16 = IsSound(#Son_16)
If Resultat16<>0
PlaySound(#son_16,0) :EndIf
SetGadgetState(#ProgBar_18, 100) :Delay(200) :SetGadgetState(#ProgBar_18, 0)
Case #btn_17
Resultat17 = IsSound(#Son_17)
If Resultat17<>0
PlaySound(#son_17,0) :EndIf
SetGadgetState(#ProgBar_19, 100) :Delay(200) :SetGadgetState(#ProgBar_19, 0)
Case #btn_18
Resultat18 = IsSound(#Son_18)
If Resultat18<>0
PlaySound(#son_18,0) :EndIf
SetGadgetState(#ProgBar_20, 100) :Delay(200) :SetGadgetState(#ProgBar_20, 0)
Case #btn_19
Resultat19 = IsSound(#Son_19)
If Resultat19<>0
PlaySound(#son_19,0) :EndIf
SetGadgetState(#ProgBar_21, 100) :Delay(200) :SetGadgetState(#ProgBar_21, 0)
Case #btn_20
Resultat20 = IsSound(#Son_20)
If Resultat20<>0
PlaySound(#son_20,0) :EndIf
SetGadgetState(#ProgBar_22, 100) :Delay(200) :SetGadgetState(#ProgBar_22, 0)
Case #btn_21
Resultat21 = IsSound(#Son_21)
If Resultat21<>0
PlaySound(#son_21,0) :EndIf
SetGadgetState(#ProgBar_23, 100) :Delay(200) :SetGadgetState(#ProgBar_23, 0)
Case #btn_22
Resultat22 = IsSound(#Son_22)
If Resultat22<>0
PlaySound(#son_22,0) :EndIf
SetGadgetState(#ProgBar_24, 100) :Delay(200) :SetGadgetState(#ProgBar_24, 0)
Case #btn_23
Resultat23 = IsSound(#Son_23)
If Resultat23<>0
PlaySound(#son_23,0) :EndIf
SetGadgetState(#ProgBar_25, 100) :Delay(200) :SetGadgetState(#ProgBar_25, 0)
Case #btn_24
Resultat24 = IsSound(#Son_24)
If Resultat24<>0
PlaySound(#son_24,0) :EndIf
SetGadgetState(#ProgBar_26, 100) :Delay(200) :SetGadgetState(#ProgBar_26, 0)
Case #btn_25
Resultat25 = IsSound(#Son_25)
If Resultat25<>0
PlaySound(#son_25,0) :EndIf
SetGadgetState(#ProgBar_27, 100) :Delay(200) :SetGadgetState(#ProgBar_27, 0)
Case #btn_26
Resultat26 = IsSound(#Son_26)
If Resultat26<>0
PlaySound(#son_26,0) :EndIf
SetGadgetState(#ProgBar_28, 100) :Delay(200) :SetGadgetState(#ProgBar_28, 0)
Case #btn_27
Resultat27 = IsSound(#Son_27)
If Resultat27<>0
PlaySound(#son_27,0) :EndIf
SetGadgetState(#ProgBar_29, 100) :Delay(200) :SetGadgetState(#ProgBar_29, 0)
Case #btn_28
Resultat28 = IsSound(#Son_28)
If Resultat28<>0
PlaySound(#son_28,0) :EndIf
SetGadgetState(#ProgBar_30, 100) :Delay(200) :SetGadgetState(#ProgBar_30, 0)
Case #btn_29
Resultat29 = IsSound(#Son_29)
If Resultat29<>0
PlaySound(#son_29,0) :EndIf
SetGadgetState(#ProgBar_31, 100) :Delay(200) :SetGadgetState(#ProgBar_31, 0)
Case #btn_30
Resultat30 = IsSound(#Son_30)
If Resultat30<>0
PlaySound(#son_30,0) :EndIf
SetGadgetState(#ProgBar_32, 100) :Delay(200) :SetGadgetState(#ProgBar_32, 0)
Case #btn_31
Resultat31 = IsSound(#Son_31)
If Resultat31<>0
PlaySound(#son_31,0) :EndIf
SetGadgetState(#ProgBar_33, 100) :Delay(200) :SetGadgetState(#ProgBar_33, 0)
Case #btn_32
Resultat32 = IsSound(#Son_32)
If Resultat32<>0
PlaySound(#son_32,0) :EndIf
SetGadgetState(#ProgBar_34, 100) :Delay(200) :SetGadgetState(#ProgBar_34, 0)
Case #btn_33
Resultat33 = IsSound(#Son_33)
If Resultat33<>0
PlaySound(#son_33,0) :EndIf
SetGadgetState(#ProgBar_35, 100) :Delay(200) :SetGadgetState(#ProgBar_35, 0)
Case #btn_34
Resultat34 = IsSound(#Son_34)
If Resultat34<>0
PlaySound(#son_34,0) :EndIf
SetGadgetState(#ProgBar_36, 100) :Delay(200) :SetGadgetState(#ProgBar_36, 0)
Case #btn_35
Resultat35 = IsSound(#Son_35)
If Resultat35<>0
PlaySound(#son_35,0) :EndIf
SetGadgetState(#ProgBar_37, 100) :Delay(200) :SetGadgetState(#ProgBar_37, 0)
Case #btn_36
Resultat36 = IsSound(#Son_36)
If Resultat36<>0
PlaySound(#son_36,0) :EndIf
SetGadgetState(#ProgBar_38, 100) :Delay(200) :SetGadgetState(#ProgBar_38, 0)
EndSelect
Case #PB_Event_CloseWindow
Quit=1
EndSelect
EndIf
Until EventID=#PB_Event_CloseWindow
Quit=1
EndIf
End
@+ Jacobus