Routage d'effet audio contrôlé par un Arduino Nano

Bonjour à tous, j'espère que vous allez bien !

J'ai pas mal progressé dans le programme que j'essaye de mettre en place, voici un petit résumé du fonctionnement car le code est "gros et pas optimisé" (je débute) :

Quand j'appuie sur le bouton poussoir, l'entrée analogique lit une tension qu'elle converti en variable "bf1" allant de 0 à 7, 0 étant le GND et 7 le +5V.
Dépendamment de la tension lue, on va dire que BF1 = 1.
Tant que le bouton poussoir est enfoncé, BF1 = 1 et lorsqu'il est relâché, BF1 = 0

Ensuite, j'ai une autre variable F1 qui est pilotée comme suit :

// Modification de la valeur de FX1 en fonction du bouton poussoir qui est appuyé et de l'état précédent de FX1 :
//Si BP FX1 = X, alors FX1 = X Si BP FX1 = X ET que l'état précédent était à X, alors FX1 = 0
if (bf1 == 1)  {f1 = 1;}      if (bf1 == 1  &&         f1_prec == 1)             {f1 = 0;}
if (bf1 == 2)  {f1 = 2;}      if (bf1 == 2  &&         f1_prec == 2)             {f1 = 0;}
if (bf1 == 3)  {f1 = 3;}      if (bf1 == 3  &&         f1_prec == 3)             {f1 = 0;}
if (bf1 == 4)  {f1 = 4;}      if (bf1 == 4  &&         f1_prec == 4)             {f1 = 0;}
if (bf1 == 5)  {f1 = 5;}      if (bf1 == 5  &&         f1_prec == 5)             {f1 = 0;}
if (bf1 == 6)  {f1 = 6;}      if (bf1 == 6  &&         f1_prec == 6)             {f1 = 0;}
if (bf1 == 7)  {f1 = 7;}      if (bf1 == 7  &&         f1_prec == 7)             {f1 = 0;}

ça me permet de "toggle" un état de FX1 allant de 1 à 7, ce qui correspond à la tranche audio à laquelle je veux assigner le bus d'effet FX1.

Le problème, c'est que quand j'appuie sur le bouton et que BF1 = 3 par exemple, F1 passe de 0 à 3 à 0 à 3 en boucle super rapidement.

La solution, ça serait que je puisse avoir un résultat qui dirait :
"Si le front montant de BF1 == 3, alors BF1 = 3. Si le front montant de BF1 == 3 et que l'état précédent de F1 == 3, alors F1 = 0"

J'ai trouvé sur internet des solution pour capter le front montant d'un bouton poussoir, mais je n'ai pas été en mesure de l'appliquer à une variable.

Si vous avez une solution "à mon niveau" à me proposer, je suis très intéressé.
Encore une fois, je débute, et pour vos donner un ordre d'idée, j'en suis à un stade ou je dois "dessiner" le programme sur une feuille, le traduire en phrases dans le logiciel de programmation et enfin le traduire en code en dessous du "modèle" en français.

En espérant avoir été assez explicite, je vous remercie d'avance pour vos suggestions et vous souhaite une excellente journée !

Jérôme.