DDS ou Variable sample rate

Les secrets de cuisine en soustractive, additive, Karplus-Strong, FM, etc...
Avatar de l’utilisateur
Salmacis
Messages : 588
Inscription : 25 janv. 2012, 13:30

DDS ou Variable sample rate

Message par Salmacis »

Je me demande encore quels sont les avantage et inconvénients de ces deux possibilités.
Il me semble que le variable sample rate est supérieur en terme d'aliasing pourtant beaucoup de personnes utilisent de DDS
Pourquoi ?

Un petit bout d'article expliquant la différence

http://electricdruid.net/wavetable-oscillators/" onclick="window.open(this.href);return false;
Avatar de l’utilisateur
baloran
Messages : 2179
Inscription : 29 févr. 2012, 13:46
Localisation : Pas de Calais
Contact :

Re: DDS ou Variable sample rate

Message par baloran »

De mon point de vue, le DDS est plus simple à mettre en oeuvre, via du code tu traites facilement de nombreux problèmes. Exemples :
L’interpolation : avec des tables de 1024 échantillons soit 10 bits , tu peux utiliser un accumulateur de phase sur une plus grande résolution (16 bits par exemple) Dans ce cas, l'échantillon finale sera un ratio entre 2 échantillons voisins. Tu augmentes ainsi la résolution à la volée, très pratique pour les très basses fréquences. Itou pour la mise en oeuvre d'un Glide etc...

Le morphing : avec le DDS tu peux coder en quelques lignes du morphing d'ondes. En Wavetable Oscillators, cela me semble plus complexe, sauf à utiliser un adressage "variable" de la mémoire d'onde.

Maintenant, c'est clair pour les hautes fréquences, le variable sample rate est séduisant. On pourrait même imaginer une sorte d'oscillateur VCO + DCO ... :hum: :palm:
Quand l'été est si pluvieux ou l'hiver si froid...
SmashedTransistors
Messages : 216
Inscription : 02 avr. 2015, 00:33

Re: DDS ou Variable sample rate

Message par SmashedTransistors »

Si tu utilises du variable rate, tu devras avoir un convertisseur numérique analogique par oscillateur.

Avec les méthodes à fréquence d'échantillon fixe, on peut mixer plusieurs oscillateurs en numérique et utiliser un convertisseur commun.
Par contre, il faudra gérer l'aliasing.
Il existe plusieurs méthodes, on appelle souvent celle du DDS "MipMapping" en référence à une technique similaire utilisée pour les textures en synthèse d'image:
on utilise un jeu de tables pré-filtrées pour éviter l'aliasing lorsqu'elles sont rejouées.
Avatar de l’utilisateur
Salmacis
Messages : 588
Inscription : 25 janv. 2012, 13:30

Re: DDS ou Variable sample rate

Message par Salmacis »

Merci à tous les deux pour vos réponses

Effectivement pour le variable rate c'est 1 convertisseur pas voie mais du coup tu ne fais pas de calcul sur le cumul des voies avant le convertisseur.
Pour le wave morphing je ne vois pas la difficulté en variable rate. Il est tous aussi simple d'effectuer le morphing dans un tableau et d'envoyer ce tableau au
convertisseur à différentes fréquences ?

Pour le variable rate j'ai l'impression de perdre en qualité sur les basses.
Avatar de l’utilisateur
baloran
Messages : 2179
Inscription : 29 févr. 2012, 13:46
Localisation : Pas de Calais
Contact :

Re: DDS ou Variable sample rate

Message par baloran »

Salmacis a écrit :Pour le wave morphing je ne vois pas la difficulté en variable rate. Il est tous aussi simple d'effectuer le morphing dans un tableau et d'envoyer ce tableau au convertisseur à différentes fréquences ?
Dans ton projet tu es "100% soft" ou hardware ? Si tu es "hardware", je veux bien voir la solution d'un morphing entre deux tables adressables à la fois par le compteur et par le CPU, cela ne me semble pas simple du tout :hum:
Et si tu es "100% soft", tout est imaginable, même l'utilisation d'un seul convertisseur D/A.
Quand l'été est si pluvieux ou l'hiver si froid...
SmashedTransistors
Messages : 216
Inscription : 02 avr. 2015, 00:33

Re: DDS ou Variable sample rate

Message par SmashedTransistors »

Avec un échantillonnage fixe, en soft, le problème c'est l'aliasing.
La base de l'antialiasing, c'est le multi échantillonnage dont on a déjà causé, mais dès que tu voudras faire de la synchro ou de la modulation de fréquence (ou de phase) cette méthode ne suffira pas.
Quand on fait de l'analogique, on ne se rend pas toujours compte des problèmes que ça représente. C'est au moins aussi prenant que de réaliser un exponentiateur compensé en température qui assure sur 8 octaves.

Le traitement de l'aliasing est un vaste sujet qui rend fou (et un de mes violons d'Ingres mon-bel-algo-d'anti-alias-pour-les-oscillos-modulés-et-les-distos :smoke: ).

