ModpLug lib et fonctions SetMusicPosition
ModpLug lib et fonctions SetMusicPosition
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é ?
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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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: ModpLug lib et fonctions SetMusicPosition
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...

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 ) ??? !
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 ) ??? !
Re: ModpLug lib et fonctions SetMusicPosition
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 ^^
> 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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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: ModpLug lib et fonctions SetMusicPosition
ouaip, faudrai que je prenne le courage d'ajouter ça dans mon Pure_radio a propos de la liste des mp3Ar-S a écrit : J'ai passé le gros de mon temps à gérer la playlist par drag n drop ^^
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 )
Re: ModpLug lib et fonctions SetMusicPosition
Moi c'est l'inverseZorro a écrit : faut dire que dans mon utilisation quotidienne d'un ordinateur, je n'utilise que tres rarement le Drag and 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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: ModpLug lib et fonctions SetMusicPosition
Ah bon ??? Ya encore des fonctions charger dans les programmes de notre époque ?? 
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

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
Re: ModpLug lib et fonctions SetMusicPosition
le gros point noir du Drag and Drop , c'est de devoir avoir plusieurs fenetres ouvertes a l'ecranKwai chang caine a écrit :Un programme qui ne le fait pas, si j'ai le choix je le zappe.
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é ..

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


- majikeyric
- Messages : 602
- Inscription : dim. 08/déc./2013 23:19
- Contact :
Re: ModpLug lib et fonctions SetMusicPosition
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.
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.
Re: ModpLug lib et fonctions SetMusicPosition
Merci, mais lorsqu'on a des habitudes, tu sais ce que sait j'imagine. 

Re: ModpLug lib et fonctions SetMusicPosition
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 !
Un homme doit être poli, mais il doit aussi être libre !
Re: ModpLug lib et fonctions SetMusicPosition
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...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.