30

Je viens de finir l'algo qui s'occupe de gérer les voies et produire les données.

En effectuant la méthode d'alternance de notes, j'obtient une note très grave et assez bizarre. Il faut que je trouve la méthode pour XORer les voies.
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.

31

geogeo: fais attention à ne pas alterner les notes trop vite, c'est peut-être ça le problème
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

32

C'est ça le problème en effet, le résultat est vraiment bien, ça fonctionne sauf que j'ai des notes bizarre. Je voudrias suivre la méthode de Pollux et donc XORer les notes mais je ne sais pas comment faire, je voudrais être éclairé sur ce sujet, depuis le début de ma librairie on m'en a parlé mais je ne comprend pas. 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.

33

> En effectuant la méthode d'alternance de notes, j'obtient une note très grave et assez bizarre.
Ca dépend de ta fréquence d'alternance roll

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

34

oups j'avais pas vu la page 2 embarrassed

Euh donc déjà pour faire la méthode du XOR ça suppose que tu utilises bchg et pas bset+bclr pour toucher au port I/O. Ensuite, bah ça revient tout simplement à jouer les deux sons en même temps (i.e dans ton interruption tu testes deux notes en même temps).

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

35

pokeIO(0x600017,1-next.timeoffset);


Je viens de faire des teste dans l'interruption en faisant clr.b $600017 ou encore 0x600017=0 ou 0xFF...

La fréquence est soit de 8 Khz ou inférieure, je vois pas comment tu fait pour ajouter 16 Khz.

next.timeoffset tu l'obtient comment pour que je test?
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.

36

Tu obtiens 8 kHz dans les deux cas? confus
Ca me paraît bizarre, tu peux regarder précisément les valeurs pour 600017=00 et 600017=FF ?

> next.timeoffset tu l'obtient comment pour que je test?
J'ai précisé que je n'avais pas encore implémenté le nouvel algo smile C'est juste une valeur qui peut valoir 1,2,3...

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

37

Je reteste avec 00 et 0xFF
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.

38

Pour 0xFF j'obtient 8 Khz.et 0x00, 69 Hz.
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.

39

> 69 Hz
grin Ouille ça fait mal...

En tout cas merci, donc ça veut dire qu'on ne pourra pas lire un wave à 16 kHz sans aucune perte de qualité, mais on aura néanmoins une assez bonne qualité normalement, et de toute façon ce sera bien meilleur que du 8 kHz. Le seul problème c'est que les wave seront incompatibles HW1/HW2 sad [hum, à moins que........ en fait si, ça devrait pouvoir se faire avec une petite perte de qualité pour les HW1]

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

40

Donc tu me dis qu'on ne peux pas avoir l'auto int n°5 à 16 Khz??
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.

41

En utilisant les infos de J89hw, on arrive pile (mais c'est pas forcément exact) à 8192 Hz alors je vois pas comment ça srait possible sans ralentir le 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

42

Oui. Mais on peut avoir l'auto-int 5 à un diviseur de 16 kHz qui en est distinct, ce qui est déjà très bien... Par exemple, si tu as le son à 16 kHz 00000110001111001000, tu peux le jouer comme :
[mettre port à 0]
[(1-5) = FC->$600017]
[mettre port à 1]
[(1-2) = FF->$600017]
[mettre port à 0]
[(1-3) = FE->$600017]
[mettre port à 1]
[(1-4) = FD->$600017]
[mettre port à 0]
[(1-2) = FF->$600017]

Mais pour jouer la fin (1000), tu as un problème puisque tu ne peux pas faire 0->$600017. Donc soit tu transformes en 1100, soit tu transformes en 0000, que tu peux jouer sans problème.


En revanche c'est sûr que ça limitera pas mal la stéréo, puisque les changements d'états pour l'un des deux ports seront bien plus fréquents sad

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

43

> En utilisant les infos de J89hw, on arrive pile (mais c'est pas forcément exact) à 8192 Hz alors je vois pas comment ça srait possible sans ralentir le programme.
Je crois qu'il ne dit pas ce qui se passe lorsqu'on met 0 dans $600017, donc non ce n'est pas précisé dans J89hw...

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

44

En effet c'est uen bonne idée mais changer la valeur de 0x600017 dans l'interruption par 0 ou 0xFF ne donne pas une fréquence de 16 Khz.
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.

45

L'idée n'est pas de changer la valeur une fois pour toutes, c'est de changer la valeur pour que le prochain lancement de l'auto-int déclenche un événement ; l'intérêt est que l'auto-int se déclenche beaucoup moins souvent, et donc on peut contrôler l'instant où on déclenchera l'interruption à 1 16000è de seconde près, sauf si cet instant est le clock suivant sad

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

46

Tu n'aurais pas une idée pour que ça fonctionne?
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.

47

En attendant je pense faire simple et ne pas me casser la tête en changeant tout PolySnd, peut être pour une prochaine version, qui sais, mais en attendant je change plus PolySnd v2.0. Donc ce que je veut dire par là c'est qu'il ne sera pas réelement possible de jouer plus de 2 voies, mais la convertion est presque parfaite, il faut juste que je trouve une note équivalente pour les PolyNotes, j'ai pensé qu'en trouvant la note moyenne des PolyNotes on pourrais avoir quelque chose de correcte.

En effet qu'en j'écoute un MIDI avec des PolyNotes, je constate à l'oreille qu'en quelque sorte il y a une note de jouée.


Au final le convertisseur est vraiment plus simple, plus besoin d'avoir un éditeur MIDI et enlever les PolyNotes... Il faudra juste choisir le track qu'on veut convertir. reste un problème majeure, la convertion est très très lente, avec mon 1,3 Ghz je met 5 mins pour convertir un MIDI de 2 mins.
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.

48

tu peux me passer la dernière version, pour que je voie ?
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

49

Celle que je fait?
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.

50

Ben, la dernière version du convertisseur midi.
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

51

D'accord je fait ça! 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.

52

http://perso.wanadoo.fr/tisofts/polysnd/midi/midiconverter.zip

Voilà c'est celui que j'auarais dû diffuser et qui est pas capable de gérer les PolyNotes...
Le nom des fichiers MIDI à ouvrir doivent faire 8 caractères, l'ouverture ne fonctionne pas toujours, il fallait que je corrige ce bug, mais en insistant ça fonctionne.

Pour fonctionner correctement il faut les DLL de VB6.
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.

53

merci smile
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

54

Tu pourras constater par toi même qu'a cause de ce mode de conversion les voies ce desynchronise, des notes manque, la qualité n'est paz top.
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.

55

Je vais vous faire un exemple de Chrono Fantasy avant avec l'ancien convertisseur et le nouveau. Y pas photo. Le nouveau manque d'amélioration des trucs sur PolyNotes...

J'ai fait la fonction d'optimisation des données, je passe de 128 Ko pour une musique en stéréo à 2Ko. grin
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.

56

erf smile pas mal wink

Si tu veux geogeo j'ai codé l'interruption principale d'un moteur basé sur le principe dont je te parlais, et on peut arriver à 16 voies sans problèmes oui Je peux la poster ici si ça t'intéresse (mais je n'ai pas fait le séquenceur pour l'instant, sachant qu'on peut potentiellement faire n'importe quoi avec ce moteur, donc je ne sais pas trop quoi mettre : notes simples, avec un volume donné, avec un pan donné, avec un vibrato, avec un pitch, avec une attaque, avec un timbre, etc... etc...)

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

57

Je suis vraiment une 'merde' à côté de toi.

Et bah, tu m'impressionne encore.
Bien sûr que je veux que tu post ça, mais ça vient pas de moi. Ca te dirait de travaillier ensemble sur ce projet? Trouver un format de donnés parfait...

Je pense que je vais m'attaquer après à PolySnd v3.0. grin
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.

58

Lui prend pas tout son temps, il a GTC à finaliser ! smile
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.

59

> Lui prend pas tout son temps, il a GTC à finaliser !
T'inquiète pas, j'aurai pas le courage de faire ça très longtemps grin
Disons que je ne ferai pas grand chose de plus que l'auto-int, peut-être un convertisseur "haute qualité" Wave -> 1 bit...

Voilà mon fichier, avec en plus qques définitions au début pour bien clarifier ce de quoi on parle.
; Vocabulaire :

; piste [track en anglais]	Correspond à peu près à un instrument MIDI
;				(en réalité à une corde d'un instrument MIDI - il peut y avoir plusieurs pistes par
;				instrument pour les accords).
;				Remarque : inutilisé par le lecteur (interne au convertisseur, et pour faciliter les
;				explications).

; voie [voice en anglais]	Correspond à un son d'une fréquence donnée.
;				Il y a souvent deux voies pour jouer une même piste, sauf si le volume est au maximum
;				pour cette voie, auquel cas il peut n'y avoir qu'une voie par piste.
;				Remarque : c'est le coeur du lecteur, c'est donc leur nombre qui sera limité par la
;				puissance du convertisseur.

;				Remarque 2 : aux voies qui correspondent à un son vient s'ajouter la voie 0 : celle
;				du séquenceur, elle ne correspond à aucun son, mais c'est elle qui va modifier le contenu
;				de toutes les autres voies pour jouer le son MIDI...

; canal [channel en anglais]	Correspond à un canal physique (canal gauche, canal droit).
;				A ne pas confondre avec une voie!

; Remarque :
; pour les pistes possédant un volume, on peut même leur donner une localisation droite/gauche ('PAN' en anglais) arbitraire
; (différente de 'tout à gauche', 'au milieu' et 'tout à droite'), mais la piste sera alors stockée sur 3 voies au lieu
; de 2.



next_action_time:
	dc.w 0
__unused1:
	dc.b 0
status:
	dc.b 0	; requires to be right before 'voices' !!!
voices:
\start_times
	dc.w time_before_run_0 (>=0)
	dc.w time_before_play_1 (>=0)
	dc.w time_before_play_2 (>=0)
	dc.w ...
\end_times
	dc.w 0	; do not modify !!!
\start_property_freq
	dc.w property_freq_0
	dc.w property_freq_1
	dc.w property_freq_2
	dc.w ...
\end_property_freq
UNUSED equ 0
\start_property_channel
	dc.w UNUSED
	dc.b property_channel_1,property_linked_1
	dc.b ...
\end_property_channel

OFFS equ \start_property_freq-\start_times
OFFS2 equ \start_property_channel-\start_times





AutoInt5:
!44
!8	move.w d0,-(a7)
!8	move.w d1,-(a7)
!12	pea (a0)
!16	move.w #$2700,sr
!8	lea status(pc),a0
!8	move.w (a0)+,d0
!20	eor.b d0,$60000e
!8	move.w (a0)+,d0		; [voice 0]
!8	cmp.w (a0)+,d0		; [voice 1]
!9	bcc \not_this_one_a1	; [voice 1]
!6	move.w -2(a0),d0	; [voice 1]
\not_this_one_a1		; [voice 1]
!8	cmp.w (a0)+,d0		; [voice 2]
!9	bcc \not_this_one_a2	; [voice 2]
!6	move.w -2(a0),d0	; [voice 2]
\not_this_one_a2		; [voice 2]
	...			; <répéter pour les autres voies>
!22	lsr.w #8,d0
!10	bne \no_8khz_limit
	addq.b #1,d0
\no_8khz_limit
!4	addq.b #1,d0
!8	move.b d0,(a0)
!4	subq.b #1,d0
!4	neg.b d0
!16	move.b d0,$600017
!8	move.w (a0),d0
!4	clr.w -(a7)
!8	sub.w d0,-(a0)		; [voice n-1]
!8	bcc \not_this_one_b(n-1); [voice n-1]
!8	move.w (a0),d1		; [voice n-1]
!16	add.w d1,OFFS(a0)	; [voice n-1]
!12	move.w OFFS2(a0),d1	; [voice n-1]
!12	eor.b d1,(a7)		; [voice n-1]
\not_this_one_b(n-1)		; [voice n-1]
!8	sub.w d0,-(a0)		; [voice n-2]
!10	bcc \not_this_one_b(n-2); [voice n-2]
	move.w (a0),d1		; [voice n-2]
	add.w d1,OFFS(a0)	; [voice n-2]
	move.w OFFS2(a0),d1	; [voice n-2]
	eor.b d1,(a7)		; [voice n-2]
\not_this_one_b(n-2)		; [voice n-2]
	...			; <répéter pour les autres voies (sauf la 0)>
!8	sub.w d0,-(a0)		; [voice 0]
!10	bcc \not_this_one_b0	; [voice 0]
	add.w OFFS(a0),(a0)	; [voice 0]
	subq.w #1,-2(a0)
	bcc \not_this_one_b0
	; ... c'est ici que les choses sérieuses commencent ...

	; ...
\not_this_one_b0		; [voice 0]
!12	move.b (a7)+,-(a0)
!12	move.l (a7)+,a0
!8	move.w (a7)+,d1
!8	move.w (a7)+,d0
!20	rte


; TIMING :
44+8+8+12+16+8+8+20+8+(8+9+6)*N+22+10+4+8+4+4+16+8+4+8+8+8+16+12+12+(8+10)*N+12+12+8+8+20

=>

t = 44+8+8+12+16+8+8+20+8+22+10+4+8+4+4+16+8+4+8+8+8+16+12+12+12+12+8+8+20+((8+9+6)+(8+10))*N
t = 336+41*N

; => on peut facilement supporter jusqu'à N=16 voies :)

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

60

Voilà un petit test avec Chrono Fantasy.

Le midi:
http://perso.wanadoo.fr/tisofts/polysnd/midi/CHRONO.MID

La conversion avec le premier convertisseur MIDI, il y a le bruit de ventillo derrière.
http://perso.wanadoo.fr/tisofts/polysnd/midi/chrono1.mp3

La conversion avec le dernier convertisseur
http://perso.wanadoo.fr/tisofts/polysnd/midi/chrono2.mp3

Je vais regarder la source plus en détails.
Ce que tu me dis dedans c'est qu'il est possible de jouer plusieurs voies mais il faut pour ça régler correctement le volume des canaux.
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.