Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2010-12-06 00:20:30 petit problème de math ...

tobald
modérateur
Date d'inscription: 2008-03-28
Messages: 499

petit problème de math ...



Hello à tous

J'ai jamais été très fort en math , j'ai besoin pour un patch de convertir la valeur d'un [ctlin] (allant donc de 0 à 128)
en une valeur allant de -0.99 à +0.99.

Je jongle avec les opérateurs arithmétiques et expr mais en vain.

Si vous avez la solution , ça m'aiderait bien smile

Merci !

Hors ligne

 

#2 2010-12-06 00:30:32 Re : petit problème de math ...

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1444
Site web

Re: petit problème de math ...



Salut, avec puredata on pourrait le faire avec un objet comme ceci :
[expr ($f1 / 64.646464) - 0.99]

Hors ligne

 

#3 2010-12-06 01:09:14 Re : petit problème de math ...

tobald
modérateur
Date d'inscription: 2008-03-28
Messages: 499

Re: petit problème de math ...



yes merci Rep , j'ai trouvé entre temps d'une autre manière.

(amplitude des valeurs de -0.99 à + 0.99 = 1.98)

donc

ctlin * 1.98/128 - 0.99

comme on peut pas diviser de 0

ctlin * *0,01546875 - 0.99

Le hic c'est que je vais de -0.99 à 0.975 smile

edit : C'est pareil avec le expr ($f1 / 64.646464) - 0.99

Je vais aussi de -0.99 à 0.975 smile

Bizarre ça , si quelqu'un à une explication

Merci encore !

Edit : je suis vraiment un gros blin , un potard midi ça va de 0 à 127 et non de 0 à 128 ...
Problême résolu. Par contre je suis pas contre une petite traduction du ($f1) et m'expliquer pourquoi tu as un 64.646464 et non un 64 ?

Hors ligne

 

#4 2010-12-06 08:03:27 Re : petit problème de math ...

helios
membre
Date d'inscription: 2009-12-01
Messages: 99

Re: petit problème de math ...



et pourquoi ne pas utiliser l'objet "scale"?

Hors ligne

 

#5 2010-12-06 13:32:44 Re : petit problème de math ...

Staross
membre
Date d'inscription: 2008-04-03
Messages: 322

Re: petit problème de math ...



Moi je ferai comme ca :

$f1 est entre 0 et 127

$f1/127.0 est entre 0 et 1

2.0*$f1/127.0 est entre 0 et 2

2.0*$f1/127.0 -1.0 est entre -1 et 1

0.99*(2.0*$f1/127.0 -1.0) est entre -0.99 et 0.99


(et donc 0.99*(2.0*$f1/127.0 -1.0) = $f1 / 64.1414 -0.99 )

Hors ligne

 

#6 2010-12-06 13:55:31 Re : petit problème de math ...

tobald
modérateur
Date d'inscription: 2008-03-28
Messages: 499

Re: petit problème de math ...



> et pourquoi ne pas utiliser l'objet "scale.

Je ne connaissais pas cet objet, je regarderais merci.

Ok merci Staross , très clair , maintenant je comprends pourquoi le 64,1414.

Hors ligne

 

#7 2010-12-07 22:10:23 Re : petit problème de math ...

Derrgis
modérateur
Lieu: Lyon, France
Date d'inscription: 2009-09-14
Messages: 118
Site web

Re: petit problème de math ...



Il y a aussi ce genre de choses pour des mises en correspondance non linéaires ...


<pre><code>
----------begin_max5_patcher----------
620.3ocuVssaiBCD8YxWgEOSQXy88s86npJx.NIdEXGYbzlsU8eesM3TSKjv
VkMHAXFr8blybXFdaimeE+Lo2G7Cvy.Ou2134YLoM3M9rmeG9bcKt2LM+NRe
OdOwOX3cRxYowdcKAKrVYm5nrVhzrDznwcbljg6Hlo+SAE25Lc9Ioc9vQqGw
x5CT19sBRsb.hnLTXRdFrLK..gQgHXBpHO.jfBiB.HXXD3kwUSaL9gW8qmJi
sNZvKx+bjLre99WluFc8zWMu.lDFos99lM5KAqjZTgQEYdN.9OxAnk4.XQlN
XgQE5aowlHOd9HGEsXjSYR+.feEls+tRB6Z4pPw51CU6q4sbwfSizX8iKtoK
of1WiaMdNJrztbs7ZxFTjGkVTDL6H28aV1+SfoHScjGL6H285djzRMIMTpQn
VlesjVb9hIME4h+Ok1NwpkTN6pp2ogaxMCW0Wmg4Eo4HnZblwTYhSPWwEMDw
5DHNDTJxhRghFF4lmTplR85JKurlk4O64TdrkxHSPSr4HX1Qtf6HW84zzUhT
bfAOecj6Ja3cXJyPxHspXLgJ3uRXaUorsXo5SipSRaUZaLa2.bSiw68NLnkK
BF2Tv3yfW9FJi9VZyMpps552i5h7hA0Qh4VwBY4jUT0lKnDlDaTtZW+cpZS9
sxceoelDr6tTI+1rgaiLTx0pLjldiJCqohfYNFo9m56aPn19TxpmeRTaciMw
.bTvjdIkcIE77GcdblzAZSCw7dqDuiNQ2tfz7thIM88HwT5ZvD5whIzJvjtA
zCDS5eO6tySnbXXo8OEiyByz8gRzsgRCScMMA7pGdeyeAvptD5O
-----------end_max5_patcher-----------
</code></pre>

