Page 4 sur 11

Publié : jeu. 09/sept./2004 14:30
par Jacobus
:D Salut à vous tous,

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
J'ai essayé de commenter pour les débutants, mais je suis pas trop fort, enfin j'espère que vous comprendrez. Sinon il y a une section pour ça.

@+ Jacobus

Publié : jeu. 09/sept./2004 16:12
par nico
L'exe aurait été bienvenue, sinon faut s'amuser à changer les liens vers d'autres icônes. :(

:)

Publié : jeu. 09/sept./2004 18:56
par Jacobus
:) C'est sûr ce sera mieux pour tester rapidement,
donc si quelqu'un veut rendre l'exe accessible sur son site, je lui envoie.
Sous forme d'installeur d'application (avec désinstalleur bien-sûr :mrgreen: )
ce qui créera les répertoires pour le chargement des banques sons.

un volontaire ? :D

Publié : jeu. 09/sept./2004 19:48
par Oliv
je peux si tu veux (je sais que je n'ai pas mis ta dernière création mais je l'ai perdue et j'ai oubié de te le dire, fallait me le rappeler :oops: )

Publié : jeu. 09/sept./2004 20:06
par Jacobus
:cry: BBOOOUUUHHH!!!
Tu l'as perdu ! Un chef d'oeuvre pareil !!
C'est une Honte! un scandale! Palsembleu et Mortecouille !
je vais te pourfendre manant ! :twisted:

Bouarf, je rigole :D , Dès que ce sera mieux je te le renverrai et tanpis pour toi.

Pour cet exécutable, je t'envoie de suite la version légère, 79.5 ko Zippée elle est plus petite. Tu pourras la lancer immédiatement et voir ce que c'est. Mais pour l'utiliser là il faudra créer tes répertoires soit:
c:\MonPiano <---dans celui-là créer \banques de sons et \UseBank
dans \Banques de sons > tu places tous les répertoires que tu veux tant qu'ils contiennent des wav files nommés son1; son2; son3 >>> son36
Et là, miracle ça marche.
Par la suite je t'expédie l'install qui est plus grosse vu que j'y ajoute deux banques sons de plusieurs Mo (wav oblige)
Après ça amuses toi bien et fais en profiter les autres.

Merci à toi

@+Jacobus :D

Publié : jeu. 09/sept./2004 21:09
par Oliv
Voilà c'est ici
Je te laisse faire les recommandations :wink:

Publié : jeu. 09/sept./2004 22:08
par Backup
Recherche un connaisseur de solfège (Dobro ?) pour générer 36 notes de base en wav

Ok ! tu veux savoir quoi au juste ?? (tres precisement !!) :D

si c'est le calcul de la frequence des notes tiens :
http://www.ac-nantes.fr/peda/disc/scphy ... /piano.htm

(regarder vers le bas de cette page !! )

:D

Publié : jeu. 09/sept./2004 22:57
par Jacobus
:D Salut Dobro,
Ben je me disais, comme ça en voyant ta guitare, que tu pourrais peut-être nous faire une gamme Do Ré Mi...etc... sur 37 notes, de la plus basse à la plus haute. Soit 37 petits wav files dans une banque sons. :?
Je sais que c'est du boulot, mais si tu es équipé pour le faire ce serait sympa. :D ça permettrait à l'utilisateur du piano de jouer au clair de la lune sans s'estropier la matière grise.
Mon vrai clavier a les dernières notes qui sifflent et un octave pété.
L'a besoin de voir le toubib :roll:
Dès que j'aurai un peu de temps je fouillerai la page que tu m'as indiqué.

@ Oliv : Merci c'est cool. :D
recommandations simples:
Donc avec l'appli téléchargée chez Oliv, il faut que vous vous fassiez vos répertoires : Soit un nommé C:\MonPiano dans lequel vous créez un autre répertoire nommé \Banques de sons et un autre nommé \UseBank
Vous pourrez placer vos répertoires contenant vos wav files de son0 à son36 (ça en fait 37 et non 36, je me suis trompé tout à l'heure)
et ainsi permettre à MonPiano d'aller les charger quand vous en aurez besoin. En attendant que je transmette l'installeur complet à Oliv.

Voilà amusez vous, testez et dites ce que vous en pensez.

@+ Jacobus

Publié : ven. 10/sept./2004 1:24
par ZapMan
Pas mal du tout !!

C'est sûr qu'en dehors des banques de sons, il faudrait au minimum la possibilité d'enregistrer le résultat de nos géniales compositions dans un fichier wave ! Ca ne sera pas grand chose à faire dès que tu auras ajouté la fonction "partition" (Il s'agira de mixer ou de mettre bout à bout les échantillons WAV en respectant la partition). Si personne d'autre ne s'y colle, je pourrais te donner un coup de main.

J'ai trouvé dommage qu'on ne puisse pas faire un "glissando" avec la souris sur le clavier.

Si tu veux partager ton travail sur freesoundeditor.com (qui fonctionne, à présent) tu peux m'envoyer un dossier à :
seproject@freesoundeditor.com (merci pour le lien dans ton aide)
je le mettrais en ligne.

A terme, ton outil pourra s'intégrer à SoundEditor grâce au gestionnaire de synthétiseur (pas encore fini).

Si tu suis la philosophie de SoundEditor, tu devrais intégrer dans ton exe au moins UNE banque de sons pour que l'utilisateur puisse tester ton appli par un simple clic sur l'exe, sans avoir rien d'autre à installer.

Publié : ven. 10/sept./2004 12:09
par Jacobus
; :D Merci, content que tu apprécies.

;C'est vrai que l'enregistrement de la compo est ce qui manque le plus
;à mon avis. Composer un morceau réécoutable par la suite est essentiel.

;La solution que j'entrevois, comme tu le dis, est la copie des échantillons
;wav au fur et à mesure qu'ils sont joués mais pas mis bout à bout, ce qui
;ne serait pas terrible, mais l'un par dessus l'autre avec le décalage
;correspondant à la frappe.
;Dans le cas du piano, on obtiendrait 37 pistes qui formeraient un escalier
;en fonction des touches frappées et du temps durant lequel le doigt est sur la touche. (un échantillon n'a pas terminé sa lecture, qu'un autre commence, voire plusieurs si le pianiste est doué) d'où l'intérêt de les copier en chevauchement des uns des autres. Donc échantillons mixés.

;Le fichier généré en wav, une fois enregistré, devrait avoir la possibilité
;d'être transféré dans SE d'un clic, permettant ainsi de le modifier
;pas en live mais presque, puis rebalancé dans le piano etc...
;Pour commencer cet enregistreur, peut-être qu'un copyfile à chaque pression sur une touche pourrait donner quelque chose...à voir... si tu veux t'y coller, j'accepte volontiers ton aide. Celle des autres aussi.
;Pour la partition, basée sur le même principe, mais ajout d'une note à chaque frappe dans un editorgadget, ou encore un stringgadget composé de plusieurs strings enregistrés dans un fichier de préférences et donc facilement imprimable (je l'ai pour l'instant seulement pensé, pas encore mis en code j'attend que ma cervelle le construise avant de l'écrire, mais l'idée est là)
;
;pour le glissando, c'est vrai que l'idée m'est aussi venue. Mais le blème
;c'est que tu ne pourras sauter d'une touche à l'autre sans faire jouer les
;touches se trouvant entre les deux si le glissando est permanent.
;Ou alors en sortant le curseur de la fenêtre par des grands mouvements.
;Il faudrait la possibilité d'activer ou désactiver ce glissando par une touche. A étudier.

