Multiple Inputs Multiple outputs - help?

Hi all. I am wondering if the hive mind can help with my problem.
I am attempting to make a proton pack with sound etc driven by arduino nano(s). Am using the nano to trigger based on 4 individual pushbuttons - each to have a different sound output. The sound processor relies on a low signal to trigger an MP3.
I am struggling to get the code to work. I can get it to trigger the powerup sound if the powerup button is pressed but nothing else seems to work. I can see the trigger is going in via serial monitor but the output is either the powerup noise or nothing. Any help would be massively appreciated.

Code below

// sketch to work out proton pack noises based on 4 triggers

const int InPowerupPin = 4;     // power up pin
const int InHumPin = 5;         // hum pin
const int InPowerdownPin = 6;   //powerdown pin
const int InBeamPin = 7;        //beam throw pin
const int OutPowerupPin = 10;   // Output Powerup pin
const int OutHumPin = 11;       //Output hum pin
const int OutPowerdownPin = 8;  //Output power down pin
const int OutBeamPin = 9;       //Output beam pin

// variables will change:
int buttonStatepu = 0;  // variable for reading the pushbutton status
int buttonStatehm = 0;  // hum button
int buttonStatepd = 0;  // down button
int buttonStatebm = 0;  // beam

void setup() {
  Serial.begin(9600);                //Starts serial monitor
  pinMode(InPowerupPin, INPUT);      // Sets mode to input power up pin
  pinMode(InHumPin, INPUT);          // Sets mode to input hum pin
  pinMode(InBeamPin, INPUT);         // Sets mode to input beam throw pin
  pinMode(InPowerdownPin, INPUT);    // sets mode to input power down pin
  pinMode(OutHumPin, OUTPUT);        // Sets output mode hum
  pinMode(OutPowerdownPin, OUTPUT);  // sets output mode powerdown
  pinMode(OutBeamPin, OUTPUT);       // sets output mode beam
  pinMode(OutPowerupPin, OUTPUT);    // sets output mode power up
}

void loop() {
  // read the state of the pushbutton value:
  buttonStatepu = digitalRead(InPowerupPin);
  buttonStatehm = digitalRead(InHumPin);
  buttonStatehm = digitalRead(InBeamPin);
  buttonStatepd = digitalRead(InPowerdownPin);


  if (buttonStatepu == HIGH) {  // If reads power up pin as high then do the following
    digitalWrite(OutPowerupPin, HIGH);
    digitalWrite(OutPowerdownPin, HIGH);
    digitalWrite(OutHumPin, LOW);
    digitalWrite(OutBeamPin, HIGH);
  } else if (buttonStatehm == HIGH) {  // If reads hum pin as high then do the following
    digitalWrite(OutHumPin, LOW);
    digitalWrite(OutPowerupPin, HIGH);
    digitalWrite(OutPowerdownPin, HIGH);
    digitalWrite(OutBeamPin, HIGH);
  } else if (buttonStatebm == HIGH) {  // If reads beam pin as high then do the following
    digitalWrite(OutBeamPin, LOW);
    digitalWrite(OutPowerupPin, HIGH);
    digitalWrite(OutPowerdownPin, HIGH);
    digitalWrite(OutHumPin, HIGH);
  } else if (buttonStatepd == HIGH) {  // If reads powerdown pin as high then do the following
    digitalWrite(OutPowerdownPin, LOW);
    digitalWrite(OutPowerupPin, HIGH);
    digitalWrite(OutHumPin, HIGH);
    digitalWrite(OutBeamPin, HIGH);
  } else  // If the above is not true then set all outputs high
    digitalWrite(OutPowerupPin, HIGH);
  digitalWrite(OutHumPin, HIGH);
  digitalWrite(OutPowerdownPin, HIGH);
  digitalWrite(OutBeamPin, HIGH);
  Serial.print("Button powerup");  // prints state of input
  Serial.println(buttonStatepu);
  Serial.print("buttonhum");
  Serial.println(buttonStatehm);
  Serial.print("button powerdown");
  Serial.println(buttonStatepd);
  Serial.print("button beam");
  Serial.println(buttonStatebm);
  delay(5000);  // delay in between reads }
}

What is that? Post the datasheet.
Hand-draw a wiring diagram and post a photo of that.
Post in code tags the seria output.

I think it's the backpack from Ghostbusters...

You missed a curly bracket.
Here is a version with the correction (untested):

// sketch to work out proton pack noises based on 4 triggers

const int InPowerupPin = 4;     // power up pin
const int InHumPin = 5;         // hum pin
const int InPowerdownPin = 6;   //powerdown pin
const int InBeamPin = 7;        //beam throw pin
const int OutPowerupPin = 10;   // Output Powerup pin
const int OutHumPin = 11;       //Output hum pin
const int OutPowerdownPin = 8;  //Output power down pin
const int OutBeamPin = 9;       //Output beam pin

// variables will change:
int buttonStatepu = 0;  // variable for reading the pushbutton status
int buttonStatehm = 0;  // hum button
int buttonStatepd = 0;  // down button
int buttonStatebm = 0;  // beam

