Return a function

Hi I try to break out of a function when I say out but it didnt work
My Code:
`
#include <FastLED.h>
#include “MOVIShield.h”
#define DATA_PIN 12
#define NUM_LEDS 150
CRGBArray<NUM_LEDS> leds;
signed int res;
static uint8_t hue;

MOVI recognizer(true);

byte Brightness = 150;

void setup() {
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
recognizer.init();
recognizer.callSign(“Chaos”);
recognizer.addSentence(“Out”);
recognizer.addSentence(“Red”);
recognizer.addSentence(“Green”);
recognizer.addSentence(“Blue”);
recognizer.addSentence(“White”);
recognizer.addSentence(“Orange”);
recognizer.addSentence(“Yellow”);
recognizer.addSentence(“Fade”);
recognizer.train();
FastLED.setBrightness(Brightness);
for (int i = 0; i <= NUM_LEDS; i++) {
fill_rainbow(leds, i, 0, 255 / NUM_LEDS + 1);
FastLED.show();
delay(20);
}
}

void loop() {
res = recognizer.poll();
if (res == 2) {//rot
fill_solid(leds, NUM_LEDS, CRGB(255, 0, 0));
FastLED.show();
}
if (res == 3) {//grün
fill_solid(leds, NUM_LEDS, CRGB(0, 255, 0));
FastLED.show();
}
if (res == 4) {//blau
fill_solid(leds, NUM_LEDS, CRGB(0, 0, 255));
FastLED.show();
}
if (res == 5) {//weiß
fill_solid(leds, NUM_LEDS, CRGB(50, 50, 50));
FastLED.show();
}
if (res == 6) {//orange
fill_solid(leds, NUM_LEDS, CRGB(255, 50, 0));
FastLED.show();
}
if (res == 7) {//yellow
fill_solid(leds, NUM_LEDS, CRGB(150, 150, 0));
FastLED.show();
}
if (res == 8) {//Fade
Fade(1);
}
}

void Fade(byte s) {
while (1 == 1) {
for (int i = 0; i < NUM_LEDS / 2; i++) {
// fade everything out
leds.fadeToBlackBy(25);

  // let's set an led value
  leds[i] = CHSV(hue++, 255, 255);
  res = recognizer.poll();
  if (res == 1){
    FastLED.clear();
    FastLED.show();
    recognizer.say("OUT");
    return;
  }

  // now, let's first 20 leds to the top 20 leds,
  leds(NUM_LEDS / 2, NUM_LEDS - 1) = leds(NUM_LEDS / 2 - 1 , 0);
  FastLED.delay(33);
}

}
} `

You never check for “out”, this is res==1. You need to do so in loop() after recognizer.poll(). (and don’t call it twice).