Help with performing tasks in order, according to combo of inputs being received

I'm not really sure how to word this in Google to get a straight answer.

I need to read any combination of inputs (up to 13) and to do something sequentially, according to which inputs are read as "HIGH."

For example, if there are 13 inputs, each assigned to a momentary pushbutton switch (N.O.) and 13 corresponding outputs (controlling LEDs):

If input buttons 1, 4, 6, & 7 are pressed and held, then LED 1 would turn on for 0.25 second, LED 1 would then turn off and at the same time LED 4 would turn on for 0.25 second, LED 4 then turns off and LED 6 turns on for 0.25 second, and so on...

Basically, I'm trying to achieve a very simple "arpeggiator" type of effect, as in an arpeggiator that would come loaded on a synthesizer.

I have a pretty good understanding of how to read inputs send outputs, but I can't seem to figure out how to do it in exactly this way. It seems like it should fairly simple.... Please let me know if you need more info from me. I appreciate any help. Thanks!

I wrote below some pseudo code of how I would attack the problem. You will need to think about what would go into each of those functions. Read up on using millis() for timing if you are not familiar with the concept (stickied at the top of this forum) since you don't want to be using delay() to count those 0.25s periods. If you use delay() you will potentially miss a change in the state of the buttons.

loop(){
  readButtonsIntoArray(); //use a loop to write the states of buttons to an array
  checkForChangeInState(); //check to see if anything has changed from last time you looped
  if(changeInState == true) startTimer(); //if there is a change start a timer for your first period
  if(millis() - soundStartedTime >= 250) lightUpNextLED(); //if you have played the note for 0.25s, play the next note
}

I'm not really sure how to word this in Google to get a straight answer.

The phrase you're looking for is "state machine"