Tracker bugs

Programmation d'applications complexes
Anonyme

Tracker bugs

Message par Anonyme »

J'ai deux soucis.

L'un , pour le calcul du BPM ( je dois être fatigué...)
l'autre , plus technique concernant le rafraichissement qui clignote...




Pour le BPM , je procède de cette manière :
BPM = 255
TempsARajouter = 60000 / BPM

if T < elapsedtimer()
T = elapsedtimer() + TempsARajouter
endif
J'ai 255 éléments à jouer les uns après les autres , avec un BPM de 255
il devrais me le jouer en une minute. mais j'ai 4 secondes dans la vue...
je vois pas d'ou ca viens.


Pour le rafraichissement , lorsque mon scrollarea descends , l'image ( la partie du bas clignote) comment reduire cet effet désagréable ?

Merci a vous.



Code : Tout sélectionner

Structure TrackerRect
x.i : y.i
EndStructure

Structure TrackerValue
  SoundID.i
  Text$
  ;Filters.i ; on ajoute se que l'on veut
EndStructure


Structure Tracker_Track
  Value.TrackerValue[16]
EndStructure

Structure TrackerGadget

  TrackerEntry.Tracker_Track[256] ; Liens vers la banque de son
  SelectedLine.b[256] ; Pour la multiselection
  
  NbTrack.c
  
  GadgetSize.TrackerRect

  
  Image.i
  Surface.i
  ScrollArea.i
  Thread.i
  WindowParent.i
  
  BackgroundColor.i
  ForegroundColor.i
  SelectedLineColor.i
  SelectedItemColor.i

 Selected_Row.i
 Selected_Column.i


  ForceRedraw.b

EndStructure


