#1 Le 23/05/2013, à 08:54
- YM
[Résolu] Métronome pour mesures composées
Bonjour
Je cherche un métronome qui puisse battre des mesures composées, comme un 7/8 noire / noire / noire / croche par exemple.
Je ne trouve que des choses comme GTick qui proposent des mesures impaires, mais pas composées...
Merci si vous connaissez des choses.
Dernière modification par YM (Le 29/05/2013, à 22:22)
Hors ligne
#2 Le 23/05/2013, à 17:40
- amj
Re : [Résolu] Métronome pour mesures composées
Bonjour
Tu peux essayer un script bash de ce genre
#!/bin/bash
#metronome.sh
#à emploiyer de cette manière
# ./metronome.sh longeur_d'une_noire nb_de_mesure
mesure=$2
time=$1
sound=/usr/share/sounds/free*/s*/bell.oga #tu peux remplacer par le sons que tu veux
i=-1
while [[ $i<=$mesure ]] ;
do
(( i=1+$i ))
paplay $sound # premier beep
sleep $time #pause d'une seconde (noire)
paplay $sound #deuxième beep
sleep $( echo "scale=2;$time/2" | bc ) #pause ½ seconde (croche)
paplay $sound ; # et ainsi de suite
sleep $time
done
(li les commentaire)
Avant de l'exécuter (dans un terminal) tu dois exécuter la commande
chmod 777 metronome.sh
Si il t'interesse je peux essayer de simplifier son utilisation
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#3 Le 24/05/2013, à 11:48
- philoup44
Re : [Résolu] Métronome pour mesures composées
Salut YM
Voir si HYDROGEN, peut également t'apporter quelque chose ...
Doc.ubuntu-fr - hydrogen
( on le trouve dans la Logithèque )
@ amj
J'ai éssayé ton script,
J'aime bien
J'ai juste rajouté à la fin ( après done )
exit 0;
Dernière modification par philoup44 (Le 24/05/2013, à 11:49)
Hors ligne
#4 Le 24/05/2013, à 13:03
- YM
Re : [Résolu] Métronome pour mesures composées
Merci pour vos réponses.
Pour le script, je suis un peu niveau basique quand il faut rentrer dans ubuntu...
J'ai l'ai copié sous gedit, je l'ai également rendu executable.
Quand je lance la commande chmod 777 metronome.sh , je n'obtiens rien...
Philoup44 j'ai testé hydrogen, mais c'est trop puissant pour ce que je cherche. J'ai des équivalents windows type reason qui permettent aussi ça, mais c'est un peu ouvrir une usine pour faire tourner un ventilo...
Hors ligne
#5 Le 24/05/2013, à 13:40
- philoup44
Re : [Résolu] Métronome pour mesures composées
Mettre d'abord ce script dans "dossier personnel" (par défaut, dans le terminal, tu es à cet endroit là)
Pour le rendre exécutable, tu peux aussi ---> clic droit sur le fichier > propriétés >permission > cocher "autoriser comme programme"
il faut utiliser ce script comme ça
./metronome.sh longeur_d'une_noire nb_de_mesure
exemple
./metronome.sh 4 4
Puis tu fais entrée (valide)
ce script, écrit tel quel, s'attends à avoir 2 "variables" (numérique ici) en entrée ---> $1 et $2
time=$1 (première valeur donnée)
mesure=$2 (première valeur donnée)
Mais amj, ta proposé de te le rendre plus "convivial"
style
entre la valeur temps puis valides
entre la valeur mesure puis valides
etc ...
Tu peux donc lui demandé !!
Dernière modification par philoup44 (Le 24/05/2013, à 13:49)
Hors ligne
#6 Le 24/05/2013, à 17:04
- amj
Re : [Résolu] Métronome pour mesures composées
Tu peux donc lui demandé !!
J'y suis occupé mais j'ai un petit problème donc patience
nouvelle version
#!/bin/bash
#metronome.sh v0.2 by amj
#à emploiyer de cette manière
# ./metronome.sh longeur_d'une_noire nb_de_mesure "$croche && $noire && $croche && $double_croche" #(les trois paramètres droivent être présents et dans l'ordre)
mesure=$2
time=$1
rythm=$3
text1="Entrez le nombre de mesures."
text2="Entrez le temps d'une noire."
text3="Entrez les rythmes voulus dans l'ordre et de la manière suivante:\n
\$rythme1 && \$rythme2 && \$rythme3 ... \$rythme_n \n
Les rythmes supportés sont les suivants: \n
\$noire \$croche et \$double_croche "
title3="Rythmes voulus."
if [[ $rythm == "" ]];then mesure=$(zenity --entry --text="$text1" ) && time=$(zenity --entry --text="$text2" ) && rythm=$(zenity --entry --text="$text3" ) ; fi
sound=/usr/share/sounds/free*/s*/bell.oga #tu peux remplacer par le sons que tu veux
i=-1
while [[ $i<=$mesure ]] ;
do
(( i=1+$i ))
noire="sleep $time && paplay $sound"
croche="sleep $( echo "scale=2;$time/2" | bc ) && paplay $sound"
double_croche="sleep $( echo "scale=2;$time/4" | bc ) && paplay $sound"
paplay $sound # premier beep → temps 0
$rythm
sleep $time ;
done
exit 0;
Tu peux l'employer en double claquant dessus
Dernière modification par amj (Le 25/05/2013, à 14:23)
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#7 Le 25/05/2013, à 14:15
- amj
Re : [Résolu] Métronome pour mesures composées
Alors ça vous va?
au fait ça marche pas
Dernière modification par amj (Le 25/05/2013, à 15:12)
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#8 Le 25/05/2013, à 16:31
- philoup44
Re : [Résolu] Métronome pour mesures composées
au fait ça marche pas
Quoi donc ??
Hors ligne
#9 Le 25/05/2013, à 16:46
- amj
Re : [Résolu] Métronome pour mesures composées
Ça fais pas les bon rythmes. Ca bug à cette commande:
http://paste.tdct.org/index.php?zk c'est incompréhensible pour moi.
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#10 Le 25/05/2013, à 17:38
- amj
Re : [Résolu] Métronome pour mesures composées
voilà
#!/bin/bash
#metronome.sh v0.2.2 by amj
#à emploiyer de cette manière
# ./metronome.sh longeur_d'une_noire nb_de_mesure "croche && noire && croche && double_croche" #(les trois paramètres droivent être présents et dans l'ordre)
mesure=$2
time=$1
rythm=$3
text1="Entrez le nombre de mesures."
text2="Entrez le temps d'une noire."
text3="Entrez les rythmes voulus dans l'ordre et de la manière suivante:\n
rythme1 && rythme2 && rythme3 ... rythme_n \n
Les rythmes supportés sont les suivants: \n
noire croche et double\_croche "
if [[ $rythm == "" ]];then mesure=$(zenity --entry --text="$text1" ) && time=$(zenity --entry --text="$text2" ) && rythm=$(zenity --entry --text="$text3" ) ; fi
sound=/usr/share/sounds/free*/s*/bell.oga #tu peux remplacer par le sons que tu veux
i=-1
noire() { sleep $time ; paplay $sound; }
croche() { sleep $( echo "scale=2;$time/2" | bc) ; paplay $sound; }
double_croche() { sleep $( echo "scale=2;$time/4" | bc ) ; paplay $sound; }
while [[ $i<=$mesure ]] ;
do
(( i=1+$i ))
paplay $sound # premier beep → temps 0
$rythm
sleep $time ;
done
exit 0;
Dernière modification par amj (Le 25/05/2013, à 23:49)
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#11 Le 25/05/2013, à 22:33
- philoup44
Re : [Résolu] Métronome pour mesures composées
Salut amj
Je suis l'évolution de ton script avec beaucoup d'intéret
Hors ligne
#12 Le 25/05/2013, à 22:38
- amj
Re : [Résolu] Métronome pour mesures composées
Une suggestion?
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#13 Le 25/05/2013, à 23:32
- amj
Re : [Résolu] Métronome pour mesures composées
Ça pourrait être comique de le transformer (dans un futur lointain) en mini interpréteur de boite à rythmes non?
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#14 Le 25/05/2013, à 23:43
- philoup44
Re : [Résolu] Métronome pour mesures composées
Pour l'instant , non
Mais demain,peut etre (il faut que je me replonge un peu dans le shell)
Mais une question, ton dernier script, il fonctionne bien chez toi ??
Je l'ai un peu éssayé, mais j'ai l'impréssion d'entendre toujours le meme rythme ...
à moins que je n'ai pas réussi à m'en servir correctement
le dernier paramètre, c'est bien ----> "$noire && $croche etc ..."
Dans la fenetre de zénity, double_croche était écrite comme ça ---> doublecroche
Je testerais plus demain !!
Bonne nuit
Hors ligne
#15 Le 25/05/2013, à 23:47
- amj
Re : [Résolu] Métronome pour mesures composées
Il ne faut plus mettre de $ donc plus "$croche && $double_croche" mais "croche && double_croche"
et il affiche doublecroche au lieu de double_croche parce qu'il interprète le _ et que j'ai oublié de mettre le caractère d’échappement \
je change ça (pour double_croche c'est avec zenity?)
Dernière modification par amj (Le 25/05/2013, à 23:50)
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#16 Le 26/05/2013, à 00:25
- philoup44
Re : [Résolu] Métronome pour mesures composées
C'est la fenetre de zénity qui affichait
Les rythmes supportés sont les suivants
noire croche et doublecroche
Pour les tests sur les nombres
[[ $i<=$mesure ]]
et la meme écriture que
[[ $i -le $mesure ]] ??
n'utilises t-on pas nb1<=nb2 avec la commande (( )) ??
Merci pour tes réponses !!
NB
le #13 et #14 se sont croisés
Je répondais non au #12
Ça pourrait être comique de le transformer (dans un futur lointain) en mini interpréteur de boite à rythmes
non?
Qui sait ??
Hors ligne
#17 Le 26/05/2013, à 12:56
- amj
Re : [Résolu] Métronome pour mesures composées
Salut
C'est la fenetre de zénity qui affichait
Les rythmes supportés sont les suivants
noire croche et doublecroche
Si c'est ça je l'ai déjà changé le script plus haut
Pour les tests sur les nombres
[[ $i<=$mesure ]]
et la meme écriture que
[[ $i -le $mesure ]] ??
n'utilises t-on pas nb1<=nb2 avec la commande (( )) ??
le <= viens plutôt de la technique C (et c'est mon habitude parce que j'utilise python)
mais les 2 me sembles corrects (je devrait peut-être enlever le = )
(( ))
Ça sert a faire un calcul alors que moi je veux une réponse binaire. Maintenant je me trompe peut-être.
((expression))
The expression is evaluated according to the rules described
below under ARITHMETIC EVALUATION. If the value of the expres‐
sion is non-zero, the return status is 0; otherwise the return
status is 1. This is exactly equivalent to let "expression".
[[ expression ]]
Return a status of 0 or 1 depending on the evaluation of the
conditional expression expression. Expressions are composed of
the primaries described below under CONDITIONAL EXPRESSIONS.
Word splitting and pathname expansion are not performed on the
words between the [[ and ]]; tilde expansion, parameter and
variable expansion, arithmetic expansion, command substitution,
process substitution, and quote removal are performed. Condi‐
tional operators such as -f must be unquoted to be recognized as
primaries.
C'est peut-être équivalent dans ce cas ci.
Je pense que je devrais plutôt employer une boucle for? (mais d'habitude je n'emploie jamais for )
Qui sait ??
Ça nécessiterait de réécrire ½ du programme
Dernière modification par amj (Le 26/05/2013, à 12:57)
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#18 Le 26/05/2013, à 13:52
- philoup44
Re : [Résolu] Métronome pour mesures composées
J'ai apporté quelques modifs pour comprendre certaines choses
#!/bin/bash
#metronome.sh v0.2.2 by amj
#à employer de cette manière
# ./metronome.sh longeur_d'une_noire nb_de_mesure "croche && noire && croche && doublecroche"
#(les trois paramètres doivent être présents et dans l'ordre)
#echo "longeur d'une noire nb de mesure \"croche noire croche doublecroche\""
read -p 'Entre la longueur de la noire et valide : ' time
#echo "$time"
read -p 'Entre le nbre de mesure et valide : ' mesure
#echo "$mesure"
read -p 'Entre le rhytme et valide : ' rhytm
#echo "$rhytm"
sound=/usr/share/sounds/free*/s*/bell.oga #tu peux remplacer par le sons que tu veux
i=1
noire() { sleep $time ; paplay $sound; }
echo "valeur d'une croche"
echo $(echo "scale=2;$time/2" | bc)
croche() { sleep $( echo "scale=2;$time/2" | bc) ; paplay $sound; }
echo "valeur d'une doublecroche"
echo $( echo "scale=2;$time/4" | bc )
doublecroche() { sleep $( echo "scale=2;$time/4" | bc ) ; paplay $sound; }
#while [[ $i<=$mesure ]] ; # si time=2 mesur=1 et rhytm= noire && doublecroche && doublecroche ---> rien
while (( $i<=$mesure )) ;
do
echo "mesure $i"
(( i=1+$i ))
#paplay $sound # premier beep → temps 0
#$rhytm ici,n'est jamais exécuté
#$rythm
for a in $rhytm
do
echo $a #savoir à quelle note cela correspond
$a
done
sleep $time ; #pourquoi ce temps d'attente ?
done
exit 0;
./metronome-v03.sh
Entre la longueur de la noire et valide : 1
Entre le nbre de mesure et valide : 4
Entre le rhytme et valide : noire doublecroche doublecroche doublecroche doublecroche
valeur d'une croche
.50
valeur d'une doublecroche
.25
mesure 1
noire
doublecroche
doublecroche
doublecroche
doublecroche
mesure 2
noire
doublecroche
doublecroche
doublecroche
doublecroche
mesure 3
noire
doublecroche
doublecroche
doublecroche
doublecroche
mesure 4
noire
doublecroche
doublecroche
doublecroche
doublecroche
ici, j'arrives à obtenir une différence de rythme (essentiellement du à ---> for do done
il faudrait fusionner le tien avec celui-ci peut etre
NB
Dans ton script, je n'obtiens qu'un seul rhytme (peut importe les valeurs)
Je pense que $rythm, n'est pas interprété (certainement une histoire de substitution ... )
Pour la fonction scale de bc (pense bete for me)
Developpez.net - shell-commandes-bc-fonctionnement-scale
J'vais m'relaxer les 2 neurones quelques minutes
Le temps d'faire un p'tit bout d'brousse
Dernière modification par philoup44 (Le 26/05/2013, à 13:59)
Hors ligne
#19 Le 26/05/2013, à 13:55
- amj
Re : [Résolu] Métronome pour mesures composées
J'avais ça avec les précédentes version mais j'ai modifier depuis. exécute le script avec
bash -x
Dernière modification par amj (Le 26/05/2013, à 13:57)
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#20 Le 26/05/2013, à 14:02
- philoup44
Re : [Résolu] Métronome pour mesures composées
Tu obtiens des battements variés depuis ??
Hors ligne
#21 Le 26/05/2013, à 14:04
- amj
Re : [Résolu] Métronome pour mesures composées
Bah je suis pas sur mais en tout cas les pauses qui m'affiche sont variées. (je vais vérifier)
En fait non
Dernière modification par amj (Le 26/05/2013, à 14:06)
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#22 Le 26/05/2013, à 14:08
- amj
Re : [Résolu] Métronome pour mesures composées
bah maintenant si
bash -x metronome-v2.sh
+ mesure=
+ time=
+ rythm=
+ text1='Entrez le nombre de mesures.'
+ text2='Entrez le temps d'\''une noire.'
+ text3='Entrez les rythmes voulus dans l'\''ordre et de la manière suivante:\n
rythme1 && rythme2 && rythme3 ... rythme_n \n
Les rythmes supportés sont les suivants: \n
noire croche et double_croche '
+ [[ '' == '' ]]
++ zenity --entry '--text=Entrez le nombre de mesures.'
+ mesure=2
++ zenity --entry '--text=Entrez le temps d'\''une noire.'
+ time=1
++ zenity --entry '--text=Entrez les rythmes voulus dans l'\''ordre et de la manière suivante:\n
rythme1 && rythme2 && rythme3 ... rythme_n \n
Les rythmes supportés sont les suivants: \n
noire croche et double_croche '
+ rythm='double_croche && noire'
+ sound='/usr/share/sounds/free*/s*/bell.oga'
+ i=-1
+ [[ -1 < =2 ]]
+ (( i=1+-1 ))
+ paplay /usr/share/sounds/freedesktop/stereo/bell.oga
+ double_croche '&&' noire
++ bc
++ echo 'scale=2;1/4'
+ sleep .25
+ paplay /usr/share/sounds/freedesktop/stereo/bell.oga
+ sleep 1
+ [[ 0 < =2 ]]
+ (( i=1+0 ))
+ paplay /usr/share/sounds/freedesktop/stereo/bell.oga
+ double_croche '&&' noire
++ bc
++ echo 'scale=2;1/4'
+ sleep .25
+ paplay /usr/share/sounds/freedesktop/stereo/bell.oga
+ sleep 1
+ [[ 1 < =2 ]]
+ (( i=1+1 ))
+ paplay /usr/share/sounds/freedesktop/stereo/bell.oga
+ double_croche '&&' noire
++ bc
++ echo 'scale=2;1/4'
+ sleep .25
+ paplay /usr/share/sounds/freedesktop/stereo/bell.oga
+ sleep 1
+ [[ 2 < =2 ]]
+ (( i=1+2 ))
+ paplay /usr/share/sounds/freedesktop/stereo/bell.oga
+ double_croche '&&' noire
++ bc
++ echo 'scale=2;1/4'
+ sleep .25
+ paplay /usr/share/sounds/freedesktop/stereo/bell.oga
+ sleep 1
+ [[ 3 < =2 ]]
+ exit 0
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#23 Le 26/05/2013, à 14:08
- philoup44
Re : [Résolu] Métronome pour mesures composées
Pour exemple, éxecute, le mien, puis met les memes variables dans le tien
longueur de la noire : 1
nbre de mesure : 4
rythme : noire doublecroche doublecroche doublecroche doublecroche
Je reviens dans 20 min
Dernière modification par philoup44 (Le 26/05/2013, à 14:09)
Hors ligne
#24 Le 26/05/2013, à 14:20
- amj
Re : [Résolu] Métronome pour mesures composées
chez moi ton script donne ça :
bash -cx "read -p 'Entre la longueur de la noire et valide : ' time> #echo "$time"
> read -p 'Entre le nbre de mesure et valide : ' mesure
> #echo "$mesure"
> read -p 'Entre le rhytme et valide : ' rhytm
> #echo "$rhytm"
>
> sound=/usr/share/sounds/free*/s*/bell.oga #tu peux remplacer par le sons que tu veux
> i=1
>
> noire() { sleep $time ; paplay $sound; }
>
> echo "valeur d'une croche"
> echo $(echo "scale=2;$time/2" | bc)
> croche() { sleep $( echo "scale=2;$time/2" | bc) ; paplay $sound; }
>
>
> echo "valeur d'une doublecroche"
> echo $( echo "scale=2;$time/4" | bc )
> doublecroche() { sleep $( echo "scale=2;$time/4" | bc ) ; paplay $sound; }
>
>
> #while [[ $i<=$mesure ]] ; # si time=2 mesur=1 et rhytm= noire && doublecroche && doublecroche ---> rien
> while (( $i<=$mesure )) ;
> do
> echo "mesure $i"
> (( i=1+$i ))
>
>
> #paplay $sound # premier beep → temps 0
>
> #$rhytm ici,n'est jamais exécuté
> #$rythm
>
> for a in $rhytm
> do
> echo $a #savoir à quelle note cela correspond
> $a
> done
>
> sleep $time ; #pourquoi ce temps d'attente ?
>
> done
>
> exit 0;"
(standard_in) 1: syntax error
(standard_in) 1: syntax error
+ read -p 'Entre la longueur de la noire et valide : ' time
Entre la longueur de la noire et valide : 1
+ read -p 'Entre le nbre de mesure et valide : ' mesure
Entre le nbre de mesure et valide : 2
+ read -p 'Entre le rhytme et valide : ' rhytm
Entre le rhytme et valide : noire croche noire
+ sound='/usr/share/sounds/free*/s*/bell.oga'
+ i=1
+ echo valeur
valeur
Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.
Hors ligne
#25 Le 26/05/2013, à 14:47
- philoup44
Re : [Résolu] Métronome pour mesures composées
Avec l'option bash -cx
bash -cx ./metronome-v03.sh
+ ./metronome-v03.sh
Entre la longueur de la noire et valide : 1
Entre le nbre de mesure et valide : 4
Entre le rhytme et valide : noire croche noire
valeur d'une croche
.50
valeur d'une doublecroche
.25
mesure 1
noire
croche
noire
mesure 2
noire
croche
noire
mesure 3
noire
croche
noire
mesure 4
noire
croche
noire
Hors ligne