Hello, j’ai fait une boîte à musique dans Factorio. Voilà comment elle marche.
La première partie est une horloge composée de 2 pièces :
- Le petit bloc rouge émet un signal constant de 1 « bleu ».
- Le bloc jaune émet un signal bleu égal au signal bleu qu’il reçoit, si le signal bleu est inférieur à 2688 (c’est la durée de la chanson, on verra pourquoi après).
- La sortie du bloc jaune est branchée sur son entrée, donc tout signal sortant du bloc jaune est redirigé vers son entrée.
Le résultat est un signal bleu qui commence de 0 et qui monte d’un cran à chaque tick du jeu, jusqu’à 2688, puis recommence à 0 :
Pour pouvoir caler de la musique sur cette horloge, il faut maintenant trouver l’équivalence entre un tick du jeu (il y a 60 ticks par seconde) et la valeur rythmique la plus brève de la musique qui va être jouée. Il y a 112 temps par minute dans la chanson, et la valeur la plus brève est la croche (2 par temps). Donc 224 brèves/minute contre 60*60=3600 ticks par minute, en divisant les ticks par 16, on tombera sur 225, très proche de 224. La machine suivante divise le signal bleu reçu par 16 et ressort le résultat en signal rose :
La chanson dure 28 mesures, contenant chacune 6 brèves, durant chacune 16 ticks… Vous suivez ? La chanson durera donc 28 * 6 * 16 = 2688 ticks, et le résultat est un compteur de 0 à 168 calé sur les brèves de la chanson :
Maintenant il faut utiliser l’item « haut-parleur » du jeu qui peut jouer une note prédéfinie s’il reçoit le signal adéquat :
La solution évidente est de placer un haut-parleur par note de la chanson, en le faisant jouer à un moment précis. Mais voilà, les fabricants de boîte à musique ne roulent pas sur l’or, et il y a un système plus économique : ne placer qu’un seul haut-parleur par note différente et le faire jouer plusieurs fois. Dans l’image qui suit, le haut-parleur est configuré pour jouer un Do avec un son de vibraphone si anything = signal rose (anything est représenté par la croix verte). Et en même temps, il reçoit 4 signaux différents A, B, C et D donnant l’heure exacte à laquelle il doit jouer :
Mélangez 5 minutes, et voilà (j’ai branché des lampes pour que vous voyiez mieux les haut-parleurs actifs) :
Bonne fête de la boîte à musique !