void setup() {
  Serial.begin(9600);                //Starts serial monitor
  pinMode(InPowerupPin, INPUT);      // Sets mode to input power up pin
  pinMode(InHumPin, INPUT);          // Sets mode to input hum pin
  pinMode(InBeamPin, INPUT);         // Sets mode to input beam throw pin
  pinMode(InPowerdownPin, INPUT);    // sets mode to input power down pin
  pinMode(OutHumPin, OUTPUT);        // Sets output mode hum
  pinMode(OutPowerdownPin, OUTPUT);  // sets output mode powerdown
  pinMode(OutBeamPin, OUTPUT);       // sets output mode beam
  pinMode(OutPowerupPin, OUTPUT);    // sets output mode power up
}

void loop() {
  // read the state of the pushbutton value:
  buttonStatepu = digitalRead(InPowerupPin);
  buttonStatehm = digitalRead(InHumPin);
  buttonStatehm = digitalRead(InBeamPin);
  buttonStatepd = digitalRead(InPowerdownPin);


  if (buttonStatepu == HIGH) {  // If reads power up pin as high then do the following
    digitalWrite(OutPowerupPin, HIGH);
    digitalWrite(OutPowerdownPin, HIGH);
    digitalWrite(OutHumPin, LOW);
    digitalWrite(OutBeamPin, HIGH);
  } else if (buttonStatehm == HIGH) {  // If reads hum pin as high then do the following
    digitalWrite(OutHumPin, LOW);
    digitalWrite(OutPowerupPin, HIGH);
    digitalWrite(OutPowerdownPin, HIGH);
    digitalWrite(OutBeamPin, HIGH);
  } else if (buttonStatebm == HIGH) {  // If reads beam pin as high then do the following
    digitalWrite(OutBeamPin, LOW);
    digitalWrite(OutPowerupPin, HIGH);
    digitalWrite(OutPowerdownPin, HIGH);
    digitalWrite(OutHumPin, HIGH);
  } else if (buttonStatepd == HIGH) {  // If reads powerdown pin as high then do the following
    digitalWrite(OutPowerdownPin, LOW);
    digitalWrite(OutPowerupPin, HIGH);
    digitalWrite(OutHumPin, HIGH);
    digitalWrite(OutBeamPin, HIGH);
  } else  {  // <--- THIS!
    // If the above is not true then set all outputs high
    digitalWrite(OutPowerupPin, HIGH);
    digitalWrite(OutHumPin, HIGH);
    digitalWrite(OutPowerdownPin, HIGH);
    digitalWrite(OutBeamPin, HIGH);
  } // <--- AND add THIS!
  Serial.print("Button powerup");  // prints state of input
  Serial.println(buttonStatepu);
  Serial.print("buttonhum");
  Serial.println(buttonStatehm);
  Serial.print("button powerdown");
  Serial.println(buttonStatepd);
  Serial.print("button beam");
  Serial.println(buttonStatebm);
  delay(5000);  // delay in between reads 
}

BTW are you sure you want to check it once every 5 seconds?

PS: and I'd change serial speed from 9600 to 115200 to make the code even quicker.

How do you have these button wired up? Do you have external pull-up or pull-down resistors because you will need them. A more typical approach is to declare these pins as INPUT_PULLUP to enable the internal pull-up resistors. Then, you wire the button to the pin and ground without any additional hardware. This changes the state of the button - it reads HIGH when not pressed and LOW when pressed.

Thank you! I'm still getting used to the syntax so I am really appreciative. As is my 10yo who i'm building this for!

Thank you! That's really cool. I didn't realise about the pullup and it's making the build so much cleaner. In conjunction with the other bracket it's working.

It seems to me like the Nano is not needed! The buttons could be connected directly to the MP3 player?

Please take a look at this improved version I made for you, but to avoid giving you "ready-made" food and to help you improve your programming, I ask that you try to understand the changes I've made, and if you have any questions or concerns, please don't hesitate to contact me.

// Pins and outputs order: 0=Power up, 1=Hum, 2=Beam, 3=Power down
const byte pinIn[4]  = { 4, 5, 7, 6 };
const byte pinOut[4] = {10,11, 9, 8 };

// Records the currently pressed button (-1=none)
int btn = -1;

void setup() {
  Serial.begin(115200);
  for(byte i=0; i<4; ++i) {
    pinMode(pinIn[i], INPUT_PULLUP);
    pinMode(pinOut[i], OUTPUT);
  }
}

void loop() {
  bool isButton = false;
  for(byte i=0; i<=3; ++i) {
    // read the state of the pushbutton value:
    if (digitalRead(pinIn[i]) == LOW) {
      // Is it a "new" button?
      if (btn != i) {
        // Turns off all outputs
        for(int j=0; j<=3; ++j)
          digitalWrite(pinOut[j], LOW);
        digitalWrite(pinOut[i], HIGH);
        Serial.print("Button "); Serial.println(i);
        btn = i;
      }
      isButton = true;
      delay(100);  // Delay and software debounce
    }
  }
  if (!isButton) {
    // No button is pressed, turn off all outputs
    for(byte i=0; i<=3; ++i)
      digitalWrite(pinOut[i], LOW);
    btn = -1;
  }
}

PS: if you want to test it without uploading the code to your board, this is a link to Tinkercad simulator (do you know it?).

What is playing the sounds? How exactly is it wired?

Thanks for the comment. Yes it would be simpler if it was just that however this is just the first part of the code. Once i've got this sorted it will also trigger lights / relays etc.

Thank you for this. I'm just working through the code and getting used to where it's going. I didn't know about the tinkercad simulator so i'm very happy to see that as well! I hadn't used byte before so I am learning every day!

Have you worked before with variable, its length and scope? Do you know what is an indentifier?