FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Mah-Jong européen new-look
par jjn4 Aujourd'hui à 15:48

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par pascal10000 Aujourd'hui à 13:46

» a l'aide klaus
par Minibug Aujourd'hui à 11:42

» KGF_dll - nouvelles versions
par Minibug Aujourd'hui à 1:48

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Aujourd'hui à 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» API Windows
par Klaus Jeu 7 Déc 2017 - 21:03

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

» j'ai un petit problème
par JL35 Mer 6 Déc 2017 - 21:58

» source vumetre avec delphi
par Klaus Mar 5 Déc 2017 - 23:22

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 problèmes entre file_load et sound!

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
bignono

avatar

Nombre de messages : 1104
Age : 60
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: problèmes entre file_load et sound!   Sam 9 Mai 2015 - 11:18

Bonjour à tous!
J'ai des soucis avec sound, et je ne sais pas ce qui se passe. Peut-être que quelqu'un peut m'éclairer!
Je peux charger dans 2 picture une même image, mais je ne peux pas charger un même son dans 2 sound:
voici des exemples:
Code:
picture 1
picture 2:left 2,200
file_load 1,"c:\mesprog\bouton.jpg"
file_load 2,"c:\mesprog\bouton.jpg"
" />
Là on voit la même image dans les 2 pictures.
Maintenant essayez avec soit un fichier wav soit un fichier mp3 comme ceci:
Code:
sound 1
sound 2
file_load 1,"C:\mesprog\Zynth\Inst\Antistatic\C1.wav"
file_load 2,"C:\mesprog\Zynth\Inst\Antistatic\C1.wav"
ou
Code:
sound 1
sound 2
file_load 1,"C:\mesprog\C1.mp3"
file_load 2,"C:\mesprog\C1.mp3"
Là, on obtient l'erreur " (99) Impossible to load the FILE. Line: 4."
Je n-y comprend rien. D'autre part, je suis en train de mettre au point un petit programme de musique où j'essaye de faire jouer plusieurs sound simultanément et je tombe régulièrement sur la même erreur. Je vous met pour essai sur mon web dav le dossier zynth.zip avec une première ébauche de mon programme. Il devrait pouvoir jouer jusqu'à 8 sound en même temps.
Sur l'image ci-dessous, on sélectionne colonne 1 trois sound, ici un sol mineur, puis 13ème colonne, un fa tout seul, puis on appuie sur le bouton start. Le programme joue bien le sol mineur avec les trois sound en même temps, mais quand il arrive sur le fa, qui n'est pourtant pas le même fichier,  on a l'erreur  " (99) Impossible to load the FILE. Line: 4."

" />
Voilà, si quelqu'un comprend pourquoi, j'en serais très heureux. A moins que ce ne soit encore un bug de panoramic!
A+ Wink Wink Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: problèmes entre file_load et sound!   Sam 9 Mai 2015 - 17:04

Bonjour Bignono

Euh.. juste une idée en passant et sans savoir...
Une image on la lit point barre.
tandis qu'un son, la lecture est par définition évolutive, donc tributaire d'un pointeur ou assimilé.
Peut être que le fichier son est allergique à ça... ? A moins que ce ne soit Panoramic...

Edit

Allergique à plusieurs pointeurs simultanés
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: problèmes entre file_load et sound!   Sam 9 Mai 2015 - 18:52

Salut bignono
Je viens de faire quelques tests avec SOUND et FILE_LOAD.
Code:
sound 1
sound 2
file_load 1,"C:\mesprog\Zynth\Inst\Antistatic\C1.wav"
file_load 2,"C:\mesprog\Zynth\Inst\Antistatic\C1.wav"

Il s’est avéré que pour le 2ème SOUND le fichier chargé par le 1er SOUND est en cours d’utilisation et on ne peut plus le réutiliser pour un autre SOUND tant qu’il est ouvert dans SOUND 1 : je crois que c’est un bug.
Pour contourner cet obstacle :
• Charger le 1er fichier dans SOUND 1
• Copier (dupliquer) ce même fichier sous un autre nom
• Charger ce nouveau fichier dans SOUND 2
• A la fin du traitement , supprimer la copie du fichier


Si ce n’est pas clair, voici le code qui marchera j’espère !