Avec un échantillonnage variable, tu n'auras pas du tout d'aliasing, même si tu t'adonnes à la synchro sauvage et à toutes sortes de modulations malhonnêtes. C'est l'énorme avantage d'avoir un pied dans le numérique et l'autre dans l'analogique.
Pas d'aliasing certes, mais par contre tu peux avoir de jolis "sur harmoniques" ("imaging") si ta table est courte (genre 32 échantillons) et pas interpolée.
Et ça, ça peut être très intéressant (son typé des vénérables ancêtres semi numériques genre RMI/synclav).

Tout ça, ça affecte le haut du spectre.

A mon avis, pour le bas du spectre, les différences seront plutôt liées à la partie analogique après le convertisseur.


En ce qui concerne le "morphing", tu penses à un crossfade/mix ou à quelque chose de plus exotique/amusant (fenêtrage "PWM" entre les deux formes d'ondes par exemple: tu switches d'une table à l'autre pendant le cycle avec un ratio controllable) ?
Pistol
Messages : 171
Inscription : 21 déc. 2010, 22:56

Re: DDS ou Variable sample rate

Message par Pistol »

Je profite de ce thread pour vous soumettre une question qui m'est venue à la lecture du service manual du sampler S950: j'ai l'impression que les 8 voies fonctionnent en variable sample rate, est-ce bien le cas?
Avatar de l’utilisateur
Salmacis
Messages : 588
Inscription : 25 janv. 2012, 13:30

Re: DDS ou Variable sample rate

Message par Salmacis »

SmashedTransistors a écrit : "sur harmoniques" ("imaging") si ta table est courte (genre 32 échantillons)
Table de 300 Echantillons (les 4300 waves d'adventure kid)
SmashedTransistors a écrit :En ce qui concerne le "morphing", tu penses à un crossfade/mix ou à quelque chose de plus exotique
Oui mix entre 2 tables avec un paramètre donnant le pourcentage de chaque table. Paramêtre routable sur un lfo ou autre.
Mais aussi mix entre 2 autres tables avec autre paramètre donnant le pourcentage de chaque table. Paramêtre routable sur autre lfo ou autre.
Donc wave morphing entre 4 tables
Avatar de l’utilisateur
Salmacis
Messages : 588
Inscription : 25 janv. 2012, 13:30

Re: DDS ou Variable sample rate

Message par Salmacis »

SmashedTransistors a écrit :(et un de mes violons d'Ingres mon-bel-algo-d'anti-alias-pour-les-oscillos-modulés-et-les-distos
ou la la......dur a digérer tout ca...bravo !!!!
SmashedTransistors
Messages : 216
Inscription : 02 avr. 2015, 00:33

Re: DDS ou Variable sample rate

Message par SmashedTransistors »

Salmacis a écrit :
SmashedTransistors a écrit :(et un de mes violons d'Ingres mon-bel-algo-d'anti-alias-pour-les-oscillos-modulés-et-les-distos
ou la la......dur a digérer tout ca...bravo !!!!
Heu, c'est ma faute... encore à l'état de brouillon cette doc... j'avoue que je passe plus de temps à trifouiller qu'à documenter.
Voilà un ch'titexemple c'est plus causant :
https://soundcloud.com/thierry-rocheboi ... d-tubeysat



Pour l'option Variable Rate :
Si tu fais sur 300 échantillons et que tu veux du variable rate, tu vas devoir générer une horloge variable pour ton compteur de phase (qui va compter de 0 à 299).
Si c'est un VCO, ça va être rude d'en faire un qui tourne à une fréquence 300 fois supérieure à ce qui se fait usuellement.
L'autre option c'est un DCO à la juno/deepmind.

Pas simple.

Si tu ne compte pas faire de disto ni de modulations et que tu te limites à des mélanges (beaucoup de mélanges) a priori le choix du "tout logiciel" avec MIP MAPs / multi échantillonnage est la bonne option.
On peut essayer de mettre ça à plat...

Si on récapitule les interpolations.
- interpolation entre les échantillons de la table
- interpolation/mix entre deux tables
- interpolation/mix entre deux jeux de deux tables.

Est ce que tu veux interpoler entre deux MIP MAPs ou sélectionner une MIPMAP au moment ou tu appuye sur une touche
(autrement dit, est ce que tu comptes faire des grands glides, ou beaucoup jouer sur le bend ?)
Avatar de l’utilisateur
baloran
Messages : 2179
Inscription : 29 févr. 2012, 13:46
Localisation : Pas de Calais
Contact :

Re: DDS ou Variable sample rate

Message par baloran »

:bravo: même si je ne comprends que des brides de ton travail :mdr:
Quand l'été est si pluvieux ou l'hiver si froid...
SmashedTransistors
Messages : 216
Inscription : 02 avr. 2015, 00:33

Re: DDS ou Variable sample rate

Message par SmashedTransistors »

Disons que par nature j'ai une approche très analogique: je considère le signal comme une continuité de segments (et non pas comme des échantillons isolés).
En tout cas, c'est de la gnognotte comparé au Triko et au River !
SmashedTransistors
Messages : 216
Inscription : 02 avr. 2015, 00:33

Re: DDS ou Variable sample rate

Message par SmashedTransistors »

Salut Salmacis,

Du nouveau sur ton projet ?
Perso, plus je regarde les Raspberry Pi et cousins et plus je suis tenté de me remettre au hardware.

Sur quel hardware penses tu te baser ?

A bientôt
Répondre
cron