Bon ca ressemble plus a un journal qu'a une liste des fonctionnalits des versions
succesives, mais on s'en fout, non? :)


Versions
--------

0.1b : 11/5/99
----
Bon bah premire version compte, mme si a fait quelques mois que le player est
en gestation. Faut bien commencer  compter  un moment, alors la je commence :)

0.2b : 12/5/99
----
Gestion des samples 16bit du s3m

0.3b : 12/5/99
----
Premire gestion XM
Aucun effet support, samples 16bits non grs, la mort, quoi :) C'est zaffreux
mais a joue, hein? Tout le travail de dcodage sample, instrument et pattern
est fait, c'est l'essentiel!

0.4b : 14/5/99
----
La gestion Xm avance, les effets standarts ainsi que la gestion du fadeout, des enveloppes
de panning et de volume est faite. La routine de mixage devient une immensit de 
brols et machins divers affreusement lents, fodra faire le mnage une fois fini...
La linear frequency table et l'amiga frequency table sont programmes. En gros
si on vire les effets et les enveloppes il joue les xm correctement :) Les effets
sont a peu pres tous buggs et ne parlons pas des enveloppes. Meme les sauts de
patterns ne fonctionnent pas!
Sans compter qu'il plante  tout bout de champ sur des debordements d'offset dans
la routine de mixage (et g meme vu une division par zero dans un effet tremor...)

0.5b : 15/5/99
----
H ben ya du progrs :) Pas de nouveaux effets grs, mais ils fonctionnent  prsent.
Des tonnes de bugs en tous genres en moins et quelques correction en plus apportent
un peu plus de serieux dans ce fichu player :) J'ai rcrit de zro la routine de gestion
des offset pour les samples, le player est a present tres stable, du moins il n'a pas
plant une seule fois depuis cette nouvelle version. J'ai galement commenc un
semblant d'optimisation pour le mixage, mais c'est loin d'etre la vitesse lumire. Il
y a encore beaucoup de travail a faire sur certains xm qui foirent totalement, mais
la proportion bien/mal jou commence a se modifier en faveur du bien. Ya de l'espoir,
donc :)
J'ai fait un premier test d'exagration de separation stereo, j'ai meme eu une blague
avec un sample qui est joue full left avec l'enveloppe de panning full right. C'est
bete pasque ca jouait rien :)
Pour le moment il me reste surtout a arranger les chtits details de chacun des xm,
un par un, patiemment, pour dnicher les bugs.

1.0b : 16/5/99
----
Et pouet :) J'avais dit que je noterais 1.0 quand je xm serait a peu pres bien
gr, bah c'est fait, comme quoi tout arrive :) Bon c'est loin d'etre parfait, ya
encore certains sons qui deconnes (on dirait un probleme de finetune) et pis
l'amiga frequency table me fait des soucis sur un xm, mais dans la plupart
des cas, le xm est bien joue, et meme mieux, dans la plupart des xm mals jous,
fo vraiment le connaitre par coeur (comme moi :)) pour se rendre compte que
ca foire...

Le son surround et reverb n'est pas gr dans cette version, j'ai du dplacer
des bits de mixage pour augmenter la qualit du son pasque avec les samples
16bit, il ne me restait que 5bits pour le volume, ce qui etait vraiment pas
suffisant. J'ai donc pris les 4bits du surround/reverb pour passer a 9bits
pour le mixage volume, ce qui donne sacrment mieux. Par contre je me demande
ou je vais bien pouvoir mettre le surrund et reverb :) Vivement les cpu
64bits :)))

En fait je pense que je vais le dplacer a la sortie du mixage, donc vers
le 8 ou 16bit final, mais ca me fera un second fit du range a faire,
vu que ya un premier lors de l'ampli. Deja que c'est lent...

Selection du stereo separation sur le gui, mais comme la formule de mixage
du pan est incorecte, ca risque fort de foirer si on ne met pas 1. Je
reglerai ca une autre fois pasque c VRAIMENT un detail a la con :)

J'ai un etrange bug dans la version compile, un floating error quand
le son joue en meme temps que le fileselect, mais ca ne vient pas de moi
vu que ca ne le fait pas en debug.