Hors ligne

 

#8 2010-12-08 18:52:25 Re : petit problème de math ...

Enry
membre
Date d'inscription: 2010-05-09
Messages: 100
Site web

Re: petit problème de math ...



ou très mathématiquement :

fval = ival / 128 * (.99 - (-.99)) - 0.99

avec : ival la valeur d'entrée, et fval la valeur finale rescalée

soit :

fval = ival / 128 * .99 * 2 - 0.99


27SENS - Association - Arles
http://www.27sens.com

Hors ligne

 

#9 2010-12-08 19:08:49 Re : petit problème de math ...

Enry
membre
Date d'inscription: 2010-05-09
Messages: 100
Site web

Re: petit problème de math ...



Citation "Le hic c'est que je vais de -0.99 à 0.975 smile"

Ah ca c'est parce que tu divises par 128, or ta val max est 127 !!!!!!!!

Il faut donc la formule suivante :

fval = ival / 127 * 1.98 - 0.99

Si ival = 127 (donc le max) :

127 / 128 * 1.98 - 0.99 = 0.97

mais

127 / 127 * 1.98 - 0.99 = 0.99

wink

formule générale :

fval = ival / (lim sup - lim inf) * (new lim sup - new lim inf) + new lim inf


edit : cite ( Edit : je suis vraiment un gros blin , un potard midi ça va de 0 à 127 et non de 0 à 128 ...
Problême résolu. )

ah dsl j'avais pas vu

Dernière modification par Enry (2010-12-08 19:13:39)


27SENS - Association - Arles
http://www.27sens.com

Hors ligne

 

#10 2010-12-09 14:48:40 Re : petit problème de math ...

pschiiitt
membre
Date d'inscription: 2009-03-21
Messages: 318

Re: petit problème de math ...



helios a écrit:

et pourquoi ne pas utiliser l'objet "scale"?

Oui, en effet, bien vu helios !
Et je dirais même plus :
http://codelab.fr/up/Image-1-3.png
Tout ça pour ça ?

P.-S. : il y a un argument supplémentaire avec l'objet scale pour faire du non linéaire.

Dernière modification par pschiiitt (2010-12-09 14:51:43)

Hors ligne

 

#11 2010-12-09 19:00:13 Re : petit problème de math ...

tobald
modérateur
Date d'inscription: 2008-03-28
Messages: 499

Re: petit problème de math ...



> Ah ca c'est parce que tu divises par 128, or ta val max est 127 !!!!!!!!

Oui oui , j'ai souligné cette erreur plus haut 0 comptant évidement pour une valeur smile

La question que je me pose maintenant c'est en terme de consommation de ressources quand on à le choix entre plusieurs objets ayant la même fonction. J'imagine (peut être à tort) que plus un objet à d'inlet et d'outlet plus il est gourmand (du coup je privilégierais expr et la bête multiplication). Si vous avez des infos sur ce point , je suis
preneur.

> Tout ça pour ça ?
Ouep c'est utile si tu veux controler le coefficient de feedback d'un comb filter avec un controlleur midi.

https://ccrma.stanford.edu/~jos/pasp/img489.png


Merci pour tout ces tips !

Hors ligne

 

#12 2010-12-10 15:44:03 Re : petit problème de math ...

tobald
modérateur
Date d'inscription: 2008-03-28
Messages: 499

Re: petit problème de math ...



Merci VB , j'ai entre temps lu pas mal de topic consacrés au "CPU usage" sur le forum de cycling74. La méthode préconisée c'est "mets en plein et compare ..."


Y'a aussi un topic intéréssant sur les énormes différences de consommations d'objets crées en Javascript par rapport à ce que ça aurait donné en Java ou en C.

Sinon autre point intéréssant , c'est que le Cpu usage que l'on voit dans le DSP status ne prend en compte que les ressources utilisées par l'audio et non par l'affichage.

Enfin pas mal d'infos , en tappant les mots clés "Cpu Usage" sur le forum de cycling

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024