Code:
sound 1
sound 2
file_load 1,"C:\mesprog\Zynth\Inst\Antistatic\C1.wav"
' copier ce fichier sous un autre nom
file_copy "C:\mesprog\Zynth\Inst\Antistatic\C1.wav","C:\mesprog\Zynth\Inst\Antistatic\C1_copy.wav"
' charger dans SOUND 2 la copie du fichier
file_load 2, "C:\mesprog\Zynth\Inst\Antistatic\C1_copy.wav"
' traitements
' ...
delete 2  : ' Détruire l'objet pour libérer le fichier ouvert
' Détruire la copie
file_delete "C:\mesprog\Zynth\Inst\Antistatic\C1_copy.wav"
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

Nombre de messages : 5613
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: problèmes entre file_load et sound!   Sam 9 Mai 2015 - 20:28

J’ai téléchargé le ZIP et après essai, j’ai modifié le code.
Fais un test pour voir s’il fonctionne comme il faut.

Les  ajouts sont dans les lignes suivantes :
Ligne 3,
Lignes 27 à 35
Ligne 48

Code:
dim rep$:rep$="C:\mesprog\Zynth\":dir_change rep$
dim i,j,k,p,q,x,y,f$,inst$,nt$,not$(8)
dim copie$ : ' ======================================================== Papydall
label ecrit,change,joue,pattern,song,playing
clavier():listesynth()
sound 10:for i=11 to 18:sound i:not$(i-10)="":next i
timer 100:timer_off 100:timer_interval 100,125:on_timer 100,playing
end

song:
return

playing:
   timer_off 100
'   message q
   j=j+21:k=k+1:if k=66 then k=2:j=56
   left 4,j
   for i=2 to 41
      nt$=dir_current$+"\"+inst$+"\"
      if grid_read$(3,i,k)<>""
         p=92-i
         note():' file_load 10,nt$:play 10
         if q<9
            not$(q)=nt$
'            message nt$:message not$(q)+"  -  "+not$(1)
'            delete q+10:sound q+10
' ===================================================================== Papydall
' On duplique le fichier en le recopiant sous le nom xxx...xxx_copy.wav
            copie$ = mid$(nt$,1,len(nt$)-4) + "_copy"+ right$(nt$,4)
            if file_exists(copie$) = 0
               file_copy nt$,copie$
            end_if
' On charge la copie
            file_load q+10,copie$ : q = q + 1
' ================================================================= FIN Papydall
         end_if
      end_if
   next i
   if not$(8)<>"" then play 18:not$(8)="":q=q-1
   if not$(7)<>"" then play 17:not$(7)="":q=q-1
   if not$(6)<>"" then play 16:not$(6)="":q=q-1
   if not$(5)<>"" then play 15:not$(5)="":q=q-1
   if not$(4)<>"" then play 14:not$(4)="":q=q-1
   if not$(3)<>"" then play 13:not$(3)="":q=q-1
   if not$(2)<>"" then play 12:not$(2)="":q=q-1
   if not$(1)<>"" then play 11:not$(1)="":q=q-1
' On détruit la copie : =============================================== Papydall
   if file_exists(copie$) > 0 then file_delete copie$ : ' ============= Papydall
   timer_on 100
return

pattern:
   if caption$(6)="START"
      j=35:k=1:q=1:show 4:caption 6,"STOP":timer_on 100
   else
      hide 4:caption 6,"START":timer_off 100
   end_if
return

joue:
   p=number_click:nt$=dir_current$+"\"+inst$+"\"
   if p=3 then p=92-y
   note()
   file_load 10,nt$:play 10
return

change:
   inst$=item_read$(9,item_index(9))
   caption 1,"          "+str$(item_index(9))+" - "+inst$
return

ecrit:
   caption 0,"ligne = " + str$(grid_y_to_row(3,mouse_y_position(3)))+" colonne = " + str$(grid_x_to_column(3,mouse_x_position(3)))
   x=grid_x_to_column(3,mouse_x_position(3)):y=grid_y_to_row(3,mouse_y_position(3))
   if grid_read$(3,y,x)=""
      grid_write 3,y,x,chr$(219)+chr$(219):gosub joue
   else
      grid_write 3,y,x,""
   end_if