1.1b 16/5/99
----
Le Surround et le reverb sont a nouveau disponibles, j'ai donc dplac la gestion
apres le mixage des pistes, on verra a la longue ce que ca donnera. Sinon j'ai
encore rcupr un bit pour le mixage, on fignole, on fignole...
W et j'ai meme relook la fenetre :)

1.2b 17/5/99
----
J'ai trouv et rgl (forcment) le bug du finetune, et a present l'amiga
frequency fonctionne (du moins c'est ce que j'ai pu entendre, mes oreiles
tant le seul instrument auquel je peux me fier (et quand je dis fier...)
pour tester le resultat)
Un bug du chargement du mod qui plantait apres un chargement xm a ete regl.
Un chtit bug avec la combinaison keyoff/portanote (fo les trouver, hein? :))
Un dtail avec la combinaison jump/pattbreak (hem, si on tombe pas sur LE
mod qui fait un truc pareil on ne trouve jamais le bug :))
J'ai eu le cas de deux xm qui ont plant, j'ai trouv le bug gag : il jumpait
vers une position dclare dans la liste des positions mais dont la pattern
n'existait pas :) Gentil, hein? :)

Bon yen a encore combien des chtits bugs a la con du meme genre?
Comment ca beaucoup?
Beuh...

Mme que c'est pas ma faute, n'ont qu'a bien les ecrire, leurs fichus mods
a la fin :)

1.3b 23/5/99
----
Pfou! Je me demande si je vais russir  me souvenir de tout ce que j'ai bricol
dans cette version! Le moteur mod n'a pas ete boug, par contre le mixage a ete
amlior vu que j'ai fait un tickremoving qui donne quand meme un son deja plus
beaucoup meilleur hein? Alors g fait deux chtites fenetres qui affiche l'onde,
plus l'affichage des patterns en defilement au bas de la fenetre, qui devient
un peu grosse mais je miniaturiserai ca plus tard...

Tient Delphi me signale 4657lignes de code compil. C'est pas encore enorme mais
ca devient pas trop mal :)

Heu je pense que c'est dans cette version-ci que j'ai amlior le surround reverb,
qui donne ptete un peu moins bien pour les mod mais qui ne sature plus les xm...

Bon bah le reste je m'en souviens pas, en gros la 1.3b c'est l'ajout de brols
qui bougent sur la fenetre, pattern+onde :) Je commence a recolter des infos
pour l'equalizer...

Encore quelques bugs a signale dans le xm, j'attend d'avoir un gros paquet pour
corriger ca en masse.

1.4b 26/5/99
----
Quelques bugs rgls, surtout sur l'affichage des patterns, un petit reglage pour
une gestion du panning qui foirait pour le xm, mais la formule de pan que j'utilise
n'est toujours pas la bonne :)
Quelques bugs pour le break et le jump, ainsi que pour le notedelai arrangs...

1.5b 29/5/99
----
Pas mals de bugs corrigs dans le moteur mod, comme d'habitude, mais surtout une
foutue optimisation des routines, la consomation cpu  dgringol. Il reste
des gros problmes d'organisation au niveau de la boucle principale (je pense
meme qu'il y  moyen de faire dborder le stack en jouant trop de mods :))
QQes chtits bugs mineurs dans l'affichage, et si je pouvais amliorer le
multitache a ne serait pas du luxe non plus, mmh? Il y a des arrets de windows
pendant qqes dixiemes de secondes de temps en temps, ce qui le rend peu
attrayant...

J'aimerais tomber sur un pro du delphi pour qu'il me fasse un cours la dessus,
c'est que je dbarque du dos, moi :)
Normalement si tout se passe bien, la 1.6b devra avoir des equalizers, et pour
finir il y aura ptete une playlist :)

La formule du pan est enfin corrige.

Et je me demande quand je vais retirer ce b  la fin de la version :) Allez,
mettons quand la boucle principale ressemblera a qqchose (si ya moyen, delphi
n'est manifestement pas prevu pour ce que je veux faire...)

Je l'aurais bien teste un peu plus avant de la sortit, mais il me faut une
version pour filer a level_0 alors tant pis :) De toutes facons elle a
deja ete teste correctement et semble stable.

