ModpLug lib et fonctions SetMusicPosition

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

ModpLug lib et fonctions SetMusicPosition

Message par Ar-S »

Je teste cette (bonne) lib mais j'ai l'impression que SetMusicPosition(#Music, Position) déconne.

En gros je capte le numéro de la piste en lecture dans ma boucle principale (lorsqu'un morceau est en lecture)
PISTE = MusicPosition(#Music)

J'ai un bouton > pour passer à la piste suivante et un bouton < revenir à la piste (pattern) précédente.

Lorsqu'un morceau est en lecture et que j'appuis sur > j'envoie donc SetMusicPosition(#Music, PISTE + 1)
et ça ne fonctionne pas, ça revient à une piste précédente voir à la piste 0...

Je trouve aussi que que l'affichage des rows est limite, il s'affiche 5 par 5.

Avez vous testé ?
~~~~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
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: ModpLug lib et fonctions SetMusicPosition

Message par Zorro »

Pour moi cette lib n'est pas finie !!

deja , il manque de quoi connaitre la taille total du nombre de paternes

de plus lorsqu'on impose une position , ça ne marche pas puisque la position de lecture d'un mod
n'est pas linéaire ....

ce sont des boucles qui souvent se repetent, donc la position reviens quelques fois a zero
avant de sauter a la position 15 par exemple ...

rien de prévisible ...

en l'etat, on peut juste lancer la lecture, l'arreter , faire un semblant de pause (qui ne garantira pas un redepart de la position courante
bref, pas la peine de penser a faire un Sountracker maison avec cette lib :)

tout juste un petit lecteur avec Load ,Play Stop
un peu dans ce style : (mais ici la pause n'est pas parfaite, et le track suit la position, mais comme celle-ci renvoi n'importe quoi...

Code : Tout sélectionner


If InitSound() = 0
		MessageRequester("Error", "Sound system not available.") 
		End
EndIf

;{- Enumerations / DataSections
;{ Windows
Enumeration
		#Win
		#Mod
EndEnumeration
;}
;{ Gadgets
Enumeration
		#Button_Stop
		#Button_Play
		#Button_Av
		#Button_Ar
		#Button_Pause
		#Button_Load
		#Text_Titre
		#Text_auteur
		#Gadget_track
		#Gadget_volume
EndEnumeration
;}
;{ Fonts
Enumeration
		#Font_Text_Titre
EndEnumeration
;}
Define.l Event
Global Position,volume=50 ,mem_position
Global flag_play=#False


;}
Procedure OpenWindow_Win()
		If OpenWindow(#Win, 471, 165, 302, 113, "Pure_mod", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
				SetWindowLong_(WindowID(#Win), #GWL_EXSTYLE , GetWindowLong_(WindowID(#Win), #GWL_EXSTYLE) | #WS_EX_TOOLWINDOW)
				ResizeWindow(#Win, #PB_Ignore, #PB_Ignore, 302 + 1,113)
				
				ButtonGadget(#Button_Stop, 25, 50, 45, 40, "Stop")
				ButtonGadget(#Button_Play, 80, 50, 45, 40, "Play")
				ButtonGadget(#Button_Av, 185, 50, 45, 40, "->")
				ButtonGadget(#Button_Ar, 135, 50, 45, 40, "<-")
				ButtonGadget(#Button_Pause, 240, 50, 45, 40, "II",#PB_Button_Toggle   )
				ButtonGadget(#Button_Load, 25, 10, 45, 25, "Load")
				TextGadget(#Text_Titre, 105, 10, 80, 25, "Pure_Mod")
				TextGadget(#Text_auteur, 240, 95, 50, 15, "By Zorro")
				TrackBarGadget(#Gadget_track, 25, 90, 200, 20, 0, 255)
				TrackBarGadget(#Gadget_volume, 290, 10, 10, 80, 0, 100,#PB_TrackBar_Vertical)
				
				; Gadget Fonts
				SetGadgetFont(#Text_Titre, LoadFont(#Font_Text_Titre, "Arial", 11, #PB_Font_Bold|#PB_Font_HighQuality))
				
		EndIf
EndProcedure

OpenWindow_Win()
SetGadgetState(#Gadget_volume,Volume)
;{- Event loop
Repeat
		Event = WaitWindowEvent(12)
		If IsMusic(#mod) and flag_play=#true
				MusicVolume(#Mod, volume)
				position=GetMusicPosition(#mod)
				SetGadgetState(#Gadget_track, position)
				; debug Position  la position n'est pas lineaire dans les Module , ils s'agit de boucle imbriquées
		Endif
		Select Event
				; ///////////////////
		Case #PB_Event_Gadget
				Select EventGadget()
				Case #Gadget_volume
						If IsMusic(#Mod) and flag_play=#True
								volume=GetGadgetState(#Gadget_volume)								
						Endif
				Case #Gadget_track
						
				Case #Button_Stop
						If IsMusic(#Mod)
								StopMusic(#Mod)
								flag_play=#False
						Endif
				Case #Button_Play
						If IsMusic(#Mod)
								PlayMusic(#Mod)  	
								flag_play=#True
						Endif
				Case #Button_Av
						flag_play=#False
						position=GetMusicPosition(#mod)
						position=position+10
						SetMusicPosition(#mod,position)
				Case #Button_Ar
						flag_play=#False
						position=GetMusicPosition(#mod)
						position=position-10
						SetMusicPosition(#mod,position)
				Case #Button_Pause
						If IsMusic(#Mod)
								Select GetGadgetState(#Button_Pause)
								Case 1 ; Pressé
										mem_position=GetMusicPosition(#mod)
										StopMusic(#Mod)
										flag_play=#False
										debug Position
								Case 0 ; pas pressé			
										position=mem_position
										SetMusicPosition(#mod,position)
										debug Position
										PlayMusic(#mod)
										flag_play=#True
								EndSelect
						Endif
				Case #Button_Load
						FileName$ = OpenFileRequester("","","Music Modules (*.mod, *.xm, *.it)|*.mod;*.xm;*.it", 0)
						If FileName$
								If LoadMusic(#Mod, FileName$)
										SetGadgetAttribute(#gadget_track, #PB_TrackBar_Maximum, 500)
								Endif
						Endif
				Case #Text_Titre
				Case #Text_auteur
				EndSelect
				; ////////////////////////
		Case #PB_Event_CloseWindow
				Select EventWindow()
				Case #Win
						CloseWindow(#Win)
						Break
				EndSelect
		EndSelect
Forever
;
;}

:)

Sur le forum Anglais, peut etre que quelqu'un a utilisé une librairie Externe pour faire un Lecteur de Mod complet
(avec pause et av,ret rapide ) ??? !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ModpLug lib et fonctions SetMusicPosition

Message par Ar-S »

Je sais, pour en avoir fait pas mal, que les pattern ne se suivaient pas (certains mod se lisaient même de 64 à 0 dans les lignes) mais j'aurai au moins aimé que les commandes fournis fonctionnes.
> pattern suivante
< pattern précédente
car elles sont fournis dans PB. Si elles ne fonctionnent pas c'est un bug.
Je suis d'accord avec toi sur le fait de pouvoir connaître aussi la taille totale du nombre de paternes d'un morceau.

Du coup j'avais ajouté l'avant et le retour dans mon lecteur, je vais les virer.
Il prend forme cependant.
Comme tu l'as montré c'est pas dur à créer ^^ J'ai passé le gros de mon temps à gérer la playlist par drag n drop ^^
~~~~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
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: ModpLug lib et fonctions SetMusicPosition

Message par Zorro »

Ar-S a écrit : J'ai passé le gros de mon temps à gérer la playlist par drag n drop ^^
ouaip, faudrai que je prenne le courage d'ajouter ça dans mon Pure_radio a propos de la liste des mp3
pour le moment, seul le chargement/déchargement de plusieurs Mp3 est pris en compte , mais pas de Drag-Drop pour
remplir la liste ou changer la position des titres ....
j'ai deja géré le drag-Drop sur un autre prg ... mais là , je ne me suis pas re-penché là dessus depuis un bon moment :)

faut dire que dans mon utilisation quotidienne d'un ordinateur, je n'utilise que tres rarement le Drag and Drop !
(seulement avec Filezilla en fait )
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: ModpLug lib et fonctions SetMusicPosition

Message par Ar-S »

Zorro a écrit : faut dire que dans mon utilisation quotidienne d'un ordinateur, je n'utilise que tres rarement le Drag and Drop !
Moi c'est l'inverse ;)
~~~~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
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: ModpLug lib et fonctions SetMusicPosition

Message par Kwai chang caine »

Ah bon ??? Ya encore des fonctions charger dans les programmes de notre époque ?? :mrgreen:
Le d&d c'est comme le presse papier. ..magique. .on devrait élever une statue à celui qu'à trouvé ça. .ça a changé ma vie numérique

Un programme qui ne le fait pas, si j'ai le choix je le zappe.
Comme quoi c'est pas les idées les plus complexes qui sont les plus révolutionnaires
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: ModpLug lib et fonctions SetMusicPosition

Message par Zorro »

Kwai chang caine a écrit :Un programme qui ne le fait pas, si j'ai le choix je le zappe.
le gros point noir du Drag and Drop , c'est de devoir avoir plusieurs fenetres ouvertes a l'ecran
pas toujours evident avec les Petits ecrans ...
de plus ça oblige une gymnastique permanente du resize des fenetres pour bien les placer
car quelques fois la partie que tu veux Dragger est souvent du mauvais coté .. :roll:

perso, j'utilise d'abords les Menus, eux au moins ça marche a tout les coups :)
et bien sur le Copier-coller par raccourcis clavier (Ctrl+x;Ctrl+c ,Ctrl+v )
avec Windows le copier coller est une gymnastique obligatoire
puisque l'inventeur a d'abord codé le copier-coller , et ensuite etendu, et brodé autour, pour faire Windows
tout ce qui est autour du copier-coller est du Surplus pas indispensable :mrgreen:
:)
Avatar de l’utilisateur
majikeyric
Messages : 602
Inscription : dim. 08/déc./2013 23:19
Contact :

Re: ModpLug lib et fonctions SetMusicPosition

Message par majikeyric »

Tu n'as pas besoin d'avoir toutes tes fenêtres à l'écran pour faire un Drag&Drop,
par exemple: Tu sélectionnes tes fichiers à la souris dans l'explorateur, tu gardes ton bouton gauche appuyé et en même temps tu changes d'appli avec ALT+TAB,
et tu relaches.
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: ModpLug lib et fonctions SetMusicPosition

Message par Zorro »

Merci, mais lorsqu'on a des habitudes, tu sais ce que sait j'imagine. :)
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: ModpLug lib et fonctions SetMusicPosition

Message par Micoute »

Zorro, je suis comme toi, car les vieux ça a des habitudes, chez moi, c'est presque religieux !
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 !
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: ModpLug lib et fonctions SetMusicPosition

Message par djes »

majikeyric a écrit :Tu n'as pas besoin d'avoir toutes tes fenêtres à l'écran pour faire un Drag&Drop,
par exemple: Tu sélectionnes tes fichiers à la souris dans l'explorateur, tu gardes ton bouton gauche appuyé et en même temps tu changes d'appli avec ALT+TAB,
et tu relaches.
Y'a aussi le coup du glissé sur le bouton de la fenêtre dans la barre des tâches, attendre qu'elle vienne au premier plan, et relâcher dedans...
Répondre