Cette partie du forum n’est pas compatible avec les bloqueurs publicitaires
Félicitations à vous, de préférer les accès payants plutôt que la gratuité par la publicité, c’est honnorable et cohérent de votre part. Malheureusement, l’accès payant par micropaiement (qui serait d’environ 1 cent pour 20 pages consultées) n’est pour l’instant pas encore mis en place, et l’accès gratuit sans publicité, est réservé aux membres actif(ve)s du forum. En attendant, si vous souhaitez poursuivre votre visite chez nous, vous pouvez ajouter le site à votre liste blanche, ou encore mieux, désactiver le bloqueur partout. Pour ajouter le site à votre liste blanche, pour Firefox (similaire pour les autres navigateurs), rendez‑vous en bas à gauche de la fenêtre de votre navigateur, et cliquez sur le menu comme dans l’exemple de l’image ci‑dessous, puis rechargez la page, en appuyant sur F5.
|
|
Auteur | Message |
---|---|
Beau Parleur
|
Bonjour,
Je voudrais implémenter un plugin LFO pour la prochaine version du projet de compositeur virtuel MIDI. Je souhaiterez utilisez ce LFO pour envoyer des Message ControlChange consecutifs suivant l'onde choisie et le tempo. Mais je suis pas très fort en math et les souvenir sont vieux. Je souhaiterais aller à l'essentiel pour comprendre comment générer un signal sinusoïdal, et carré, en dans de scies et trianglulaire. Si vous avez du temps à me consacrer... Merci pour votre lecture. |
|
|
Administrateur
|
Pour un signal sinusoïdal, il faut utiliser la fonction sin disponible dans n’importe quel langage. Il faut faire y = sin(t * 2pi * f) où y est la valeur instantanée du signal à cet instant ; cette valeur varie entre +1 et -1. T est l’instant en seconde, et f est la fréquence en hertz. Par exemple si f vaut 2, c’est comme si le temps s’écoulait 2 fois plus vite, qu’on a donc 2 périodes du signal à chaque seconde, c’est à dire un signal à 2 Hz.
Pour un signal carré, c’est binaire, il faut utiliser une condition. Il faudrait faire des dessins pour expliquer, alors je donne la formule sans explication, en pseudo‑code : Code :P = 1 / F P est la période, F est la fréquence en hertz, T est le temps en seconde, Y est la valeur instantanée du signal. Pour un signal en dent de scie : Code :P = 1 / F P, F, T et Y ont la même signification que précédemment. Hibou57 « La perversion de la cité commence par la fraude des mots » [Platon] |
Beau Parleur
|
Merci beaucoup Hibou.
Tu ne fais pas mention de la fonction pour le Triangle, est-ce volontaire ? |
Administrateur
|
Pour le triangle, il n’y a pas de solution unique. Ou alors il faut un paramètre supplémentaire pour savoir où placer la pointe. Ou alors décider qu’il est isocèle par exemple.
J’ai corrigé une petite erreur dans ma précédente réponse : y = sin(t * 2pi * f) et non‑pas y = sin(t * f) comme je l’avais écrit par erreur. Hibou57 « La perversion de la cité commence par la fraude des mots » [Platon] |
Beau Parleur
|
Bonjour Hibou, merci pour la correction.
Pour le Triangle, je ne sais trop quoi répondre. Est-ce un choix arbitraire, existe- t- il une norme ou un standard. Si non, un triangle isocèle me conviendra. Merci pour tes réponses. |
|