1950

Je ne lui demande pas de ne mettre les exemples qu'en statique (même si c'est ce que je ferais à sa place smile), je lui demande de les mettre aussi en statique.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1951

Kevin> Je t'ai répondu par mini-message et tu comprenderas je l'espère mon point de vue. Ne crois pas que PolySnd est de la propagande pure et dure du mode kernel...
Je veux juste laisser le choix au programmeur, tout est dis dans la documentation...
Je refuse de traduire ta documentation si tu ne les mets pas aussi en statique. Si tu veux faire de la propagande pour le mode kernel en ne mettant tes exemples qu'en dynamique, ce n'est pas moi qui vais faire ton travail de traduction.


Je sais que ma documentation est horriblement grosse et que la traduction est longue et pénible, je sais bien aussi que je te monopolise de ton libre... Si tu trouve que j'exagére tu n'as qu'à me le dire et ne pas accepter la traduction, je comprenderais, mais à ce point mettre refuser parce que je ne fait pas les exemples en statique, c'est exagéré.
Personne ne m'a demandé de les faire en statique et comme tu me le demande et que tu insiste, je le ferais.
Bah, la solution est toute simple, il lui suffit de prendre les 2 minutes nécessaires pour recompiler. (Je peux même le faire pour lui, je veux juste qu'il distribue les binaires statiques.) J'espère quand-même qu'il ne soit pas tellement borné qu'il préfère tout traduire lui-même plutôt que de faire quelques recompilations de 2 minutes.


Je sais bien que tu m'as aidé plusieurs fois et je t'en remercie vraiment, mais à ce point faire mon boulot, même le plus minable, c'est vraiment exagéré.
Je suis loin d'être borné et pareseux Kevin.



Bon pour revenir au sujet, je sais que la plupart n'on pas d'éditeur de partitions, voici celui que j'utilise.
MidiSofts il est assez ancien, il est pour WINDOWS 3.1 mais il fonctionne correctement sous Windows 98 et Windows XP, la seule contrainte c'est qu'il ne peux pas ouvrir des fichiers MIDI supérieur à 64 Ko. Déjà 64 Ko pour un MIDI c'est énrome.
http://perso.wanadoo.fr/tisofts/divers/MidiSoft.zip

Là je m'attaque à l'amélioration du filtre de Converti. Il est clair que la modification de la librairie en lecture WAV ne changera rien, c'est au convertisseur WAV d'améliorer la qualité.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1952

Là je m'attaque à l'amélioration du filtre de Converti. Il est clair que la modification de la librairie en lecture WAV ne changera rien, c'est au convertisseur WAV d'améliorer la qualité.
Je pense qu'il faudrait revoir l'algorithme de conversion de converti surtout. Si je ne me trompe pas il fait octet>>7 pour trouver un bit, non ?
Sinon, est-ce que tu sais pourquoi le son est horrible avec mon programme ?
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1953

Sinon, est-ce que tu sais pourquoi le son est horrible avec mon programme ?


Ca vient des données, j'ai le même resultat avec PolySnd.
Comme tu l'entend, il y a énormément de fréquences parasite, des fréquences presque inaudible dans le fichier WAV sur PC mais accentué par le convertisseur MIDI.
Converti prend tout simplement le bit n°7 de l'octet en cours. Le filtre est juste là pour dire si l'octet est inférieur à 128 alors bit à 0 sinon à 1.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1954

Je pense qu'il faudrait mettre le bit à 1 si l'octet est supérieur au précédent et à 0 s'il est inférieur. (malheureusement c'est quand même un peu plus compliqué)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1955

Non, il existe une méthode, Pollux me l'avais donné et il faut que je retrouve le topic en question.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1956

Je viens d'appliquer un filtre tout bête si>128 alors 1 sinon 0, le résultat est assez bien, les sons sont de meilleur qualité et les données plus facile à compresser. Mais je pense faire mieux.

Quand à la méthode de générer du bruit, c'est assez horrible en résultat, c'est même pire que sans filtre.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1957

J'ai essayé ta méthode GoldenCrystal et le résultat et quand même mieux, le seul défaut et qu'il y a du bruit qui prend le dessus sur le WAV.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1958