Procedure TrackerGadgetThread(*Tracker.TrackerGadget)
  Repeat
    With *Tracker
       
       
       
       
       If \ForceRedraw = #True
       \ForceRedraw = #False 
       StartDrawing(ImageOutput(\Image))
       DrawingMode(#PB_2DDrawing_Transparent)
       
       Marge = 2
       HexaMarge = 40
       TrackSize = ((\GadgetSize\x-21-HexaMarge) / \NbTrack) 
       
       
       ;Dessin du Fond
       Box(0,0,\GadgetSize\x ,5120,\BackgroundColor)
                        
                        
                     
                        
          For Sector = 0 To 255
              
              Line(0,Sector*20,\GadgetSize\x ,0,RGB(192,192,192))
              Hexa$ =  RSet(Hex(Sector,2),2,"0")
              DrawingMode(#PB_2DDrawing_Transparent)
              DrawText(0,(Sector*20)+Marge,Hexa$,\ForegroundColor)
              DrawText(\GadgetSize\x-40,(Sector*20)+Marge,Hexa$,\ForegroundColor)
               
               ; La ligne est selectionné
              If \SelectedLine[Sector] = #True
                      DrawingMode(#PB_2DDrawing_Outlined)
                      Box(24,Sector*20+2,\GadgetSize\x-4-21-HexaMarge,16,\SelectedLineColor)
              EndIf
              
              
        
              
                                      For i =  0 To \NbTrack -1  
                          
                                        ; Texte de la cellule
                                          CellText$ = \TrackerEntry[Sector]\Value[i]\Text$
                                          DrawingMode(#PB_2DDrawing_Transparent)
                                          DrawText((TrackSize*i+20+2)+TrackSize/2-TextWidth(CellText$)/2,Sector*20+2,CellText$,\ForegroundColor)
                          
                                        ;Selection a la souris
                                        
                                        MouseGadgetX = (WindowMouseX(\WindowParent) - GadgetX(\ScrollArea)) + GetGadgetAttribute(\ScrollArea,#PB_ScrollArea_X)
                                        MouseGadgetY = (WindowMouseY(\WindowParent) - GadgetY(\ScrollArea)) + GetGadgetAttribute(\ScrollArea,#PB_ScrollArea_Y)
                                                                 
                                        
                                        If MouseGadgetX > TrackSize*i+20+2 And MouseGadgetX < (TrackSize*i+20+2)+TrackSize-4 And MouseGadgetY > Sector*20+2 And MouseGadgetY < (Sector*20+2)+16
                                                     DrawingMode(#PB_2DDrawing_Outlined)
                                                     Box( TrackSize*i+20+4,Sector*20+3,TrackSize-6,14,\SelectedItemColor) ; Dessin de la selection
                                                     \Selected_Row = Sector
                                                     \Selected_Column = i+1
                                        EndIf
                                    
                                    Next 
         

       Next 
       
       
       For i =  0 To \NbTrack                  
           ; Dessin du séparateur de track
          Box( 20 + (i*TrackSize),0,Marge,5120,RGB(192,192,192))
       Next 
       

        StopDrawing()
       SetGadgetState(\Surface,ImageID(\Image))
      EndIf ; End Force redraw.
        
        
        
        
        If WindowMouseX(\WindowParent) > GadgetX(\ScrollArea) And WindowMouseX(\WindowParent) < GadgetX(\ScrollArea) + GadgetWidth(\ScrollArea) And WindowMouseY(\WindowParent) > GadgetY(\ScrollArea) And WindowMouseY(\WindowParent) < GadgetY(\ScrollArea) + GadgetHeight(\ScrollArea)
          \ForceRedraw = #True 
        EndIf 
        
        
        
      
      EndWith
      
    
 ForEver
EndProcedure




Procedure.i TrackerGadget(x,y,width,height,NbTrack)

*Tracker.TrackerGadget = AllocateMemory(SizeOf(TrackerGadget))
  If *Tracker = #Null
    MessageRequester("Error","Can't make Tracker Gadget , not enough memory")
      End
        EndIf 

    With *Tracker


      \Image         = CreateImage(#PB_Any,width,5120)
      \ScrollArea  = ScrollAreaGadget(#PB_Any,x,y,width,height,width-21,5120,5)
      \Surface      = ImageGadget(#PB_Any,0,0,width,5100,ImageID(\Image)) : CloseGadgetList()
      \WindowParent = GetActiveWindow()

      \GadgetSize\x = width 
      \GadgetSize\y = height
      
      \BackgroundColor     = $000000
      \ForegroundColor      = $00AA00
      \SelectedLineColor    = $0044FF
      \SelectedItemColor   = $00C1FF
      \NbTrack                     = NbTrack
      \ForceRedraw            = #True 
      \SelectedLine[1]        = #True
      
      \Thread = CreateThread(@TrackerGadgetThread(),*Tracker)

    EndWith
    
    
ProcedureReturn *Tracker
EndProcedure


Procedure SetGadgetTrackerItemText(*Tracker.TrackerGadget,Row.i,Column.i,Text$)
*Tracker\TrackerEntry[Row]\Value[Column]\Text$ = Text$
EndProcedure

Procedure.s GetGadgetTrackerItemText(*Tracker.TrackerGadget,Row.i,Column.i)
ProcedureReturn  *Tracker\TrackerEntry[Row]\Value[Column]\Text$ 
EndProcedure

Procedure SetGadgetTrackerState(*Tracker.TrackerGadget,state.i)
For i = 0 To 255
*Tracker\SelectedLine[i]  = #False 
Next 
*Tracker\SelectedLine[state]    = #True
*Tracker\ForceRedraw = #True 
SetGadgetAttribute(*Tracker\ScrollArea,#PB_ScrollArea_Y,(state*20))
EndProcedure





OpenWindow(0,0,0,1024,768,"PureTracker")
; SetWindowColor(0,$AA0011)

FastTracker = TrackerGadget(10,412,1004,346,6)



For R = 0 To 255
  For C = 0 To 5
    SetGadgetTrackerItemText(FastTracker,R,C,"-- This is :: "+Str( Random(65535) ))
  Next 
Next 

BPM = 255
BPS  = 60000/BPM
BEAT_TIMER.i 

Ts = ElapsedMilliseconds()


Repeat
event = WindowEvent()
SmartWindowRefresh(0,1)

If BEAT_TIMER<ElapsedMilliseconds()
BEAT_TIMER = ElapsedMilliseconds() + BPS
Line+1
If Line=256
 Te = ElapsedMilliseconds()
 Tf = Te-Ts
 MessageRequester("",Str(Tf))
 End
EndIf 
EndIf 

SetGadgetTrackerState(FastTracker,Line)



Until event = #PB_Event_CloseWindow
Anonyme

Message par Anonyme »

Avec des instruments c'est mieux :D

File:1->PureTracker.rar
Image


Faite pas gaffe , je ne suis pas un zikos à la base :D
D'ailleurs Dobro & cie , tu as bien une archive d'instrument qui traine quelque part sur ton DD ?
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Cpl.Bator a écrit :Avec des instruments c'est mieux :D

File:1->PureTracker.rar
Image


Faite pas gaffe , je ne suis pas un zikos à la base :D
D'ailleurs Dobro & cie , tu as bien une archive d'instrument qui traine quelque part sur ton DD ?
j'arrive pas à extraire ton fichier, unrar indique failed :?
tu peux le targz plutôt ? :wink:
Anonyme

Message par Anonyme »

je suis sous xp :/

File:1->PureTracker.tar
Image
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

le .rar fonctionne chez moi ! C'est sympa !
Oui j'ai vu le clignotement de la dernière ligne ... mais je comprends pas trop pourquoi ...

Sinon c'est tres sympa ! Reste plus qu'a gérer des patterns, quelques effets sur les notes etc....

Tient je sais pas si ça t'interesse mais voici la description du format protracker http://www.aes.id.au/modformat.html
Il y a une description des effets sur les notes ... :P
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Cpl.Bator a écrit :je suis sous xp :/

File:1->PureTracker.tar
Image
8O t'abandonne Tux ?
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bon y'a longtemps que je sais que le ridicule ne tue pas, sinon j'serais deja en train de discuter avec les vers de terre qui ont les yeux bleux :roll:
Mais j'suis encore le seul a pas avoir compris a quoi sert ton super code :oops:

Et cette fois meme WIKIPEDIA j'ai ecris "Tracker bugs" et y sort noir de trucs 8O

http://fr.wikipedia.org/wiki/Sp%C3%A9ci ... gs&go=Lire

Code : Tout sélectionner

PlaneShift veut dire que le joueur pourrait y trouver des bugs , des défauts ou des fonctions manquantes. … Liens externes : com/ PS Bug tracker. http://www. … 
18 Kio (2573 mots) - 15 janvier 2009 à 20:18

Perl (langage) com/rt Request Tracker, un système de gestion de bugs. GNU Automake génère des makefile s portables Fink est un projet open source destiné … 
23 Kio (2756 mots) - 22 février 2009 à 10:06

Musique assistée par ordinateur les tracker s ou soundtracker s, dont l'âge d'or se situe dans les … abandonné par son créateur, Oskari Tammelin , de nombreux bugs persistent. … 
20 Kio (2693 mots) - 6 février 2009 à 00:54

Mantis Bug Tracker org/bugs/changelog_page. php? version_id 102 1.1.6 | date de dernière version 9 | … Liens externes : php Mantis Bug Tracker | Requirements-- 
2 Kio (236 mots) - 4 janvier 2009 à 12:04

Ubuntu Sur le portail (Launchpad) chargé entre-autre de lister les bugs … Le bug tracker Malone , permettant la gestion des rapports de bug … 
40 Kio (4582 mots) - 22 février 2009 à 23:40

Starship Troopers (série télévisée) Seul l'épisode Tracker représente une transition à part entière, et … Épisodes: Évacuation immédiate (Plasma Bugs of Navarone) Chargement … 
9 Kio (1235 mots) - 14 février 2009 à 00:08

Roundup (logiciel) Roundup est un logiciel libre permettant la gestion des bugs . Il est écrit en python . … Liens externes : roundup-tracker. org/cgi-bin/moin. … 
562 o (58 mots) - 19 février 2009 à 13:16
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

:D Recherche plutot du coté des Trackers genre MilkyTracker, protracker etc ...
Anonyme

Message par Anonyme »

flaith a écrit :
Cpl.Bator a écrit :je suis sous xp :/

8O t'abandonne Tux ?
Non , j'ai les 2 os c'est tout :lol:
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Ce qu'on appel un tracker c'est un logiciel qui permet d'écrire de la musique sous forme de module, les plus ancien et les plus connu étant, SoundTracker, Protracker, FastTracker. En gros pour prendre moins de place, tu as juste une seul note d'un son (qui peut être soit synthétique (formule mathématique), soit digitalisé) Et en lisant ce son a différente vitesse tu peux reproduire toute les notes. Sur ce principe le tracker te permet d'écrire de la musique.
Sur le wiki c'est là
http://fr.wikipedia.org/wiki/Tracker_(musique)

Voilà j'éspère que ça t'a aidé !! :D
Ce système est génial pour avoir des musiques super longue et qui prennent un minimum de place... :P
Dernière modification par Thyphoon le mar. 24/févr./2009 17:04, modifié 1 fois.
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Cpl.Bator a écrit :
flaith a écrit :
Cpl.Bator a écrit :je suis sous xp :/

8O t'abandonne Tux ?
Non , j'ai les 2 os c'est tout :lol:
:D ouf, j'ai eu peur

Sinon j'ai une erreur en ligne 100 : The specified #window is not intialized

Code : Tout sélectionner

MouseGadgetX = (WindowMouseX(\WindowParent) - GadgetX(\ScrollArea)) + GetGadgetAttribute(\ScrollArea,#PB_ScrollArea_X)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Recherche plutot du coté des Trackers genre MilkyTracker, protracker etc ...
Merci FLAITH 8)
Voilà j'éspère que ça t'a aidé !!
Ce système est génial pour avoir des musiques super longue et qui prennent un minimum de place...
J'ai compris :D
Comme dans les jeux videos sous DOS.
Je me suis toujours demandé, comment ils faisaient justement pour jouer toute la marseillaise sur une disquette :D

Ce forum, on en apprend !!!!mais qu'est ce qu'on en apprend !!! 8O

Tout le monde sait tout,...........
Y'en a pas un qui saurait ou j'ai paumé ma télécommande de porte de garage depuis 10 ans :? :lol: :lol: :lol:

Merci de votre explication, encore un mystere de ma vie qui viens d'etre élucidé en quelques mots. 8)
Anonyme

Message par Anonyme »

Sinon j'ai une erreur en ligne 100 : The specified #window is not intialized
Compile avec la gestion des threads , vire le debugger.
Je réecris le gadget pour évité les "scintillement".
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Cpl.Bator a écrit :
Sinon j'ai une erreur en ligne 100 : The specified #window is not intialized
Compile avec la gestion des threads , vire le debugger.
Je réecris le gadget pour évité les "scintillement".
Ok j'ai enlevé le debugger mais j'ai un ecran vierge (pas de dessin) juste 3sons de basses et mon process est bloqué, obligé de le killer :?
Anonyme

Message par Anonyme »

Laisse pissé :?

le gadget que je réecris est mieux ^^ pas de scintillement , il se rapproche de FastTracker 2 :D
Répondre