return

sub note()
   select p
      case 51:nt$=nt$+"A0.wav"
      case 52:nt$=nt$+"Bb0.wav"
      case 53:nt$=nt$+"B0.wav"
      case 54:nt$=nt$+"C1.wav"
      case 55:nt$=nt$+"Db1.wav"
      case 56:nt$=nt$+"D1.wav"
      case 57:nt$=nt$+"Eb1.wav"
      case 58:nt$=nt$+"E1.wav"
      case 59:nt$=nt$+"F1.wav"
      case 60:nt$=nt$+"Gb1.wav"
      case 61:nt$=nt$+"G1.wav"
      case 62:nt$=nt$+"Ab1.wav"
      case 63:nt$=nt$+"A1.wav"
      case 64:nt$=nt$+"Bb1.wav"
      case 65:nt$=nt$+"B1.wav"
      case 66:nt$=nt$+"C2.wav"
      case 67:nt$=nt$+"Db2.wav"
      case 68:nt$=nt$+"D2.wav"
      case 69:nt$=nt$+"Eb2.wav"
      case 70:nt$=nt$+"E2.wav"
      case 71:nt$=nt$+"F2.wav"
      case 72:nt$=nt$+"Gb2.wav"
      case 73:nt$=nt$+"G2.wav"
      case 74:nt$=nt$+"Ab2.wav"
      case 75:nt$=nt$+"A2.wav"
      case 76:nt$=nt$+"Bb2.wav"
      case 77:nt$=nt$+"B2.wav"
      case 78:nt$=nt$+"C3.wav"
      case 79:nt$=nt$+"Db3.wav"
      case 80:nt$=nt$+"D3.wav"
      case 81:nt$=nt$+"Eb3.wav"
      case 82:nt$=nt$+"E3.wav"
      case 83:nt$=nt$+"F3.wav"
      case 84:nt$=nt$+"Gb3.wav"
      case 85:nt$=nt$+"G3.wav"
      case 86:nt$=nt$+"Ab3.wav"
      case 87:nt$=nt$+"A3.wav"
      case 88:nt$=nt$+"Bb3.wav"
      case 89:nt$=nt$+"B3.wav"
      case 90:nt$=nt$+"C4.wav"
   end_select
end_sub

sub clavier()
   form 1:border_small 1:width 1,screen_x-180:height 1,height(0)+80
   height 0,300:top 0,height(1):color 0,50,65,100
   command_target_is 1
   picture 2:full_space 2:color 2,70,80,85
   ' Le clavier de 3 octaves 1/4 ==> ****** [ objets PICTURE de 51 à 90 ] ******
   ' touches blanches
   j=500
   for k=0 to 3:for i=1 to 12
      if i<>2 and i<>5 and i<>7 and i<>10 and i<>12 and j>20
         p=50+i+k*12
         if p=56 or p=61 or p=63 or p=68 or p=73 or p=75 or p=80 or p=85 or p=87
            j=j-6:picture p:color p,255,255,255:width p,48:height p,23:top p,j:j=j-18
         else
            picture p:color p,255,255,255:width p,48:height p,17:top p,j:j=j-18
         end_if
         on_click p,joue:' sound p+50
      end_if
   next i:next k
   ' touches noires
   j=500
   for k=0 to 3:for i=1 to 12
      if i<>2 and i<>5 and i<>7 and i<>10 and i<>12 and j>20
         p=50+i+k*12
         if p=56 or p=61 or p=63 or p=68 or p=73 or p=75 or p=80 or p=85 or p=87
            j=j-24
         else
            j=j-18
         end_if
      else
         if i=2 or i=5 or i=7 or i=10 or i=12 and j>48
            p=50+i+k*12:picture p:color p,10,10,20:width p,40:height p,12:top p,j+12
            on_click p,joue:' sound p+50
         end_if
      end_if
   next i:next k
   ' la grille
   grid 3:left 3,49:top 3,30:height 3,490:width 3,1348
   grid_row 3,41:grid_row_height 3,11:grid_one_row_height 3,1,0.01:grid_one_row_height 3,2,17
   grid_column 3,65:grid_column_width 3,20:grid_one_column_width 3,1,0.01
   font_name 3,"Terminal":font_size 3,12:font_color 3,255,120,255
   on_click 3,ecrit
   print_target_is 2:font_name 2,"Lucida Console":font_bold 2:2d_target_is 2
   for i=1 to 64:print_locate i*21+34,20:print i:next i
   for i=1 to 64:2d_circle i*21+40,12,5:2d_flood i*21+40,12,0,130,0:next i
   2d_flood 61,12,200,0,0
   picture 4:width 4,10:height 4,10:top 4,7
   image 5:2d_image_copy 5,56,7,66,17:2d_target_is 4:2d_image_paste 5,0,0:hide 4
   2d_target_is 2:2d_flood 61,12,0,130,0
   button 6:width 6,50:top 6,3:caption 6,"START":on_click 6,pattern