1.51 31/5/99
----
Pfou, voil la boucle principale ne me donne plus de cauchemards :) Plus de
rentrance hasardeuse, un beau code qu'on sait lire :)
Quelques bugs du moteurs rgls au passage...

1.6 12/6/99
---
Bon je m'en va me rsumer :
-playlist completement gre
-info du mod : liste des instruments et samples
-apply dans le setup
-j'ai modifi le systme de calcul du buffer courant qui tait bugg
-j'ai vir le tickremove pour le remplacer par un autre bien plus efficace,
 mais je pense que je vais tout de mme replacer le fadeout, une fois que
 j'aurai rcrit toute la gestion de la note du mod
-la config est sauve dans le registre
-calcul de la dure du mod
-modes autres que stro/16bits non grs
-loop du mod x1,2,3,4,5 et infini
-premice d'une pr-interpretation du mod au chargement pour la conversion
 dans un fomat global aux formats grs pour simplifier la gestion du dcodage
 et amliorer la lisibilit du code.
-6150 lignes de code

1.61 5/7/99
----
C'est pas que j'ai gland pendant tout ce temps mais c'est que j'ai longtemps
travaill dessus pas beaucoup :) Et pis les exams n'ont rien arrang mais  prsent
ce sont les vacances, je boucle la 1.61 avant de partir en thailande, et pouet.

- Multithread : je ne passe plus  l'avant plan de windows, mais bien par une
  sous-tache gre en priorit idle, tout en maintenans un bon refresh rate,
  Winamp vient de perdre un peu de son mystre :) Le win apprcie bcp mieux,
  j'ai enfin un multitache qui cartonne.
- Rajout du rglage de la priorit du thread dans le setup
- Interpolation linaire : w j'ai enfin russi, et sans faire passer le cpu a
  197% :) Ya eu pas mal de dtails  fignoler pour rgler a, le tickremove a
  du etre un peu retravaill, mais ca donne plutot bien...
- Pour passer en interpolation, j'ai modifi en profondeur toute la gestion des
  pointers de pmp (w, du boulot...), je passe  prsent en tableau dynamique,
  et mme si fondamentalement a revient au mme, delphi me gre a gratos, et
  comme au moins il "comprend" ce que je veux faire, ca booste un peu plus.
- Switch du tickremove et du resampling, ainsi que la rglage de la taille et
  du nombre des buffers disponible dans le setup (le passage statique->dynamique
   t plus facile que prvu  faire pour les buffers)
- Barre de progression dans le gui, d'ou on peut regler la position du mod, encore
  assez archaique fo dire...
- J'ai tu le popmenu que personne ne voyait, j'ai rajout des boutons sur le gui
  pour le rglage du surround, reverb, sepastereo et ampli, et meme autoampli parce
  que ca me faisait un bel alignement.
- Rajout des petits messages d'aide (les machins jaunes quand on laisse la souris)
  sur les controles de form1
- Reglage on/off de l'affichage des patterns et de l'analyser, et reglage de
  la taille de la fenetre en consquence
- J'ai enfin choisit la langue de pmp, a sera l'anglais, j'en avais marre d'avoir
  la moiti des controles en francais et l'autre moiti en anglais :) Je me ferai
  sans doute une version francaise un peu plus tard. Pourquoi l'anglais? Pour les
  termes techniques que je prfre garder en anglais, je les manie mieux :)
- Des tonnes de bugs rgls, quelques un qui venaient de la 1.6, et des milliers qui
  sont apparus pendant la cration de tous les points prcdents :)
- 6595 lignes

Le chrono est encore assez imprcis vu qu'il ne prend en compte ni les patternloop
ni les patterndelay.
Pmp manque de finition, je vais le fignoler et je sortirai sans doute la 1.7, dont
je ferai peut-etre enfin une vraie release... Pour a j'ai besoin de terminer la
gestion de certains effets peu courants dans les mods que je n'ai meme pas pris la
peine de programmer...
Il y a quelques details encore  rgler au niveau du tickremove, je ne sais pas
en fait si ce sont des ticks qui proviennent de l'interpolation, ou bien si
ils taient a l'poque noys dans le bruit de fond du nonresampling.

