1

Voilà mon problème:

On connaît 3 paramètres, le début dans le temps d'un évenement, le lettre de l'évenement et ça durée. Le problèmes est que les évenements peuvent se dérouler en même temps et terminer n'importe comment.

Voici une série:

Debut:             Durée:              Evenement:
-------              --------             --------------

12                  3                       A
12                  25                      B
12                  25                     C
16                  3                       D


Malheuresement les données sont linéaire dans le temps et il n'est possible d'avoir plusieurs évenements en même temps.
Par conséquent je voudrais trouver un algo capable de dresser une liste de cette façon:

Evénement, durée....

Dans le cas de cette liste ça donnera ça:
A,1     ;Début de A               écoulé  1
B,1     ;Début de B                       2
C,1     ;Début de C                       3
D,1     ;Début de D             Fin de A  4 
B,1     ;                                 5
C,1     ;                                 6
D,1     ;                        Fin de D 7
B,1     ;                                 8
C,1     ;                                 9
B,1     ;                                 10
C,1     ;                                 11
B,1     ;                                 12
C,1     ;                                 13
B,1     ;                                 14
C,1     ;                                 15
B,1     ;                                 16
C,1     ;                                 17
B,1     ;                                 18
C,1     ;                                 19
B,1     ;                                 20
C,1     ;                                 21
B,1     ;                                 22
C,1     ;                                 23
B,1     ;                                 24
C,1     ;                                 25


J'arrive pas à savoir où commencer pour aborder ce problème.
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.

2

Ben je vois pas le problème : tu lis les notes au fur et à mesure, et tu crées des évenements 'début de note' et 'fin de note' pour chaque note dans une liste spéciale, et ensuite quand tu as fini tu tries la liste d'événements par ordre chronologique, non?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

3

je comprend pas trop ce que tu veux faire
http://membres.lycos.fr/pingooz/
Un cafe et deux sucres

4

J'oubliais, si tu ne veux pas avoir plusieurs événements en même temps tu peux faire une dernière passe après le tri :

void Passe3(EV *liste,int num) {
  int seuil=0;
  int i=num;
  while (i--)
    if (liste->position<seuil) liste->position=seuil;
    seuil=liste->position+1;
    liste++;
  }
}


ou si tu veux juste éviter que deux événements d'un même type ne tombent en même temps, tu peux faire un tableau seuil[NB_EVENEMENTS] et utiliser seuil[liste->type] au lieu de seuil...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5

Ben je vois pas le problème : tu lis les notes au fur et à mesure, et tu crées des évenements 'début de note' et 'fin de note' pour chaque note dans une liste spéciale, et ensuite quand tu as fini tu tries la liste d'événements par ordre chronologique, non?


C'est aussi simple que ça???

J'auaris du mettre autre choses que événements. L'ordre des évenements on s'en fichier, le but est de:
Debut: Durée: Evenement:
------- -------- --------------
12 3 A
12 25 B
12 25 C 16 3 D

A,1 ;Début de A écoulé 1
B,1 ;Début de B 2
C,1 ;Début de C 3
D,1 ;Début de D Fin de A 4
B,1 ; 5
C,1 ; 6
D,1 ; Fin de D 7
B,1 ; 8
C,1 ; 9
B,1 ; 10
C,1 ; 11
B,1 ; 12
C,1 ; 13
B,1 ; 14
C,1 ; 15
B,1 ; 16
C,1 ; 17
B,1 ; 18
C,1 ; 19
B,1 ; 20
C,1 ; 21
B,1 ; 22
C,1 ; 23
B,1 ; 24
C,1 ; 25


Les ; sont des commentaires, ec qui compte c'est de raliser la liste suivante: évenement, durée, évenement, durée...
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.

6

Ah, OK! Je me disais aussi que la question était bizarre grin

En gros, tu veux jouer des sons de fréquences différentes de manière intermittente, non? (une sorte de dithering)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

7

En gros, tu veux jouer des sons de fréquences différentes de manière intermittente, non? (une sorte de dithering)


En quelque sorte c'est ça, je connais pas ce terme dithering.


Je cherche un algo mais rien. Je viens d'ajouter un autre élement à ma liste, "fin de la note".

Donc comme élements j'ai:
-Début de la note
-Durée de la note
-Nom de la note
-Octave de base
-Fin de la note
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.

8

> je connais pas ce terme dithering.
Je ne pense pas que ça soit très employé dans ce contexte précis gni


