Invité Invité
| Sujet: Piano avec tous les instruments Dim 13 Fév 2011 - 23:26 | |
| Bonjour, J'ai fais un clavier piano qui utilise les 128 instruments midi. Il y a deux bug : 1. Premier instrument ne marche pas 2. Quand on enregistre et on re-ouvre le fichier il a un bug que je ne connais pas sur le chargement de l'image. Le Zip est iciP.S : Ne copier pas le code pour rien l'exécutable est dans le zip. - Code:
-
label touche,note,new,jouer,suppr,click,about,volume,save,open,instrument dim i,j,num,note_b(7),note_n(5),pos_n(5),nom_note$(12),x0,x1,k,gamme,note dim mess,a$,NomPath$,Nom$,NomFichier$,item$,texte$
a$=chr$(10) midi_on height 0,0
note_b(1) = 1-1 note_b(2) = 3-1 note_b(3) = 5-1 note_b(4) = 6-1 note_b(5) = 8-1 note_b(6) = 10-1 note_b(7) = 12-1
nom_note$(1) = "DO" nom_note$(2) = "DO#" nom_note$(3) = "RÉ" nom_note$(4) = "MIb" nom_note$(5) = "MI" nom_note$(6) = "FA" nom_note$(7) = "FA#" nom_note$(8) = "SOL" nom_note$(9) = "LAb" nom_note$(10)= "LA" nom_note$(11)= "SIb" nom_note$(12)= "SI"
note_n(1) = 2-1 note_n(2) = 4-1 note_n(3) = 7-1 note_n(4) = 9-1 note_n(5) = 11-1
pos_n(1) = 1 pos_n(2) = 2 pos_n(3) = 4 pos_n(4) = 5 pos_n(5) = 6
caption 0,"Piano Virtuel - Aucun fichier" width 0,998 height 0,291+height(0) color 0,255,255,255
picture 1 left 1,4 top 1,5 width 1,981 height 1,132 color 1,0,0,0
alpha 2 top 2,140 left 2,15 caption 2,"Liste de(s) note(s) jouée(s) : Note : Volume : Instrument :"
list 3 left 3,5 top 3,160 width 3,200 height 3,100 on_click 3,click
spin 4 left 4,220 top 4,160 position 4,4 width 4,60 min 4,0:max 4,11 on_change 4,note
alpha 5 left 5,285 top 5,165 caption 5,"Noire" font_bold 5
picture 6 left 6,225 top 6,185 width 6,28 height 6,57 file_load 6,"n.bmp"
button 7 left 7,5 top 7,265 height 7,21 caption 7,"Effacer" on_click 7,new
button 8 left 8,85 top 8,265 height 8,21 width 8,120 caption 8,"Jouer la musique" on_click 8,jouer inactive 8
button 9 left 9,210 top 9,265 height 9,21 width 9,100 caption 9,"Supprimer la ligne" on_click 9,suppr inactive 9
button 10 left 10,width(0)-88 top 10,265 height 10,21 caption 10,"À propos de..." on_click 10,about
button 14 left 14,width(0)-168 top 14,265 height 14,21 caption 14,"Enregistrer..." on_click 14,save
button 15 left 15,width(0)-248 top 15,265 height 15,21 caption 15,"Ouvrir..." on_click 15,open
track_bar 11 top 11,155 left 11,400 width 11,145 height 11,23 min 11,1:max 11,100 position 11,100 on_change 11,volume midi_volume 127
alpha 12 left 12,545 top 12,160 caption 12,"100"
alpha 13 left 13,260 top 13,190 caption 13,"1000 millisecondes"+a$+"1 temps"
combo 18 left 18,700 width 18,250 top 18,155 text 18,"1 Piano Acoustique de concert" item_add 18,"Piano Acoustique de concert" item_add 18,"Piano Acoustique 2" item_add 18,"Grand Piano Électrique" item_add 18,"Piano Honky-tonk" item_add 18,"Piano électrique 1" item_add 18,"Piano électrique 2" item_add 18,"Clavecin" item_add 18,"Clavicorde" item_add 18,"Célesta" item_add 18,"Carillon" item_add 18,"Boîte à musique" item_add 18,"Vibraphone" item_add 18,"Marimba" item_add 18,"Xylophone" item_add 18,"Cloches tubulaires" item_add 18,"Tympanon" item_add 18,"Orgue à tubes" item_add 18,"Orgue percussif" item_add 18,"Orgue rock" item_add 18,"Orgue d'Église" item_add 18,"Orgue vibrato" item_add 18,"Accordéon" item_add 18,"Harmonica" item_add 18,"Accordéon tango" item_add 18,"Guitare acoustique nylon" item_add 18,"Guitare acoustique acier" item_add 18,"Guitare électrique jazz" item_add 18,"Guitare électrique pure" item_add 18,"Guitare électrique sourdine" item_add 18,"Guitare électrique saturée" item_add 18,"Guitare électrique avec distorsion" item_add 18,"Guitare électrique - harmoniques" item_add 18,"Basse acoustique" item_add 18,"Basse électrique 1" item_add 18,"Basse électrique 2" item_add 18,"Basse électrique 3" item_add 18,"Bass slap 1" item_add 18,"Bass slap 2" item_add 18,"Basse synthétiseur 1" item_add 18,"Basse synthétiseur 2" item_add 18,"Violon" item_add 18,"Violon alto (viola)" item_add 18,"Violoncelle" item_add 18,"Contrebasse" item_add 18,"Cordes (trémolo)" item_add 18,"Cordes (pizzicato)" item_add 18,"Harpe" item_add 18,"Timbales" item_add 18,"Quatuor à cordes 1" item_add 18,"Quatuor à cordes 2" item_add 18,"Cordes synthétiques 1" item_add 18,"Cordes synthétiques 2" item_add 18,"Choeurs Aahs" item_add 18,"Choeurs Oohs" item_add 18,"Voix synthétique" item_add 18,"Accord d'orchestre" item_add 18,"Trompette" item_add 18,"Trombone" item_add 18,"Tuba" item_add 18,"Trompette bouchée" item_add 18,"Cors" item_add 18,"Ensemble de cuivres" item_add 18,"Cuivres synthétiques 1" item_add 18,"Cuivres synthétiques 2" item_add 18,"Saxophone soprano" item_add 18,"Saxophone alto" item_add 18,"Saxophone ténor" item_add 18,"Saxophone baryton" item_add 18,"Hautbois" item_add 18,"Cor anglais" item_add 18,"Basson" item_add 18,"Clarinette" item_add 18,"Piccolo" item_add 18,"Flûte" item_add 18,"Flûte à bec" item_add 18,"Flûte de Pan" item_add 18,"Bouteille sifflée" item_add 18,"Shakuhachi" item_add 18,"Sifflet" item_add 18,"Ocarina" item_add 18,"Onde carrée" item_add 18,"Onde dent de scie" item_add 18,"Orgue à vapeur" item_add 18,"Chiff" item_add 18,"Charang" item_add 18,"Voix" item_add 18,"Quinte" item_add 18,"Solo et basse" item_add 18,"New âge" item_add 18,"Chaude" item_add 18,"Synthétiseur polyphonique" item_add 18,"Choeurs" item_add 18,"Archet" item_add 18,"Métallique" item_add 18,"Halo" item_add 18,"Balayage" item_add 18,"Pluie de glace" item_add 18,"Bande sonore" item_add 18,"Cristal" item_add 18,"Atmosphère" item_add 18,"Brillance" item_add 18,"Goblins" item_add 18,"Échos" item_add 18,"Science-fiction" item_add 18,"Sitar" item_add 18,"Banjo" item_add 18,"Shamisen" item_add 18,"Koto" item_add 18,"Kalimba" item_add 18,"Cornemuse" item_add 18,"Violon" item_add 18,"Shanai" item_add 18,"Sonnerie" item_add 18,"Agogo" item_add 18,"Percussion en acier" item_add 18,"Woodblock" item_add 18,"Taiko drum" item_add 18,"Tom Mélodique" item_add 18,"Percussion synthétique" item_add 18,"Cymbale inversée" item_add 18,"Frette de guitare" item_add 18,"Respiration" item_add 18,"Vague" item_add 18,"Chants d'oiseaux" item_add 18,"Sonnerie de téléphone" item_add 18,"Hélicoptère" item_add 18,"Applaudissements" item_add 18,"Coup de feu" on_click 18,instrument
for i=1 to 7 x0=5+140*(i-1) for j=1 to 7 x1=x0+20*(j-1) num=44+12*(i-1)+note_b(j) picture num:top num,6:width num,19:left num,x1:height num,130 on_click num,touche next j next i
for i=1 to 7 x0=18+140*(i-1) for j=1 to 5 x1=x0+20*(pos_n(j)-1) num=44+12*(i-1)+note_n(j) picture num:top num,5:width num,13:left num,x1:height num,90 on_click num,touche color num,0,0,0 next j next i
' ______________________________________________________________________________
dlist 200 dlist 201 dlist 202
dlist 17
end
touche: for k=44 to 127 if clicked(k)=1 gamme=int((k-20-24)/12+1) note=(k-20-23)-12*(gamme-1) item_add 3,"Gamme "+str$(gamme)+", "+nom_note$(note)+", "+str$(position(4))+", Vol.: "+str$(position(11)) midi_play k-20,position(4) item_add 200,k-20:item_add 201,position(4):item_add 202,position(11) end_if next k active 8 return
note: if position(4)<>4 then font_bold_off 5 if position(4)=0 then caption 5,"Ronde":file_load 6,"r.bmp":caption 13,"4000 millisecondes"+a$+"4 temps" if position(4)=1 then caption 5,"Ronde pointée":file_load 6,"rp.bmp":caption 13,"6000 millisecondes"+a$+"6 temps" if position(4)=2 then caption 5,"Blanche":file_load 6,"b.bmp":caption 13,"2000 millisecondes"+a$+"2 temps" if position(4)=3 then caption 5,"Blanche pointée":file_load 6,"bp.bmp":caption 13,"3000 millisecondes"+a$+"3 temps" if position(4)=4 then caption 5,"Noire":font_bold 5:file_load 6,"n.bmp":caption 13,"1000 millisecondes"+a$+"1 temps" if position(4)=5 then caption 5,"Noire pointée":file_load 6,"np.bmp":caption 13,"1500 millisecondes"+a$+"1 ½ temps" if position(4)=6 then caption 5,"Croche":file_load 6,"c.bmp":caption 13,"500 millisecondes"+a$+"½ temps" if position(4)=7 then caption 5,"Croche pointée":file_load 6,"cp.bmp":caption 13,"750 millisecondes"+a$+"¾ temps" if position(4)=8 then caption 5,"Double croche":file_load 6,"dc.bmp":caption 13,"250 millisecondes"+a$+"¼ temps" if position(4)=9 then caption 5,"Double croche pointée":file_load 6,"dcp.bmp":caption 13,"375 millisecondes"+a$+"0.375 temps" if position(4)=10 then caption 5,"Triple croche":file_load 6,"tc.bmp":caption 13,"125 millisecondes"+a$+"0.125 temps" if position(4)=11 then caption 5,"Triple croche pointée":file_load 6,"tcp.bmp":caption 13,"188 millisecondes"+a$+"0.188 temps" return
new: clear 3 font_bold 5:caption 5,"Noire":position 4,4:file_load 6,"n.bmp" inactive 9:inactive 8 for i=200 to 202 clear i next i return
jouer: inactive 3:inactive 8:inactive 9:inactive 7:inactive 10:inactive 2 for i=1 to count(3) midi_volume int(1.27*val(item_read$(202,i))) position 11,val(item_read$(202,i)):caption 12,item_read$(202,i) if val(item_read$(201,i))=0 then position 4,0:caption 5,"Ronde":file_load 6,"r.bmp":caption 13,"4000 millisecondes"+a$+"4 temps" if val(item_read$(201,i))=1 then position 4,1:caption 5,"Ronde pointée":file_load 6,"rp.bmp":caption 13,"6000 millisecondes"+a$+"6 temps" if val(item_read$(201,i))=2 then position 4,2:caption 5,"Blanche":file_load 6,"b.bmp":caption 13,"2000 millisecondes"+a$+"2 temps" if val(item_read$(201,i))=3 then position 4,3:caption 5,"Blanche pointée":file_load 6,"bp.bmp":caption 13,"3000 millisecondes"+a$+"3 temps" if val(item_read$(201,i))=4 then position 4,4:caption 5,"Noire":font_bold 5:file_load 6,"n.bmp":caption 13,"1000 millisecondes"+a$+"1 temps" if val(item_read$(201,i))=5 then position 4,5:caption 5,"Noire pointée":file_load 6,"np.bmp":caption 13,"1500 millisecondes"+a$+"1 ½ temps" if val(item_read$(201,i))=6 then position 4,6:caption 5,"Croche":file_load 6,"c.bmp":caption 13,"500 millisecondes"+a$+"½ temps" if val(item_read$(201,i))=7 then position 4,7:caption 5,"Croche pointée":file_load 6,"cp.bmp":caption 13,"750 millisecondes"+a$+"¾ temps" if val(item_read$(201,i))=8 then position 4,8:caption 5,"Double croche":file_load 6,"dc.bmp":caption 13,"250 millisecondes"+a$+"¼ temps" if val(item_read$(201,i))=9 then position 4,9:caption 5,"Double croche pointée":file_load 6,"dcp.bmp":caption 13,"375 millisecondes"+a$+"0.375 temps" if val(item_read$(201,i))=10 then position 4,10:caption 5,"Triple croche":file_load 6,"tc.bmp":caption 13,"125 millisecondes"+a$+"0.125 temps" if val(item_read$(201,i))=11 then position 4,11:caption 5,"Triple croche pointée":file_load 6,"tcp.bmp":caption 13,"188 millisecondes"+a$+"0.188 temps" midi_play val(item_read$(200,i)),val(item_read$(201,i)) next i active 3:active 8:active 9:active 7:active 10:active 2 caption 5,"Noire":font_bold 5:file_load 6,"n.bmp":position 4,4:position 11,100:caption 12,"100" return
suppr: if item_index(3)<>0 for i=200 to 202 item_delete i,item_index(3) next i item_delete 3,item_index(3) end_if if count(3)=0 then inactive 8:inactive 9 return
about: mess=message_information_ok("À propos de Piano Virtuel..."+a$+a$+"Version : 2.8"+a$+"Auteur : Nicolas Maltais"+a$+"Date de version : 18 janvier 2010 "+a$+"License : Open Source") return
click: active 9 return
volume: caption 12,str$(position(11)) midi_volume int(1.27*position(11)) return
save: if count(3)=0 then beep:return save_dialog 16 filter 16,"Fichier PVF|*.pvf" NomFichier$=file_name$(16) if right$(NomFichier$,4)<>".pvf" then NomFichier$=NomFichier$+".pvf" delete 16 j=len(NomFichier$) NomPath$="" Nom$="" for i=j to 1 step -1 if (mid$(NomFichier$,i,1)="\") NomPath$=mid$(NomFichier$,1,i) if (i<j) then Nom$=mid$(NomFichier$,i+1,j-i) exit_for end_if next i if NomFichier$<>"_" clear 17 for i=1 to count(3) item_add 17,item_read$(200,i)+";"+item_read$(201,i)+";"+item_read$(202,i) next i caption 0,Nom$+"Piano Virtuel - "+Nom$ file_save 17,NomFichier$ end_if return
open: open_dialog 16 filter 16,"Fichier PVF|*.pvf|Fichier TXT et INI|*.ini;*.txt|Tous les fichiers|*.*" NomFichier$=file_name$(16) delete 16 j=len(NomFichier$) NomPath$="" Nom$="" for i=j to 1 step -1 if (mid$(NomFichier$,i,1)="\") NomPath$=mid$(NomFichier$,1,i) if (i<j) then Nom$=mid$(NomFichier$,i+1,j-i) exit_for end_if next i if file_exists(NomFichier$)=1 file_load 17,NomFichier$ if count(17)<>0 for j=1 to count(17) item$=item_read$(17,j) for i=1 to len(item$) if mid$(item$,i,1)=";" then exit_for texte$=texte$+mid$(item$,i,1) next i item_add 200,texte$:texte$="" for i=i+1 to len(item$) if mid$(item$,i,1)=";" then exit_for texte$=texte$+mid$(item$,i,1) next i item_add 201,texte$:texte$="" item_add 202,right$(item$,len(item$)-i):texte$="" gamme=int((val(item_read$(200,j))-24)/12+1) note=(val(item_read$(200,j))-23)-12*(gamme-1) item_add 3,"Gamme "+str$(gamme)+", "+nom_note$(note)+", "+str$(val(item_read$(201,j)))+", Vol.: "+str$(val(item_read$(202,j))) next j gosub jouer else beep end_if caption 0,Nom$+"Piano Virtuel - "+Nom$ end_if return
instrument: midi_instrument item_index(18)-1 return
|
|