Annonce

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


#1 2018-09-20 17:51:44 ligne de temp baser sur un BPM

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

ligne de temp baser sur un BPM



Bonjour à tous
je cherche a crée un tempo pour un programme de musique baser sur le BPM
j'ai trouvé ce bout de code sur internet il semble fonctionner

float bpm = 80;
float minute = 60000;
float interval = minute / bpm;
int time;
int beats = 0;
int a;

void setup() {
  size(300, 300);
  fill(255, 0, 0);
  noStroke();
  time = millis();
}
 
void draw() {
  background(255);
 
  if (millis() - time > interval ) {
    ellipse(width/2, height/2, 50, 50);
    beats ++;
    time = millis();
  }
  a = a + 1;
 
  text(beats, 30, height - 25);
  stroke(0);
  line(a,0,a,height);
}

ce que je cherche a faire c'est de faire bouger une ligne sur la largeur de la fenêtre de 0 a "width" baser sur le BPM et sur 4 temps.
je n'arrive pas a trouver la valeur de la variable "a" pour que la ligne ce promène sur 4 temps et ce a n'importe quel BPM

moi j'avais essayer cela comme valeur de "a" mais ça ne fonctionnais pas très bien surtout si on change le BPM
a = a + (interval/100)/8;
il fallait que je le divise par 8 si je voulais avoir quelque chose qui ressemblais a 4 temps

Merci D'avance
Danny

Dernière modification par imdidi (2018-09-20 17:54:46)

Hors ligne

 

#2 2018-10-04 03:52:59 Re : ligne de temp baser sur un BPM

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: ligne de temp baser sur un BPM



bonjour a tous
il n'y a plus d'aide sur ce forum ?
laisser moi savoir
Merci
Danny

Hors ligne

 

#3 2018-10-04 07:46:50 Re : ligne de temp baser sur un BPM

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: ligne de temp baser sur un BPM



Je ne comprends pas très bien ce que tu veux faire.
A tu essayer ?

a = (beats%4)*(width/4)

Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#4 2018-10-04 18:19:25 Re : ligne de temp baser sur un BPM

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: ligne de temp baser sur un BPM



salut
Merci pour ta réponse
Mais oui j'ai déjà vue cette option. C'était ce qui se rapproche le plus de ce que je veux faire.
En faite mon problème avec cela c'est que la ligne est saccader en bougeant alors que j’aurais besoin que la ligne bouge linéairement.

Mais coter précision c'est en plein ça qu'il me faut. Si il y aurait une façon de modifier l’algorithme que tu ma envoyer pour quelle soit linéaire je suis preneur.

Merci
Danny

Dernière modification par imdidi (2018-10-04 18:23:08)

Hors ligne

 

#5 2018-10-05 11:00:48 Re : ligne de temp baser sur un BPM

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: ligne de temp baser sur un BPM



Ok alors essaye ceci

 if (millis() - time > interval && frameCount%(width/4)==0) {
    ellipse(width/2, height/2, 50, 50);
    beats ++;
    time = millis();
    if(beats==4){
      beats = 0;
      a = 0;
    }
  }
  a++;

Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#6 2018-10-05 16:06:26 Re : ligne de temp baser sur un BPM

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: ligne de temp baser sur un BPM



salut
oui ça aussi j'ai essayé mais le tien est plus précis que le bout de code que j'avais faite je n'avais pas penser me servir de framecount...

il manque seulement un petit changement car le déplacement de la ligne fonctionne comme prévus sauf que la variable "bpm" n’est pas tenue en compte du coup on ne peux pas faire varier la vitesse de la ligne selon le bpm qu'on set

c'est en plein là que j'ai le problème. Quand tu appelle a++ je ne sais pas quoi mettre comme "algorithme"  à la place pour que le "bpm" soit prit en compte et surtout que ça ne change pas l’incidence de la ligne car quand j'essayais de trouver la solution meton "bpm = 60" c'etait correct mais lorsque que je mettais "bpm = 120"  la ligne ne bougeais plus a la bonne place

Merci
Danny

Dernière modification par imdidi (2018-10-05 16:18:17)

Hors ligne

 

#7 2018-10-08 08:40:48 Re : ligne de temp baser sur un BPM

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: ligne de temp baser sur un BPM



essaye avec un float.

a +=  0.1; // 0.2,  0.3, ...

Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#8 2018-10-10 00:34:28 Re : ligne de temp baser sur un BPM

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: ligne de temp baser sur un BPM



salut
toujours merci pour ton aide c'est apprécier

quand tu me dit essaye avec un float a += 0.1;
j’espère que tu me fais une blague car l’autre post j'ai pris la peine d'écrire "le code fonctionne bien mais la variable "BPM" n'est pas pris en compte"

alors explique moi en quoi " a += 0.1;" va résoudre mon problème ?
ma tu lu avant d'écrire quelque chose ?

ou tu est a bout d'idée et tu ne sais plus quoi faire toi non plus?
Pour l'instant j'ai contourné le problème mais un jour va falloir que je m'y recolle

Merci
Danny

Hors ligne

 

#9 2018-10-11 10:35:52 Re : ligne de temp baser sur un BPM

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: ligne de temp baser sur un BPM



Ecoute, j'essaye déjà de t'aider ce qui n'est pas si mal, tu pourrais être un peu plus aimable.

Pour ton problème il faudrait voir ton frameRate (combien de fois ta fonction draw est rafraîchie par seconde).
Si c'est 60 (le mode par défaut) et si tu veux un BPM de 80, il faut diviser 80 par 360 (60 seconde X 60 rafraîchissement).
Tu obtiens un float que tu peux additionner à ta variable a.

Il faut surement aussi changer ceci :

if(beats>=4){ ...

Bon travail


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#10 2018-10-11 13:45:05 Re : ligne de temp baser sur un BPM

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: ligne de temp baser sur un BPM



salut

bon Merci la j'ai de la viande a travailler

si je t'ai froisser je m'en excuse se n’était pas le but ici mais avoue que la réponse n’était pas songé

si tu m'avais expliquer cela a la place de a += 0.1; ....

je te remercie pour ton temps je vais travailler avec les nouvelle variable citer dans ton dernier post
et je te tien au courant

Merci
Danny

Hors ligne

 

#11 2018-10-11 18:37:52 Re : ligne de temp baser sur un BPM

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: ligne de temp baser sur un BPM



Ne t'inquiète pas pour si peu.
Mais ici on essaye de ne pas faire tout le travail à la place de l'autre.
Celui qui pose une question est là aussi pour apprendre et si on fait tout à sa place,
ce n'est pas le cas.

@ ton service


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024