1.62 1/10/99
----
  Bon alors on va tre clair : la 1.62 c'est la version de l't et mme plus que a...
  J'ai arret pendant 3mois de mettre les versions  jour, donc on est rest sur la
  1.62w pendant un temps bte. Si on passait directement de la 1.61  la 1.62, on
  pourrait dire qu'il s'agit de la version 2.0, ce qui situe un peu. Il est impossible
  que ce texte contienne tout ce que j'ai pu modifier ou rajouter, alors a va tre
  fichtrement incomplet, mmh?

  J'ai rajout une status bar, qui n'a que l'interet d'exister...
  Plus srieux, un controle via l'autoampli de la saturation, avec lower automatique
  en cas de dtection, la sensibilit rglable dans le setup, assez efficace je trouve.

  Egalement sur la liste, un DTDR, direct to disk record, pas rapide,  l'image du
  player :) Notons au passage que j'ai repr que si on utilise 128buffers de 11,
  au lieu de 32buffers de 14, on diminuais considrablement la consomation cpu,
  mais j'ai du mal  bien comprendre pourquoi (ca ne serait qu'un bte problme
  d'arrondi que je ne serais pas tonn)

  Plusieurs tentative d'optimisations ont choues, c'est dur de jeter 200lignes de
  code, mais c'est la vie :) J'ai tout de mme russi  acclrer un rien, mais
  c'est pas encore indianapolis...

  W il gnaffiche la dure totale des buffers dans le setup, incroyable, surtout
  super dur  programmer ;)

  Notons au passage que j'ai pulvris le seuil des 7000lignes, a quand les 10000?

  Ajout d'un systme de pr-buffer ainsi que d'une mise en pause force au dmarage
  du mod pendant l'extraction du dit pr-buffer pour viter une bte coupure au
  dmarage du son.

  Enfin rgl : le loop crtin du dernier pattern sur certains mods, et bonjour le
  format idiot (qui indique un pattern mais qui lui donne 0octets)...

  Des bugs corrigs sur la visualisation des patterns dans l'unit vis, du genre
  les s3m s'affichent  prsent correctement, et j'ai mis le # que j'avais oubli,
  b vi ca arrive....

  Du dbug rajout dans load, beaucoup de dbug, et encore plus  suivre sans doute

  Dll externe pour la visualisation des graphs, quand mme pratique, hein? Et tant
  qu'on y est, plusieurs options de visualisation des dits graphs, avec aggrandissement
  et tout et tout, whaaa kecbo

  Bon, gn enfin cr une option pour enregistrer les formats grs dans l'explorateur
  Windows histoire de dire, mais c'est idiot car il ouvre une nouvelle fenetre  chaque
  lancement...

  Tient un contrle volume, on l'attendais celui-l, pas vrai?

  Dans la srie des dtails que tout le monde s'en fiche, un global speed et un
  global pitch uniquement pour les amoureux du "chipotage marrant" et du plantage
  qui s'en suit (ce dernier point tant prvu pour justement ne pas arriver mais
  bon...)

  Pouet, dans la playlist, la belle routine rcursive de recherche de mods dans
  un rpertoire et ses sous-reps, pratique aussi

  J'ai un nouvel ami, il s'appelle Billy, et il va vous faire quelque pas de danse,
  ds que mes autres, d'amis, voudront bien m'aider un peu pasque pour programmer
  a va mais pour faire des animations, hem...

  Ha tient, une skin en dll, que c'est drole, a quand les effets  la need for speed?

  Inutile : Always on top mais Jrome ah que il veut a alors on va le lui mettre, hein?

  Moins inutile  mais de Jrome quand mme, la multiplaylist avec move de l'une  l'autre
  et toute la srie des options satellites qui s'en suivent, pratique mais dur 
  programmer, hein? :)

  Bon, tout arrive, la routine mod est enfin termine (dingue, hein? c'tait mme pas
  encore le cas)

  Reverb/surround configurable et en multipasse (ca sert a rien mais c'est pour la
  frime et ca c'est tres important, par contre pour le cpu, c'est amusant aussi :))

  Ha, enfin un chrono digne de ce nom, la longueur du mod est correctement calcule,
  en vitant d'utiliser une routine simplifie de dcodage au chargement mais bien
  en utilisant la vraie routine centrale (avec des appels coups bien sur), ce qui
  est videment on-ne-peut-plus prcis...

  Ha, ca peut servir histoire d'viter de passer pour un con : pmp vite la
  multicession, comme ca on peut ouvrir une belle srie de mods depis l'exploreur,
  ca ne nous fera pas une belle serie de pmp (ben pourtant il est si b, non?)

  Et bien sur, tant qu'a frimer autant le faire jusqu'au bout, on va caser pmp dans
  le systray ca fait toujours bien plus srieux :)

  Ajout d'actions d'ajout dans l'explorateur concernant les fichiers grs par pmp

  Merci  Bruno qui m'a trouv une bien meilleure faon de grer le Always on top

  Utilisation d'une routine  moi pour le FFT.

  Relookage de la fentre afin de prparer l'arriv de la skin en bitmap, on va bien
  rigoler avec celle-l :) Du boulot en perspective, surtout que je prvois une release
  la semaine prochaine...

