Lecture data sound

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Re: Lecture data sound((((

Message par Fortix »

Merci @Dobro :D
En faite j'avais complètement oublié à qui appartient ce super code :lol:
mais grace à toi je sais c'est à qui maintenant :D , je le salut et remercie du coup))))
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Lecture data sound((((

Message par G-Rom »

@Dobro , utilise pastebin pour posté du code aussi long 8O

Exemple , code dispo une semaine :

http://pastebin.com/gccyQw87
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Re: Lecture data sound((((

Message par Fortix »

Salut @Dobro :D

ton code à filé :cry:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Lecture data sound

Message par Backup »

je ne sais plus a quoi il ressemblait ....

voici un Code de Good07 , qui devrait repondre a tes besoins ....
ps: ce code va generer un fichier "WaveData.pb" contenant le lecteur et les Datas du son que tu aura choisi en le lançant ;)

Code : Tout sélectionner

;--------------------------------------------------
;Good07
;Programme pour transformer des fichiers Wav en data
;Le 10/11/04
;Version PureBasic 3.92
;--------------------------------------------------
;
Global out.s
q.s = Chr(34)
FileName$= OpenFileRequester("", "*.wav", ".wav", 0);On choisi le fichier .wav à transformer en data.
If OpenFile(1,FileName$)<>0                         ;Ouverture du fichier
  Longueur= FileSize(FileName$)                     ;On récupère sa longueur
  *tampon=AllocateMemory(Longueur)                  ;On alloue à l'adresse *tanpom un emplacement mémoire de la longueur du fichier
  ReadData(*tampon,Longueur)                        ;On transfère le contenu du fichier dans le tampon
EndIf
CloseFile(1) ; On ferme le fichier en lecture
name$=GetFilePart(filename$) ; on récupère son nom
name$=Left(name$,(Len(name$)-4)); et on enlève l'extention (.wav)
If CreateFile(0,"WaveData.pb") ;On donne un nom au programme et on ouvre un fichier en écriture
  WriteStringN("; Fichier Wave en data"); Les ligne de dessous servent à créer le programme qui va lire les datas
  WriteStringN(" ")
  WriteStringN("InitSound()")
  WriteStringN("Restore "+ name$); On ajoute le nom du fichier pour la restauration des datas (Utile si on a plusieurs sections)
  WriteStringN("Read longueur.l")
  WriteStringN("*tampon=AllocateMemory(longueur)")
  WriteStringN("For n=0 To longueur-1")
  WriteStringN(" Read c.b")
  WriteStringN(" PokeB(*tampon+n,c)")
  WriteStringN("Next n")
  WriteStringN("resultat=CatchSound(1,*tampon)")
  WriteStringN("If resultat=0")   
  WriteStringN(" MessageRequester"+"("+q+"Attention"+q+","+q+"le chargement du son a échoué !"+q+","+"#PB_MessageRequester_Ok"+")")
  WriteStringN("EndIf")
  WriteStringN("PlaySound(1)")
  WriteStringN("Delay(10000)");Permet d'entendre le son avant la fin du programme. A supprimer si vous incorporez ce listing à votre
  WriteStringN(" ")           ;programme
  WriteStringN("DataSection")
  WriteStringN(" ")
  WriteStringN(Name$+":")
  WriteStringN(" ")
  out="Data.l "
  WriteStringN(out+Str(longueur));Première ligne de data contient la longueur du fichier à lire.
  out="Data.b "
  For x=0 To Longueur-1; boucle qui lit le fichier en mémoire et le transforme en data
    c=PeekB(*tampon+x);& $FF
    c$=Str(c)
    out=out+c$
    If z=25
      z=0
      WriteStringN(out)
      out="Data.b "
    ElseIf x<> Longueur-1
      out=out+","
    EndIf
    z=z+1
  Next x
  If z<26
    WriteStringN(out); si la dernière ligne n'est pas complète on écrit ce qui reste
  EndIf
  WriteStringN("EndDataSection")
  CloseFile(0)
EndIf
MessageRequester("Programme","Le programme a été généré"+Chr(10)+"avec succé sous le nom"+Chr(10)+"WaveData.Pb",#PB_MessageRequester_Ok)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Lecture data sound

Message par Ar-S »

Pour info Fortix, dans JaPBe tu fais ALT + X ça te fait apparaitre un inputfilerequester te permettant d'insérer des fichiers en datasection.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Lecture data sound

Message par Backup »

et qu'avec EPB , on tape "$b_include" (binary include)
et un open file requester permet de choisir les fichiers a inclure
la ligne d'inclusion est ecrite a l'endroit de la commande "$b_include"

car contrairement a ce que dit Ar-s ( :lol: ) , l'inclusion de Binaire n'as pas besoin de datasection ... :mrgreen:

par contre avec EPB si tu utilises "$catchsound"

la ça va ecrire la fonction de lecture et remplir la DataSection ou la creer :)

exemple apres avoir taper "$catchsound" dans l'editeur
et avoir choisie plusieurs fichiers Wav

ça ecrit tout seul ceci :

Code : Tout sélectionner



CatchSound(37, ?7)
CatchSound(36, ?6)
CatchSound(35, ?5)
CatchSound(34, ?4)
CatchSound(33, ?3)
CatchSound(32, ?2)
CatchSound(31, ?1)
CatchSound(30, ?0)



DataSection
	7: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\7.wav"
	6: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\6.wav"
	5: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\5.wav"
	4: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\4.wav"
	3: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\3.wav"
	2: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\2.wav"
	1: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\1.wav"
	0: IncludeBinary "E:\Dobro\PureBasic\dobro\Dobro_creation\DTMF\0.wav"
EndDataSection; EPB

car contrairement a ce que dit Ar-s ( :lol: ) , l'inclusion de Binaire n'as pas besoin de datasection ... :mrgreen:
quoique .... finalement , je me demande :mrgreen:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Lecture data sound

Message par Ar-S »

Dobro a écrit :
car contrairement a ce que dit Ar-s ( :lol: ) , l'inclusion de Binaire n'as pas besoin de datasection ... :mrgreen:
quoique .... finalement , je me demande :mrgreen:
8)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Re: Lecture data sound

Message par Fortix »

:lol:
effectivement j'avoue être tenté par l'une de vos bécanes
car finalement je suis un gros consommateur de datasection
ça c'est encore mon côté minimaliste qui me joue des tours :lol:

bon ok les gars :D

lequel est payant et lequel est gratuit? :lol:
parce que pour ma part j'ai déjà payé PB!!! :wink:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Lecture data sound

Message par Backup »

les 2 sont gratuits ...

utilise JAPBE dispo chez Gnozal
http://gnozal.ucoz.com/

EPB ; c'est mon éditeur.. est tres bien, mais plus artisanal .. c'est moi qui le fait ...
mais a quelques petites lacunes ....

bug au niveau Recherche.... encore a corriger
mise en page (Tabulation auto) un peu longue sur de gros listing ...

mais .. comme c'est le miens, ben je l'aime bien
je code toujours dessus :)
Dernière modification par Backup le lun. 03/juin/2013 22:42, modifié 1 fois.
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Re: Lecture data sound

Message par Fortix »

tu as fait ton propre éditeur, là franchement ya rien à dire
trop fort :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Lecture data sound

Message par Backup »

si tu veux tester c'est ici :

http://michel.dobro.free.fr/download.php?view.25

la première chose a faire c'est définir les chemins des compilateurs en utilisant F8 ou bien le menu "Projet" / "option du projet"
(EPB peut compiler en x86 ET/OU en 64 bits )



bon test :)

ps : la tabulation avec Ctrl+Tab (sans selectionner )
Dernière modification par Backup le lun. 03/juin/2013 22:43, modifié 3 fois.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Lecture data sound

Message par Ar-S »

Pour le code, je suis n'utilise plus japbe (sauf pour la création des datas), j'avoue que je n'ai pas retâté epb depuis un moment.
Faut que je le re-récupe.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Lecture data sound

Message par Backup »

Avec Epb , les includes se font avec les commandes commençant par "$" voir l'aide de EPB

pour la génération de Data , j'utilise un Outils Externe Img2data (prg fait par moi-meme :mrgreen: )

ps: les outils externe qu'on désire avoir, a portée de mains; se placent dans le dossier "Outils"

et sont directement accessibles par EPB dans le Menu Outils ....


ps : j'ai par erreur inclue l'outil PureForm dans l'archive ... je le retire tout de suite.. Gnozal va raler :lol:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Lecture data sound

Message par Ar-S »

Img2data c'est bien,
File2data serait préférable :)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Lecture data sound

Message par Backup »

disons, que en dehors d'une image ,

transformer un fichier, un son, un exécutable
en Data , n'est pas avantageux , car ça prends trop de place
ça alourdit les Listings pour rien , puisqu'on peut inclure ces choses avec les fonctions d'includes ... :)

quoiqu'il en soit , faire un outils pour EPB est enfantin
il suffit de compiler son utilitaire , et de le mettre dans le dossier OUTILS
pour qu'il soit disponible dans l’éditeur Via le menu Outils ;)

pour ensuite interagir avec EPB , et ses Onglets , il suffit de regarder comment est conçut le listing
"envoie_message_EPB.pb"
qui montre comment on peut creer un onglet dans epb avec un prg externe
ou bien inserer une ligne etc .... comuniquer avec Epb :)

Code : Tout sélectionner


; ************ OBLIGATOIRE *****************************************
;- structure memoire partagé
Structure Partage
	declencheur.b
	valeur1.i
	message.s {500}
EndStructure
Global *ram.Partage 

MemoirePartagee=CreatefileMapping_($FFFFFFFF,#Null, #PAGE_READWRITE, 0, SizeOf(Partage),"EPB_RAM")
*ram=MapViewOfFile_(MemoirePartagee, #FILE_MAP_WRITE, 0, 0, 0)
Declare envoie_epb(text.s,type)

Procedure envoie_epb(text.s,type)
	*ram\declencheur.b=1
	*ram\valeur1.i=type
	*ram\message.s=text.s
EndProcedure
;*****************************************************************************




; cette procedure vous permettra d'envoyer des commandes a EPB
; utile si vous développez un utilitaire, qui aurai besoin de poser un résultat dans EPB
; utilisation : envoie_epb("message",ORDRE) 

; ****************** exemple d'utilisation **************************************
;envoie_epb("un Petit Message",0)  ; ORDRE 0,  pose au curseur
; ; *******************************************************************
;envoie_epb("Remplace",1)  ;  ORDRE 1 , Remplace la ligne en cours (par rapport au curseur)
; ; *******************************************************************
;envoie_epb("un Petit Message",2) ; ORDRE 2 ,insert une ligne (par rapport au curseur)
; ; *******************************************************************
;Debug GetCurrentDirectory()
;envoie_epb("20",3) ; ORDRE 3 ,saute a la ligne 20
; ; *******************************************************************
;envoie_epb("10",4) ; ORDRE 4 ,positionne le curseur apres le 10eme caratere
; ; *******************************************************************
;envoie_epb("5,10",5) ; ORDRE 5 ,selectione  apres le 5em caractere sur une longueur de 10 caractere de la ligne en cours
;  *******************************************************************
; exemple de selection et remplacement :
; envoie_epb("5,10",5) ; selectione  apres le 5em caractere sur une longueur de 10 caractere de la ligne en cours

; envoie_epb("message qui remplace",6) ; ORDRE 6  et remplace par le message
; ; *******************************************************************
; exemple de recuperation de la ligne en cours par le clipboard()

; envoie_epb(" ",7) ; ORDRE 7,  Recupere la ligne en cours,( celle ou se trouve le curseur !! ) retour par le clipboard

; Delay(200)
; Debug GetClipboardText()
; ; *******************************************************************
; exemple de creation d'un onglet et du chargement d'un code dedans :

; file$=OpenFileRequester("load pb",Home$,"*.pb",0)
; envoie_epb(file$ ,8) ; ORDRE 8, creer un onglet, et charger un fichier *.pb
; ; *******************************************************************
; exemple de recuperation du code complet de l'onglet précisé , dans le clipboard()
;  envoie_epb("3",9) ; ORDRE 9 , Recupere le code complet de l'onglet précisé (ici l'onglet 3), retour par le clipboard
; *************************************************************************
; exemple d'activation des onglets , rien de plus
; envoie_epb("0",10) ; ORDRE 10 ,Active l'onglet précisé (ici l'onglet 1 ... les onglets commencent a  0), rien de plus...
;Delay(1000)
;envoie_epb("1",10) ; Active l'onglet précisé (ici l'onglet 2 ... les onglets commencent a  0), rien de plus...
; Delay(1000)
; envoie_epb("2",10) ; Active l'onglet précisé (ici l'onglet 3 ... les onglets commencent a  0), rien de plus...
; **************************************************************************


; EPB
Dernière modification par Backup le mar. 04/juin/2013 12:02, modifié 1 fois.
Répondre