;D'accord pour le dossier, je te le transmet dès que c'est prêt.
;(je vais tâcher de faire quelque chose de clair pour toute personne intéressée.)

;J'ai demandé à Dobro si cela le branchait de créer une gamme de base pour les utilisateurs. Ca pourrait être la banque initiale dans un répertoire
;spécifique. C'est vrai que ce serait mieux d'avoir des sons directement.
; :D Dobro...ma biche, tu veux bien ? dis ? :drinking:
Je vais boire un coup à ta santé
;
;@+ Jacobus

Publié : ven. 10/sept./2004 12:14
par Jacobus
Je suis allé voir freesoundeditor.com :D
Enfin ça marche, très classe et fonctionnel, facile à visiter.
L'inca gagne à être connu.

@+ Jacobus

Publié : ven. 10/sept./2004 18:32
par Backup
; Very Happy Dobro...ma biche, tu veux bien ? dis ?
ben oui si tu veux !! il te faut une gamme avec des dieses ?
et de quel note a quel note ?

sinon en temps que guitariste j'utilise le GR30 c'est un convertisseur midi
qui me permet avec ma guitare electrique (gibson marauder de 1975)
d'attaque des synthetiseur pour jouer avec le son que je veux!
(comme pat metheny :lol: )

le gr 30 dispose de 384 type de son d'instrument super bien modelisé !!!
(tres fort en piano et son d'instrument a vent !! sax,clarinette)

par contre tu vas me dire quel resolution tu veux pour tes wav (44.1 ,16 bits mono) ça te va ??

par contre une guitare ne possede pas 7 octave et demie !!! :)