1.7 12/10/99
---

  Une semaine plus tard...

  La skin bitmap et anime entirement gre, quelques options dans l'interface rajoutes
  pour s'adapter au mieux.

  Meilleure gestion de l'always on top, la skin ne reste plus devant le setup, par
  exemple. PMP n'apparait plus dans le taskbar de windows.

  Moteur mod stabilis et blind, plus de plantages constats depuis 4jours, alors que
  je le laisse tourner pratiquement 24h/24

  Possibilit de rgler le dcodage des buffers dans un timer, ce qui peut ventuellement
  servir  l'occasion.

  En gros des tonnes de dtails pour la skin rgls, je fignole le tout, il faut ce
  qu'il faut, mmh?

  Trouv un bug pouvantraffreux le soir mme de la release finale, ce qui fait que
  cette dernire s'est retrouve retarde d'un jour...

*** Premire release officielle ce mardi 12 octobre 1999 sous le nom de ***
***                        Plouf's ModPlayer V1.7                       ***

1.71 6/11/99
----

  Correction d'un norme bug dans la playlist, en effet le "add directory" ne marchait
  pas. Egalement corrig un petit bug dans la skin sur la position des patterns
  quand on passait d'un enabled/disabled.

  Relle gestion du SetupVis et SetupPattern, j'en ai eu besoin pour crer un vis
  en fullscreen, je dcouvre le directx et surtout le directdraw. Ca me fait penser
   prvoir une version directsound dans la liste des priphs.

  J'ai amlior la gestion du setup pour les vis, il ne rinitialise pas tout d'office
  quand on quitte l'cran.

  Une optimisation pourtant triviale dans bmpskin : il ne gnre plus ni ne refresh
  les images des vis quand celles-ci ne seront pas visibles  l'cran (!)

  Une nouvelle vis est cre, vis1.dll, et se trouve  prsent par dfaut dans
  le package de PMP

1.72
----

  Support DirectSound sans grande envergure, juste histoire de dire...
  Enfin un contrle volume qui ressemble  quelque chose, le prcdent problme
  venant... d'une mauvaise comprhension de ma part des headers de waveOutSetVolume
  et waveOutGetVolume.

  Dans la srie des enfins : un systme de recherche dans la slection des mods,
  a devenait vraiment indispensable je trouve. Et c'est d'ailleurs bien plus
  pratique comme a, non?

  Quelques bugs mineurs corrigs dans vis1 et bmpskin, rien de bien important...
  PMP marche  prsent sur Win2000, car ce n'tait pas le cas auparavant bicoze
  un problme d'API son qui ragissait pas de la mme faon que sous win95/98.

  Possibilit de couper le thread utilis pour les buffers et pour le refresh de
  la skin, en replaant la skin dans un timer basse frquence (2 ticks par seconde),
  et en branchant les buffers dans le timer (en forant le "buffers in timer" dans
  le setup). Tout a pour ventuellement prendre moins de cpu sur des ordis plus
  lents ou pour viter d'en consommer btement quand les vis sont coupes.