Si vraiment tu tiens à faire ce que tu dis, il suffit de faire un truc du style :
for (temps_écoulé...) {
  int tentatives=0;
  do {
    numéro_note++;
    if (numéro_note>=nombre_notes) {
      numéro_note=0;
      if (++tentatives>=2) { numéro_note=-1; break; }
  } while (!note[numéro_note].active);
  putc(numéro_note);


Mais l'idéal serait de faire du vrai son polyphonique, et ce n'est pas très difficile. L'intérêt aussi du son polyphonique est de pouvoir contrôler le volume des notes.

En gros mon idée est de XORer les différentes voies ensemble, et une voie donnée serait représentée par une onde carrée de la forme :
--------               --------               
       |              |       |              |
       |              |       |              |
       |              |       |              |
       ----------------       ----------------
<-----><--------------><-----><-------------->
   a          b           a          b

avec a+b=période de l'onde=K/fréq_onde, et a/b=volume (compris entre 0 et 0.5).

Et l'idéal serait que a et b ne soient pas entiers, mais plutôt des nombres à virgule fixe (=> fréquence et volume quelconque possible).

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

9

C'est pas ce que je fait en XORant les voies, a,1,b,1,a,1,b,1...?

Pour le volume je comprend ce que tu dis mais ce n'est pas un de mes objectif pour l'instant. Le convertisseur doit s'occuper de tout ça, c'est ne pas la librairie de faire ça, physiquement j'ai 2 voies.


Ah oui, j'ai oublié de dire que les pause ne sont pas explicitement marqué. Une pause se repére de cette façon:

Note débute à 192, d0_5, temps de la note: 80
Note débiute à 300,...

Donc ici on a une note do_5 de 80 en durée puis une pause qui débute en 272 avec une durée de 28.
Aussi les notes ne sont pas aligné, il peux venir une varaition de tempo.


Je programme ça sous VisualBasic, je pense pas que l'algo que tu m'a donné soit réalisable???

J'ai pensé qu'en ordonnant de cette façon:
N=Note simple
P=PolyNotes avec les succession de notes et la durée.

Voilà le type de données que je doit analyser et transformer.

http://perso.wanadoo.fr/tisofts/divers/test.txt
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.

10

> C'est pas ce que je fait en XORant les voies, a,1,b,1,a,1,b,1...?
Je ne crois pas que tu XOR les deux voies, je croies que tu alternes 1/100 de seconde une note puis 1/100 de seconde une autre non?

Ce dont je te parle s'écrirait 'mixer(voie1,voie2)=(voie1^voie2)', autrement dit tu joues les deux voies en même temps.

> Pour le volume je comprend ce que tu dis mais ce n'est pas un de mes objectif pour l'instant. Le convertisseur doit s'occuper de tout ça
Avec ma méthode, ça ne complique pas les choses de rajouter la volume : au lieu de stocker la période = a+b, tu stockes à la fois a et b.

> c'est ne pas la librairie de faire ça
Ben si, aussi roll (même si le convertisseur doit aussi le gérer)

> physiquement j'ai 2 voies.
Donc tu ne mélange pas plusieurs sons différents sur un même canal?

> Ah oui, j'ai oublié de dire que les pause ne sont pas explicitement marqué.
Oui, en MIDI c'est le cas, mais je suppose que ton format on-calc met les pauses explicitement, non?
> Aussi les notes ne sont pas aligné, il peux venir une varaition de tempo
Même remarque, tu stockes le temps sans te préoccuper du tempo, ça simplifie beaucoup les choses on-calc (en nb de déclenchement de l'int5 par exemple)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

11

Je ne crois pas que tu XOR les deux voies, je croies que tu alternes 1/100 de seconde une note puis 1/100 de seconde une autre non?


En effet j'alterne. Mais je comrpend pas comment XORer les voies, tu veux juste dire faire un xor avec la note1 et 2?
Avec ma méthode, ça ne complique pas les choses de rajouter la volume : au lieu de stocker la période = a+b, tu stockes à la fois a et b.


En effet, je comprend avoir un volumùe mais je comprend pas comment l'appliquer. Je dois modifier la librairie pour faire changer le volume??
Donc tu ne mélange pas plusieurs sons différents sur un même canal?


Non, bien sûr que non. Je pense réelement que ça ne soit pas la librairie qui fasse ça mais plutot les données.
Oui, en MIDI c'est le cas, mais je suppose que ton format on-calc met les pauses explicitement, non?


Les pauses sont explicte puisque mon format et:

note, durée, note, durée...

Si note=0 alors pause.
Même remarque, tu stockes le temps sans te préoccuper du tempo, ça simplifie beaucoup les choses on-calc (en nb de déclenchement de l'int5 par exemple)


Pour la variation de tempo c'est pas un problème, puisque qu'un simple calcule sur les durées suffit.


Les données sont simple car très faicle à lire par la librairie et prennent moins de ressources CPU et surtout une grande économie en mémoire.
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.

12

> En effet j'alterne. Mais je comrpend pas comment XORer les voies, tu veux juste dire faire un xor avec la note1 et 2?
Non, je parle d'un XOR au niveau Wave. Quand un ordinateur joue deux sons à la fois, il fait la somme des deux Wave ; ici, comme c'est du 1 bits, mieux vaut prendre le XOR des deux.

> En effet, je comprend avoir un volumùe mais je comprend pas comment l'appliquer. Je dois modifier la librairie pour faire changer le volume??
Tu as vu mon schéma avec l'onde carrée? L'idée est de jouer sur les paramètres a et b de l'onde pour modifier le volume et/ou la fréquence.

> Pour la variation de tempo c'est pas un problème, puisque qu'un simple calcule sur les durées suffit.
Oui mais tu gagnes du temps si tu le fais sur PC (ça évite des multiplications, puisqu'elles sont très lentes)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

13

> Tu as vu mon schéma avec l'onde carrée? L'idée est de jouer sur les paramètres a et b de l'onde pour modifier le volume et/ou la fréquence.
Tu parles donc de wav 1 bit ? je crois qu'il a abandonné cette solution (il y avait une fréquence indésirable à 8kHz lors de l'écoute).
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

14

Au dela de 1 bit, cette fréquence existe, j'ai pas abandonné le WAV 1 bit, j'utilise ça en ce moment dans PolySnd v2.0. smile
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.

15

Pour XORer les notes je pense faire un XOR entre les fréquences des notes, ça risque de bien fonctionner?
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.

16

ouh comme c pas bô ça. Si tu as une fréquence de 300 et une fréquence de 256, tu te retrouves donc avec une fréquence de 44 ?!
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

17

C'est entre les données (0 ou 1) qu'il faut faire ton XOR!
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é

18

C'est entre les données (0 ou 1) qu'il faut faire ton XOR!


0 ou 1, j'ai que des fréquences!
Tu parle de quelle donnée.
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.

19

Tiens ce soir j'ai fait mumuse avec la conversion 16 bits -> 1 bits, j'ai déjà réussi à pas mal améliorer le son top

> Pour XORer les notes je pense faire un XOR entre les fréquences des notes, ça risque de bien fonctionner?
erf, pas vraiment non roll

Bon, on va déjà se placer dans le cas d'un synthétiseur sur PC.
La formule qui donne la valeur de l'onde en fonction du temps pour une note de fréquence f1 est :

g1(t) = cos(2*Pi*f1*t)

Pour la fréquence f2, l'onde est :

g2(t) = cos(2*Pi*f2*t)

Si tu veux superposer les deux sons, tu fais :

g(t) = g1(t)+g2(t) = cos(2*Pi*f1*t) + cos(2*Pi*f2*t)

(tu remarques qu'on est obligés d'additionner après les cosinus et pas avant!)

Sur TI, on est obligé de ne prendre que le signe du cosinus, donc on a :

g1(t) = sgn(cos(2*Pi*f1*t))
g2(t) = sgn(cos(2*Pi*f2*t))

où sgn(x) = 0 si x<0 et 1 si x>=0

Mais on n'a que deux valeurs, 0 et 1. Donc si on prend la somme, on pourra tomber sur la valeur 2 : pas cool, donc on va devoir poser la convention '2 = 0' grin
Or la somme avec '2 = 0' correspond parfaitement à XOR, donc le signal correspondant à la superposition sera :

g(t) = g1(t) ^ g2(t) = sgn(cos(2*Pi*f1*t)) ^ sgn(cos(2*Pi*f2*t))

qui ne se traduit pas en modification sur les fréquences, mais qui se traduit en opérations sur les données qu'on envoie au port I/O : on mélange juste les résultats que donneraient les voies si elles étaient indépendantes...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

20

Mais ça complique tout, je pensais travaillé juste en changeantt la fréquence.
Ce que tu essaye de dire c'est à mpa librairie de calculer cette chose et de trouver la bonne fréquence. Mais ça prend énormément de temps je trouve.
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.

21

Meuh non. Si tu te débrouilles bien c'est beaucoup plus rapide de lire du MIDI que de lire un Wave, et comme la lecture de Wave occupe moins de 20% du CPU...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

22

Si tu veux superposer les deux sons, tu fais :
g(t) = g1(t)+g2(t) = cos(2*Pi*f1*t) + cos(2*Pi*f2*t)

Tu est sûr de ça ? Il me semble plutôt que c'est une moyenne. D'ailleurs si tu ne divises pas par deux ==> risque dépassement
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

23

Mais tu est bien d'accord quand changeant l'état du port plus ou moins longtemps on obtient une fréquence, dans le cas de PolySnd j'ai 32768 fréquences différente. Dans le cas d'une note c'est juste une fréquence bien précise, par exemple un la à 440 Hz mais si on joue 2 notes en même temps c'est une autre fréquence? Donc il suffirait dans le convertisseur de trouver cette fréquence.

20% du CPU...


eek
Moi c'est 45% pour un MIDI sur les 2 voies.
Tu ferais comment pour les données d'un MIDI, ça serait quoi ton format?
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.

24

Oui, tu normalises après roll J'ai omis les amplitudes de g1 et g2 pour simplifier.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

25

> Mais tu est bien d'accord quand changeant l'état du port plus ou moins longtemps on obtient une fréquence, dans le cas de PolySnd j'ai 32768 fréquences différente. Dans le cas d'une note c'est juste une fréquence bien précise, par exemple un la à 440 Hz mais si on joue 2 notes en même temps c'est une autre fréquence? Donc il suffirait dans le convertisseur de trouver cette fréquence.
Non ce n'est pas une autre fréquence... Sinon on ne s'embarrasserait pas avec des sons wave et on utiliserait une représentation 'fréquence en fonction du temps' tongue

Mathématiquement, ça se démontre facilement puisque avec g1(t)=cos(k1*t), on a g1''(t)=-k1^2*g1(t) (dérivée seconde de g1), autrement dit si une onde est répresentable par une fréquence, le rapport g1''/g1 est constant.

Or g''(t) = g1''(t)+g2''(t) = -k1^2*g1(t)-k2^2*g2(t).
Supposons que g ait une fréquence, telle que 2*Pi*f=k.
Alors g''(t) = -k^2*g(t) = -k^2*g1(t)-k^2*g2(t).

On peut démontrer que si f1!=f2, l'écriture se décompose de manière unique sous forme de somme de g1(t) et de g2(t), et alors les coefficients en rouge et en bleu sont égaux : -k1^2=-k^2 donc k=k1 et -k2^2=-k^2 donc k=k2.
Donc k1=k2 : c'est faux! Donc il n'y a pas de fréquence correspondant à la somme des deux signaux.

Moi c'est 45% pour un MIDI sur les 2 voies. Tu ferais comment pour les données d'un MIDI, ça serait quoi ton format?

Un truc du genre, en notant t0=1/16000 s :
[t=5*t0 : voie1 période=20+(123/256)*t0 pan=CENTRE]
[t=10*t0 : voie2 période=20+(123/256)*t0 pan=CENTRE]
[t=1280*t0 : voie3 période=50+(21/256)*t0 pan=GAUCHE]
[t=2500*t0 : voie1 période=-1]
[t=2510*t0 : voie2 période=-1]

Pour les fréquences je ne sais pas s'il vaut mieux avoir une partie fractionnaire sur 8 bits ou 16 bits...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

26

Et oui encore un problème simple que j'arrive pas à résoudre.

Voilà le pb, j'ai une liste qui ce comporte de cette façon:
note, durée
note,durée
...

Voici un exemple de liste:
_e7,0.5
_d5,0.5
_e7,0.5
_d5,0.5
pause,1
pause,1
_d4,0.33
_a5,0.33
_c2,0.33


Et j'essaye d'obtenir ça:
_e7,1
_d5,1
pause,1
pause,1
_c2,1

Les notes doivent avoir une durée de 1 mais ça doit être correcte.
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.

27

Euh atends là, y'a
_e7,0.5
_d5,0.5
_e7,0.5
_d5,0.5
qui se transforme en
_e7,1
_d5,1
!?!?!?!?
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

28

Oui c'est ça.
En additionnant les 4 prremière durée ça fait 2, mais je ne veux que des durée de 1, par conséquent je passe de 4 notes à 2 notes.
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.

29

Pas d'idées? cry
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.

30

Mais ça risque de fouttre en l'air complètement certains sons çà, non ? Si tu as CDCD tu le transformes en CD
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