oué, le bruit c normal:
(malheureusement c'est quand même un peu plus compliqué)
Pour faire la meilleure conversion possible, il faudrait faire pas mal de calculs pour chaque octet.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1959

Pour faire la meilleure conversion possible, il faudrait faire pas mal de calculs pour chaque octet.


Tu n'aurais pas une idée des calculs à effectuer.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1960

Et bien en fait, il faut connaître le temps que met la membrane du haut-parleur pour redescendre et avec ça on faire les calculs.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1961

Je vois pas comment savoir ça, si on admet une valeur théorique et que je test en changeant cette valeur, je vais bien finir par trouver quelque de parfait?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1962

Oui, mais le problème, c'est que çette valeur varie peut-être en fonction des différents haut-parleurs. Sur les haut parleurs pc, c'était 60 µs selon ce site: http://fly.cc.fer.hr/GDM/articles/sndmus/speaker2.html Tu connais aussi la fréquence de 8192 Hz donc la période est de 122 µs. Donc pour arriver totalement à 0 après un maxuimum, tu devrais attendre deux interruptions (durant lesquels le bit sera à 0)... Donc finalement, dans le convertisseur tu pourrait donner 3 états au son (ce qui est assez limité)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1963

Ah ouai en effet c'est compliqué.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1964

Tu n'as pas une idée du calcule à effectuer entre l'octet d'avant et l'octet en cours?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1965

Je pense que ça serait possible de mettre à 1 si la diférence (octet2 - octet1) est supérieure à 64 et à 0 si elle est inférieure à -64. Et si c'est indécis (entre -64 et 64) peut-être utiliser la technique octet>128==>1 sinon 0.
EDIT: enfin, c'est seulement une idée, ce n'est pas dit que ça marche.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1966

Je viens d'effectuer ce que tu as dit et le résultat et un peu mieux mais le bruit de fond prend le dessus.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1967

Raah, mais il est énervant ce bruit de fond!
EDIT: ça doit encore être quelque chose du style 4KHz, non ?
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1968

Non, c'est bien différent, c'est un bruit de cripitement et presque toujours identique. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1969

Je pense qu'on a quelque chose comme ça:
Considérons qu'on a 3 états possibles pour la membrane:
1 - Aucun signal
2 - Intermédiaire
3 - Maximum
À chaque fois, le bit en cours peut coder deux états qui dépendent du précédent (l'état):
1 - 0: Aucun Signal, 1: Intermédiaire
2 - 0: Aucun Signal, 1: Maximum
3 - 0: Intermédiaire, 1: Maximum
Mais cet état ne sera atteint qu'à l'interruption suivante (ce n'est pas vraiment important, mais il faut le savoir).
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1970

Je vois mais je n'arrive pas à placer une formule là dessus pour obtenir le bit qu'il faut.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1971

Bon, alors il y a 256 valeurs possibles (le format 8 bit est non signé, bien sûr...). On a donc environ 85 valeurs pour chaque état de la membrane (toujours en supposant, les 60 µs bien sûr...).
Avec ça, tu fais subir à chaque octet le traîtement suivant:
- Tu le transforme en une valeur entre 0 et 2
- Comme tu connais la valeur pour l'octet précedent, tu fais une soustraction
- Selon le résultat, tu connais la meilleure valeur à attribuer au bit.
Je pense que ça pourrair donner quelque chose de pas mal. smile
Par contre, un dernier petit truc: je ne sais pas si la membrane met aussi du temps pour monter (mais c'est certain qu'elle en met pour descendre).
EDIT: Bien sûr, il est inutile de préciser (si tout ça est correct évidemment) qu'on ne peut pas passer d'un état maximum à un état minimum instantanément (dans l'autre sens je sais pas), ce qui peut produire un résultat moins bon.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1972

Merci. smile

Donc ce que je dois faire c'est diminuer la valeur 256 pour obtenir 0,1 ou 2.
Pour ça je fait:

if (octet<85) 0
if (octet>=85 && octet<170) 1
if (octet>=170) 2

octet_avant-octet

Si 0 alors bit=0
Si 1 alors ?
Si 2 alors bit=1

Pour ce qui est du bruit de fond je dirait plutôt que c'est un souple c'est pas une simple fréquence, c'est du bruit d'assez grand volume, sous ce volume est joué le WAV.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1973

Si 0 alors bit=0
Si 1 alors ? Si 2 alors bit=1
En fait, tu obtiens une valeur entre -2 et 2, donc c pas exactement ça. Par contre pour le cas 0, je n'ai rien de mieux à te proposer que la comparaison avec 128 (n'oublie pas de mettre l'état à jour en conséquence)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1974

J'ai fait ceci:

b=octet en cours
tmp=variable temporaire
dernier=valeur de l'octet d'avant (entre 0 et 2)

tmp=b;

if (b<85) b=0;
else if ((b>=85) && (b<170)) b=1;
else if (b>=170) b=2;
if ((dernier-b)<0) liste[a]=0;
else if ((dernier-b)>0) liste[a]=0;
else if (tmp>(128+8)) liste[a]=0;
else liste[a]=1;

dernier=b;

J'ai toujours ce bruit derrière, comme si on avait mal réglé une station de radio.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1975

GoldenCrystal
: Par contre, un dernier petit truc: je ne sais pas si la membrane met aussi du temps pour monter (mais c'est certain qu'elle en met pour descendre).
À mon avis elle met beaucoup plus de temps à decendre qu'à monter.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

1976

geogeo :
tmp=b;

if (b<85) b=0;
else if ((b>=85) && (b<170)) b=1;
else if (b>=170) b=2;
if ((dernier-b)<0) liste[a]=0;
else if ((dernier-b)>0) liste[a]=0;
else if (tmp>(128+8)) liste[a]=0;
else liste[a]=1;

dernier=b;

Tout ça peut s'optimiser:
tmp = b;
//b = (b + (b << 1)) >> 8; // C'est peut-être plus exact que plusieurs if
b = (b >> 7) + (b >> 8); // Optimisation barbare :p
if ((dernier - b) > 0)
  liste[a]=0;
else if ((dernier - b) < 0)
  liste[a]=1;
else {
  tmp = tmp >> 7;
  liste[a] = tmp;
  // Il ne faut pas oublier que l'état varie selon le bit
  tmp = tmp?1:-1;
  b = dernier + tmp;
  if (b > 2)
    b = 2;
  if (b < 0)
    b = 0;
}
dernier = b;

EDIT: corrigé
EDIT2: J'ai même transformé le * 3 alors, là ça devrait être optimisé.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1977

Ce n'est carrément pas optimisé! Il y a nettement plus de calculs que dans l'original. Ton code est certainement plus lent et probablement aussi plus gros.

Et quelle idée de diviser par 256 avec div. roll
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

1978

Il y a nettement plus de calculs que dans l'original
LEs calculs de la fin, je les ai rajoutés parce qu'il me semble que c'est nécéssaire.
Et quelle idée de diviser par 256 avec div
A oui, en effet, j'avais oublié que c'était une puissance de 2. Je vais corriger...
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

1979

Je vais essayer, j'avais mis plusieurs if pour voir ce que ça donné.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

1980

Sur mon programme, bien que les données sont totalement différentes, j'ai toujours le même son inaudible. Je vais voir ce que ça donne avec polysnd.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes