60

boaf c'est pas compliqué pourtant. et puis t'as eu le temps pour rééchantilloner tes samples, alors tu peux bien remplacer cette fonction par un machin qui multiplie par des cosinus nan? tongue

(et je préfère passer mon temps à mélager des fréquences plus élevées que de l'audio grin)

61

C'est fou le format wav, le chunck "fmt " a plusieurs champs qui... ne servent vraiment a rien :

Average Bytes Per Second
This value indicates how many bytes of wave data must be streamed to a D/A converter per second in order to play the wave file. This information is useful when determining if data can be streamed from the source fast enough to keep up with playback. This value can be easily calculated with the formula:
AvgBytesPerSec = SampleRate * BlockAlign

Block Align
BlockAlign = SignificantBitsPerSample / 8 * NumChannels
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

62

le seul truc utile du fmt est la taille de samples, le nb de canaux et la freq d'échantillonnage grin

63

squalyl (./58) :
est bien d'accord en fait, le pitch shifting c'est de la modulation BLU,
Non. Le pitch-shifting (et le réenchantillonnage) préservent les relations de proportionnalité entre les fréquences des sinus d'entrée, pas la modulation BLU.

Godzil > les relations que tu as citées ne sont vraies que pour des fichiers non compressés. Pour des fichiers compressés, le calcul n'est pas forcément trivial, c'est pour ça que ces champs existent smile
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

64

Zerosquare (./63) :
Godzil > les relations que tu as citées ne sont vraies que pour des fichiers non compressés. Pour des fichiers compressés, le calcul n'est pas forcément trivial, c'est pour ça que ces champs existent smile

C'est vrai, j'ai oublié ce détail. En meme temps, du wav pour du compressé... comment dire wink
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

65

En meme temps, de l'avi pour du compressé... comment dire wink


0²: ah OK maintenant je vois ce que tu veux dire. Ma méthode ne marche pas en effet, il faut étirer le spectre, pas le déplacer.

Il doit alors être nécessaire d'utiliser une méthode à base de FFT, homothétie du spectre, puis FFT inverse.
Mon truc fait une translation du spectre.

Du coup c'est *nettement* plus complexe, my bad

66

Je squatte un peu, mais comme c'est du wave généré ^^

je fait mumuse avec le source de zerosquare:


[flash=200,20]http://www.mirari.fr/module/file/player/dewplayer.swf?mp3=http%3A%2F%2Fwww.mirari.fr%2F/KUyD[/flash]

trigic (oui ça n'a rien d'extraordinaire, si ce n'est que la seconde voix est fait a l'oreille et pas a partir d'un midi embarrassed )
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

67

On a déjà testé (j'ai corrompu un collègue ^^) d'étirer le résultat de la FFT puis de regénérer les échantillons à partir de ça pour obtenir toutes les hauteurs de notes, sauf qu'on l'a pas fait en temps réel. Mais quand on étire la FFT, ça crée un "trou" au centre et le son au final se retrouve sacrément déformé. Je ne sais pas comment on fait pour que ça fonctionne correctement.

Sinon je viens d'essayer de remplacer mon interpolation au plus proche par une interpolation linéaire, et je n'ai pas l'impression que ça change quoi que ce soit au résultat final. Je suis au boulot et je n'ai qu'un casque pourri, peut-être que c'est juste que je n'arrive pas à entendre la différence. Vous en voyez une vous ?

http://pub.mirari.fr/media/music/wave/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

68

Oué. Rien que sur le ronronnement, c'est flagrant. Le reste on entend la différence aussi.
(je suis au boulot aussi mais j'ai un bon casque, c'est juste les mousses qui tombent en petit morceaux triso)

69

./66 : hehe

Y'a aussi la version à 4 canaux que j'avais implémentée sur un microcontrôleur : [flash=200,20]http://www.mirari.fr/module/file/player/dewplayer.swf?mp3=http://www.mirari.fr/3oXg[/flash]

Et pour montrer à Zeph ce qu'on peut faire en gérant quelques effets MIDI simples (volume, expressivité, réglage de la stéréo), voici un de mes vieux synthés softs à base de signaux carrés : [flash=200,20]http://www.mirari.fr/module/file/player/dewplayer.swf?mp3=http://www.mirari.fr/VtMI[/flash]


./67 : je te dis ce que j'en pense une fois que j'aurai écouté ^^
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

70

Zerosquare (./69) :
Y'a aussi la version à 4 canaux que j'avais implémentée sur un microcontrôleur : [flash=200,20]http://www.mirari.fr/module/file/player/dewplayer.swf?mp3=http://www.mirari.fr/3oXg[/flash]

hehelove

Et pour montrer à Zeph ce qu'on peut faire en gérant quelques effets MIDI simples (volume, expressivité, réglage de la stéréo), voici un de mes vieux synthés softs à base de signaux carrés : [flash=200,20]http://www.mirari.fr/module/file/player/dewplayer.swf?mp3=http://www.mirari.fr/VtMI[/flash]

Loom love (enfin c'est le lac des cygnes, mais ce midi viens de loom j'en suis sur wink)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

71

./67 : bon, tu dois avoir un bug dans ton calcul d'interpolation, la différence devrait être nettement plus audible que ça (en particulier sur la basse).

./70 : non, c'est bien une transcription de la version d'origine, mais oui, c'est grâce à Loom que j'y ai pensé oui
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

72

je trouve que sur la basse c'est flagrant justement cheeky

73

Zerosquare (./69) :
./66 : hehe.gif


Le plus "dur" a mettre en place dans ton code a été de rendre la seconde voix continue alors que la premiere ne l'est pas (et accesoirement, qu'il n'y ai pas d'acoup dans les signaux généré sur la seconde voix)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

74

Euh tu sais, c'était avant tout un exercice d'obfuscation ce truc, comme je te l'ai dit c'est pas franchement une bonne base pour faire un vrai synthé soft grin
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

75

sa m'amuse et me "detend" le cerveau wink
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

76

./72 > Oui moi aussi
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

77

Zerosquare (./3) :
Si tu veux maximiser le volume, tu as deux solutions :
Le but est plutôt de maximiser la résolution, non ? (c’est-à-dire profiter des 16 bits pour avoir une meilleure approximation de la courbe plutôt que de rester sur les 5 bits de poids faible).
Zerosquare (./3) :
celle que tu as évoquée, mais qui a pour inconvénient que tu dois générer d'abord tout le morceau pour trouver les maxima, et aussi que le volume de sortie dépendra du morceau joué
Mais avec la méthode que tu proposes avant (on divise le maximum par n où n est le nombre d’instruments) aussi, le volume de sortie dépend du morceau joué, non ?
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

78

Sally (./77) :
Le but est plutôt de maximiser la résolution, non ? (c'est-à-dire profiter des 16 bits pour avoir une meilleure approximation de la courbe plutôt que de rester sur les 5 bits de poids faible).
Les deux sont liés, mais même si la résolution était infinie, un volume de sortie trop faible oblige l'utilisateur à augmenter le volume manuellement (ce qui est déjà casse-pieds), avec le risque de s'exploser les oreilles quand il lancera une application qui aura un volume plus élevé tongue
Sally (./77) :
Mais avec la méthode que tu proposes avant (on divise le maximum par n où n est le nombre d'instruments) aussi, le volume de sortie dépend du morceau joué, non ?
Pas si tu définis n une fois pour toutes ; de toute façon, en général, le nombre maximal de notes simultanées est fixé à l'avance, rien que pour avoir une consommation CPU prévisible et ne pas devoir faire d'allocation mémoire pendant la lecture (si c'est du mixage hardware, c'est pareil, c'est imposé par le hardware).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

79

Bon, Zerosquare m'ayant très justement fait remarquer que j'avais inversé deux facteurs et donc que ça n'avait donc que très peu de chances de marcher (hem), je viens de refaire le test et effectivement c'est nettement mieux grin

Pas d'interpolation : [flash=200,20]http://www.mirari.fr/module/file/player/dewplayer.swf?mp3=http%3A%2F%2Fpub.mirari.fr%2Fmedia%2Fmusic%2Fwave%2Fout_nearest.mp3[/flash]
Interpolation linéaire : [flash=200,20]http://www.mirari.fr/module/file/player/dewplayer.swf?mp3=http%3A%2F%2Fpub.mirari.fr%2Fmedia%2Fmusic%2Fwave%2Fout_linear_fixed.mp3[/flash]

(et interpolation buggée : [flash=200,20]http://www.mirari.fr/module/file/player/dewplayer.swf?mp3=http%3A%2F%2Fpub.mirari.fr%2Fmedia%2Fmusic%2Fwave%2Fout_linear.mp3[/flash])

Du coup mes deux résultats précédents étaient effectivement différents, mais le meilleur des deux n'était pas celui que j'attendais triso
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

80

ah oui en effet grin

c'est quand même mieux grin

les basses sont plus basses au passage grin

81

Effectivement c'est beaucoup mieux top
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

82

Va falloir gérer le sustain et quelques autres effets maintenant wink
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

83

t'aurais un lien vers un tuto pour ça ? pour beaucoup des effets, je ne sais même pas quel est le résultat souhaité ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

84

Tu peux trouver des infos ici, s'il te manque encore des choses j'ai des bouquins dans lesquels je peux fouiner ^^
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

85

En meme temps, a pars le pitch bend/porta ou le sustain, je sais pas si bcp d'effet midi sont courrament utilisé
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

86

Les effets à implémenter en priorité, par ordre d'importance plus ou moins décroissante :

- lier le volume à la vélocité des notes (si tu ne le fais pas déjà)
- volume
- panoramique
- pitch bend
- expressivité (c'est grosso modo un contrôle de volume secondaire ; en général, le volume sert à régler le niveau sonore global, alors que l'expressivité est lié au jeu de l'instrument et peut varier en temps réel)

Avec ça t'as déjà une bonne base.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

87

Le sustain est important je pense quand meme
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

88

Ché pas, je l'ai jamais implémenté (#flemme#) et ça ne semblait pas poser de problème. Mais ce n'est pas difficile à faire smile
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

89

Haaaannn!! On ne peux pas faire de pédale avec ton floppynator?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

90

Le sustain est assez secondaire à implémenter, parce qu'il n'a pas un comportement idéal : il tient les notes artificiellement dans une boucle, au lieu d'avoir un vrai effet de résonance. C'est pour ça qu'en règle générale les pianos numériques ont le sustain, plus un autre contrôle pour la pédale forte (je ne sais plus si c'est un contrôle GM ou pas, par contre).
avatar