Publié : ven. 10/sept./2004 23:50
par ZapMan
Jacobus a écrit :Pour commencer cet enregistreur, peut-être qu'un copyfile à chaque pression sur une touche pourrait donner quelque chose...à voir... si tu veux t'y coller, j'accepte volontiers ton aide. Celle des autres aussi.
;Pour la partition, basée sur le même principe, mais ajout d'une note à chaque frappe dans un editorgadget, ou encore un stringgadget composé de plusieurs strings enregistrés dans un fichier de préférences et donc facilement imprimable (je l'ai pour l'instant seulement pensé, pas encore mis en code j'attend que ma cervelle le construise avant de l'écrire, mais l'idée est là)
Gère ton histoire de partition. Pour créer le fichier Wav de sortie, il suffira de reprendre la partition et de faire le mixage correspondant.
Jacobus a écrit :;pour le glissando, c'est vrai que l'idée m'est aussi venue. Mais le blème
;c'est que tu ne pourras sauter d'une touche à l'autre sans faire jouer les
;touches se trouvant entre les deux si le glissando est permanent.
;Ou alors en sortant le curseur de la fenêtre par des grands mouvements.
;Il faudrait la possibilité d'activer ou désactiver ce glissando par une touche. A étudier.
Je me suis mal exprimé, le glissando dont je parle ne dois marcher que si tu maintiens la souris cliquée et que tu la fais glisser sur le clavier : toutes les touches devraient s'abaisser les unes aprés les autres, comme sur un piano quand tu fais glisser tes doigts sur les touches.
Dobro a écrit :ben oui si tu veux !! il te faut une gamme avec des dieses ?
et de quel note a quel note ?
Pour un musicien, je te trouve un peu dur de la feuille :lol:
Oui, il lui faut une gamme avec des dièses avec les 37 notes. Débrouille toi pour fabriquer ces 37 notes d'une manière ou d'une autre. Le but est de créer une banque pour son programme. Si tu lis son aide, tu constateras que tu peux même te faire des ronds (et devenir multi-milliardaire !) en proposant des banques à la vente sur le site freesoundeditor.com.

Publié : sam. 11/sept./2004 0:07
par Chris
ZapMan a écrit :Pour un musicien, je te trouve un peu dur de la feuille
Et alors...
Beethoven était bien sourd comme un pot, ça l'empechait pas de toucher sa bille :lol:

Publié : sam. 11/sept./2004 0:15
par Backup
Merci chris !! :D


a vrai dire j'avais pas recuperé son piano !! :oops:


bon j'ai fait les 37 sons de base (piano) mais lorsque je demande a ton piano de les charger , il dit " IMPOSSIBLE DE COPIER ET DE CHARGER LES SONS, SOIT VOUS AVEZ CLIQUE SUR ANNULER, SOIT LA BANQUE EST INTROUVABLE."

j'ai mis mes sons nommé "1.wav" ,"2.wav" ect ... dans un dossier
et ton programme ne reconnais pas mes fichier !!
ta bank a un format special ??

moi j'ai juste recupere le programme tout nu grace au lien "ici" posté par oliv 8O 8O

j'ai compressé mes sons en *.ace puis en zip !!
bon je mettrai mes sons a dispo lorsque free m'aura permis d'user de mon site FTP !! :evil: ils doivent etre en maintenance la nuit (il est 3:00 du mat ) je vais dormir bye bye , bonjours les reves ! :D