end_sub

sub listesynth()
   ' la liste des instruments
   form 8:border_small 8:left 8,width(1):width 8,screen_x-width(1):height 8,height(1)
   command_target_is 8
   list 9:full_space 9:color 9,128,255,255
   dir_change "C:\mesprog\Zynth\Inst\"
   f$=file_find_first$
   repeat
      if f$<>"." and f$<>".." then item_add 9,f$
      f$=file_find_next$
   until f$="_"
   file_find_close
   inst$="Antistatic"
   on_click 9,change
end_sub

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
bignono

avatar

Nombre de messages : 1104
Age : 60
Localisation : Val de Marne
Date d'inscription : 13/11/2011

MessageSujet: Re: problèmes entre file_load et sound!   Dim 10 Mai 2015 - 11:17

Bonjour Papydall Smile
Oui, effectivement cela fonctionne en faisant une copie du fichier. Mais le fichier copie$ n'est jamais supprimé dans le répertoire! Mais je viens juste de comprendre pourquoi. Donc je vais creuser pour essayer de résoudre mon problème. Mais effectivement, je pense qu'il y a un bug avec sound car je ne vois pas pourquoi un même fichier ne peut être utilisé par plusieurs sound! A moins que ce ne soit voulu par Jack, auquel cas je ne pourrais pas pousser mon programme plus loin.
Merci de ton aide Papydall, et A + Wink Wink Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: problèmes entre file_load et sound!   Dim 10 Mai 2015 - 11:30

C'est clair, c'est assurément un bug dans la gestion du fichier (qui devrait être libéré après chargement)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: problèmes entre file_load et sound!   Dim 10 Mai 2015 - 13:39

Bonjour,

Personnellement j'ai un problème sur mon ordi: si un fichié est sélectionné par la souris sans qu'il soit cliqué, Panoramic ne peut sauvegardé. Est-ce que le faite de faire une copie, fait qu'il n'y a pas de sélection, et que ça fonctionne?
Revenir en haut Aller en bas
Klaus

avatar

Nombre de messages : 10243
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: problèmes entre file_load et sound!   Dim 10 Mai 2015 - 14:06

Je pense (et c'est à confirmer par Jack) que Panoramic joue un fichier son par l'API "sndPlaySound", ou par la fonction Delphi du même nom qui ne fait rien d'autre que d'appeler cet API.

Or, cette fonction est appelée avec certaines options, dont une est SND_ASYNC qui permet de lancer le son et de le jouer, alors que le programme continue. C'est le mode "asynchrone". On arrête le son en spécifiant un nouveau ou en passant un 0 ou un pointeur nul comme nom de son (chaîne de caractères vide).

Ceci implique que le fichier doit rester ouvert par Windows (et pas par Panoramic !) pour que le son puisse être joué, et ce jusqu'à ce qu'on ferme le son. Ceci explique le blocage sur le fichier. Il ne s'agit pas d'un bug Panoramic, mais du fonctionnement normal de Windows.

Solution: seule la duplication est techniquement possible, puisque dans ce cas, chaque son joué sera dans on propre fichier. Ou alors, attaquer par les APIs par l'interface DLL...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: problèmes entre file_load et sound!   

Revenir en haut Aller en bas
 
problèmes entre file_load et sound!
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» FTP très lent (deconnexions à répétition)
» Problème entre mon portable Bouygues et ma Bbox !
» probléme entre RTCC et l'ecos
» Problème lecture SD
» Problème de compatibilité avec téléviseur Samsung

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: