Fmodex et Effets Graphiques
Fmodex et Effets Graphiques
Yop,
Je rebosse sur un petit lecteur radio utilisant fmod. Si je n'ai pas de soucis pour lire mes stations, j'aimerai maintenant faire un petit visualisateur graphique suivant les bmp ou autre fréquences afin de donner un peu de vie à mon lecteur. (En fait une simple barre de chargement min 0 max 100 qui oscillerait.)
il me semble que Dobro avait fait un truc du genre mais je ne le trouve pas. Si quelqu'un à les commandes à utiliser. l'aide de Fmod est trop velue.
il y a probablement à utiliser FMOD_Channel_GetSpectrum mais je ne vois pas trop comment.
Merci
Je rebosse sur un petit lecteur radio utilisant fmod. Si je n'ai pas de soucis pour lire mes stations, j'aimerai maintenant faire un petit visualisateur graphique suivant les bmp ou autre fréquences afin de donner un peu de vie à mon lecteur. (En fait une simple barre de chargement min 0 max 100 qui oscillerait.)
il me semble que Dobro avait fait un truc du genre mais je ne le trouve pas. Si quelqu'un à les commandes à utiliser. l'aide de Fmod est trop velue.
il y a probablement à utiliser FMOD_Channel_GetSpectrum mais je ne vois pas trop comment.
Merci
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: Fmodex et Effets Graphiques
je te repond demain 

Re: Fmodex et Effets Graphiques






~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: Fmodex et Effets Graphiques
tout d'abords , il n'est pas possible de faire un Spectrum
sur les Streamings avec Fmodex !!
ça ne marche que pour la lecture des MP3 ....
ça t’intéresse toujours ?
sur les Streamings avec Fmodex !!
ça ne marche que pour la lecture des MP3 ....
ça t’intéresse toujours ?
Re: Fmodex et Effets Graphiques
bon voila pour la lecture des mp3
tu lances, ça te demande de charger un mp3 (choisi un mp3 qui envoie d'entré... )
lance ce code en mode debugger ON , car je n'ai pas prevu de sorti de code (c'est un exemple
)
le principe tu creer 512 Sprites
et c'est FModex qui te renvoi le niveau de chacun d'eux ...
lis j'ai mis des commentaire ...
ça marche grace au buffer son , n'ayant jamais reussi a lui faire lire le buffer son du Streaming live a l'epoque
j'ai laissé tombé .....
mais pour les Mp3 ça marche nickel
le code :
tu lances, ça te demande de charger un mp3 (choisi un mp3 qui envoie d'entré... )
lance ce code en mode debugger ON , car je n'ai pas prevu de sorti de code (c'est un exemple

le principe tu creer 512 Sprites
et c'est FModex qui te renvoi le niveau de chacun d'eux ...
lis j'ai mis des commentaire ...
ça marche grace au buffer son , n'ayant jamais reussi a lui faire lire le buffer son du Streaming live a l'epoque
j'ai laissé tombé .....
mais pour les Mp3 ça marche nickel

le code :
Code : Tout sélectionner
;***********************************************
;Titre :*test_fmodex
;Auteur : Dobro
;Date :24/10/2013
;Heure :17:22:14
;Version Purebasic : PureBasic 5.20 LTS (Windows - x86)
;Version de l'editeur :EPB V2.50
; Libairies necessaire : Fmodex.pbi
;***********************************************
Enumeration
#window
#image
EndEnumeration
IncludePath "E:\Dobro\Purebasic_5_20\x86\Include\"
XIncludeFile "fmodex.pbi"
Declare Oscillo(sound)
; **************** initialisation Sprite des 512 niveaux************
Global Dim Arr.F(512) ; tableau pour les 512 niveaux
If InitSprite() = 0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
End
EndIf
Structure sprite
x.l
y.l
EndStructure
Global Dim sprite.sprite(512)
; creation de la fenetre d'affichage des niveau
If OpenWindow(#window, pos_x, pos_y, 300, 170, "Pure Radio", #PB_Window_SystemMenu)
If OpenWindowedScreen(WindowID(#window), 4, 4,290,50,0,0,0 )
ClearScreen(RGB($0,$0,$0))
FlipBuffers()
For i=1 To 512 Step 4
CreateSprite(i,2,32):CreateImage(#image,2,32,32)
sprite(i)\x=i
sprite(i)\y=50
StartDrawing ( ImageOutput (#image))
DrawingMode ( #PB_2DDrawing_Gradient )
;
BackColor($0000FF)
GradientColor(0.4, $00FFFF)
GradientColor(0.6, $FFFF00)
FrontColor($FF0000)
LinearGradient(0, 0, 2, 32)
Box(0, 0, 2, 32)
StopDrawing ()
StartDrawing ( SpriteOutput (i))
DrawImage(ImageID(#image),0,0)
StopDrawing()
Next i
EndIf
Endif
; *******************************************
;;; url$="http://mp3.live.tv-radio.com/rfo/all/rfo_polynesie-128k.mp3" ; Radio Polynesie ;)
; ************init Fmodex ****************************
FMOD_System_Create(@fmodsystem)
FMOD_System_Init(fmodsystem, 32, 0, 0)
; ***************************************
;;;; ***** pas de stream reseau dans cet exemple **********
;;;;FMOD_System_CreateStream(fmodsystem, @url$, #FMOD_CREATESTREAM, 0, @sound)
;;;;;FMOD_System_PlaySound(fmodsystem, 0, sound, 0, @channel) ; joue l'url
;;; *************************************************
str.s = OpenFileRequester("Choose a soundfile", "c:", "*.*|*.*", 0)
If str<>"" ; on charge le fichier
FMOD_System_CreateStream(fmodsystem, @str, #FMOD_SOFTWARE, 0, @sound) ; creer le stream
FMOD_Sound_GetLength(sound, @longueur, #FMOD_TIMEUNIT_MS) ; recupe la taille du son dans longueur (sert pour un scrollBar eventuel )
FMOD_System_PlaySound(fmodsystem, 0, sound, 0, @channel) ; joue
Endif
Repeat
Evenement.l= WaitWindowEvent(2)
FMOD_Channel_GetSpectrum(channel, Arr(), 512, 0, 0 ) ; recuperere les 512 niveaux des frequences
Oscillo(sound) ; le graph au centre ecran graphique
Select EventWindow()
;-evenement window
EndSelect
FlipBuffers()
ClearScreen(0)
ForEver
Procedure Oscillo(sound)
Static compteur.F,compteur2.F
compteur.F=compteur.F+1
compteur2.F=compteur2.F+10
largeur=290 :hauteur=50
If state=0 And play=1
For spr=1 To 512 Step 4
variation=25* Sin(compteur2*#PI/180)
sprite(spr)\x=spr
sprite(spr)\y= variation* Sin(spr*#PI/180)
DisplaySprite(spr,sprite(spr)\x+compteur.F,sprite(spr)\y)
sprite(spr)\y=50 ; remet le sprite en bas
If sprite(spr)\x+compteur.F>512
compteur.F=0
sprite(spr)\x=0
EndIf
Next spr
Else
For spr=1 To 512 Step 4
sprite(spr)\y=sprite(spr)\y-Arr(spr)*32*spr
DisplaySprite(spr,sprite(spr)\x,sprite(spr)\y)
sprite(spr)\y=50 ; remet le sprite en bas
Next spr
EndIf
EndProcedure
;
;
; EPB
Re: Fmodex et Effets Graphiques
..........
Dernière modification par Backup le lun. 18/août/2014 16:21, modifié 1 fois.
Re: Fmodex et Effets Graphiques
Excellent merci.
Content d'avoir pu t'aider à trouver ton erreur (gag !
)
Content d'avoir pu t'aider à trouver ton erreur (gag !


~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: Fmodex et Effets Graphiques
non non , c'est pas un gag !! MerciAr-S a écrit :Excellent merci.
Content d'avoir pu t'aider à trouver ton erreur (gag !![]()
)

- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Fmodex et Effets Graphiques
Sympa ce code Dobro. Merci 

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Fmodex et Effets Graphiques
Petite contribution. J'ai repris les éléments de ton code pour en faire un Spectrum Meter.

Le code met en oeuvre le gadget MeterGadget() et l'instruction associé SetMeterState() pour mettre à jour le vumètre.
L'include MeterGadget.pbi permettant de créer ce gadget se trouve sur ce lien http://www.purebasic.fr/english/viewtop ... 12&t=54117
le code complet Encore une fois, merci Dobro pour ton aide:)
Le code met en oeuvre le gadget MeterGadget() et l'instruction associé SetMeterState() pour mettre à jour le vumètre.
L'include MeterGadget.pbi permettant de créer ce gadget se trouve sur ce lien http://www.purebasic.fr/english/viewtop ... 12&t=54117
le code complet
Code : Tout sélectionner
EnableExplicit
IncludeFile "fmodex.pbi"
IncludeFile "MeterGadget.pbi"
Enumeration
#Mainform
EndEnumeration
Define.l Event, GEvent, TiEvent
Global WindowStyle.i=#PB_Window_SystemMenu|#PB_Window_ScreenCentered
Global VuMeter.i
Global fmodsystem.i, Channel.i, Sound.i
Global Dim Arr.F(512), N.i ; Tableau pour les 512 niveaux
Global Url.s
Procedure VueMeterUpdate()
Protected Sum.f
FMOD_Channel_GetSpectrum(channel, Arr(), 512, 0, 0 ) ; recuperere les 512 niveaux des frequences
For N=0 To 512
Sum + Arr(N)
Next
SetMeterState(VuMeter, Sum*10)
EndProcedure
Procedure Open_MainForm()
OpenWindow(#Mainform, 0, 0, 190, 200, "Spectrum Meter", WindowStyle)
SetWindowColor(#Mainform, $300000)
VuMeter= MeterGadget(#PB_Any, 20, 50, 100, "Spectrum")
AddWindowTimer(#Mainform, 100, 100)
EndProcedure
Procedure Start()
Open_MainForm()
Url ="http://50.7.98.106:8719"
FMOD_System_Create(@fmodsystem)
FMOD_System_Init(fmodsystem, 32, 0, 0)
FMOD_System_CreateStream(fmodsystem, @Url, #FMOD_CREATESTREAM, 0, @sound)
FMOD_System_PlaySound(fmodsystem, 0, sound, 0, @channel) ; joue l'url
FMOD_Channel_SetVolume(Channel, 0.5)
EndProcedure
start()
Repeat
Event = WaitWindowEvent(100)
GEvent = EventGadget()
TiEvent = EventTimer()
Select Event
Case #PB_Event_Timer
Select TIEvent
Case 100
VueMeterUpdate()
EndSelect
Case #PB_Event_Gadget
Select GEvent
EndSelect
Case #PB_Event_CloseWindow
FMOD_Channel_Stop(Channel)
FMOD_System_Release(fmodsystem)
End
EndSelect
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Fmodex et Effets Graphiques
Bonjour à tous et merci pour ce partage, mais j'ai un problème d'erreur de lecture à l'adresse 0.
Auriez-vous une solution à me proposer ?
Merci beaucoup d'avance !
Auriez-vous une solution à me proposer ?
Merci beaucoup d'avance !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Fmodex et Effets Graphiques
Avec quel code ?
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Fmodex et Effets Graphiques
Tu pourras surement confirmer que cette erreur se produit au niveau de cette ligneMicoute a écrit :j'ai un problème d'erreur de lecture à l'adresse 0.Auriez-vous une solution à me proposer ?
Code : Tout sélectionner
FMOD_System_Create(@fmodsystem)
■ Un fichier compressé qui contient :
fmodex.dll et fmodex.pbi nécessaires au fonctionnement des codes suivants.
Demo - Graph Sprite.pb correspondant au code de Dobro.
Demo - Meter Gadget.pb et MeterGadget.pbi pour le code que j'ai proposé plus haut:)

Dernière modification par falsam le dim. 17/nov./2013 23:01, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Fmodex et Effets Graphiques
Avec les deux !Ar-S a écrit :Avec quel code ?
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Fmodex et Effets Graphiques
N'oublies pas de regarder ma réponse et le lien que je te proposeMicoute a écrit :Avec les deux !Ar-S a écrit :Avec quel code ?

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%