What three bands are hidden in this sequence of words?

PINUP, BEIRUT, TELEVISED, JAPANNED, TRIBALISM

The three bands are OASIS, QUEEN and NIRVANA. You get the band OASIS by taking the previous letter in the alphabet for the first letter of each word. You get the band QUEEN by taking the next letter in the alphabet for the last letter of each word. You get the band NIRVANA by taking the middle letter(s) of each word. Words with an odd number of letters have one middle letter and words with an even number of letters have two middle letters.

bands
Respectively concatenate the predecessor, the successor and the middle letter(s) of each word from the sequence, and you get the three bands OASIS, QUEEN and NIRVANA.

Assignment

We consider words that consist of one or more uppercase letters and represent them as strings (str).

A selector is a function that takes a word $$w$$ and returns a word. Your task is to define the following selectors:

Now also define a function hidden that takes two arguments: i) a sequence (list or tuple) of words and ii) a selector $$s$$. The function must return the word obtained by concatenating all letters that selector $$s$$ returns for each of the consecutive words in the given sequence.

Example

>>> predecessor('PINUP')
'O'
>>> predecessor('BEIRUT')
'A'
>>> predecessor('TELEVISED')
'S'

>>> successor('PINUP')
'Q'
>>> successor('BEIRUT')
'U'
>>> successor('TELEVISED')
'E'

>>> middle('PINUP')
'N'
>>> middle('BEIRUT')
'IR'
>>> middle('TELEVISED')
'V'

>>> sumaround('PYTHONS')
'G'
>>> sumaround('STANCHED')
'O'
>>> sumaround('ALGA')
'R'

>>> centroid('PYTHONS')
'P'
>>> centroid('STANCHED')
'E'
>>> centroid('ALGA')
'A'

>>> hidden(['PINUP', 'BEIRUT', 'TELEVISED', 'JAPANNED', 'TRIBALISM'], predecessor)
'OASIS'
>>> hidden(['PINUP', 'BEIRUT', 'TELEVISED', 'JAPANNED', 'TRIBALISM'], successor)
'QUEEN'
>>> hidden(['PINUP', 'BEIRUT', 'TELEVISED', 'JAPANNED', 'TRIBALISM'], middle)
'NIRVANA'

>>> hidden(('PYTHONS', 'STANCHED', 'ALGA', 'REBUS', 'NELLY', 'SUBJECTIVELY', 'ARABIA', 'ARMAMENT'), sumaround)
'GORILLAZ'
>>> hidden(('PYTHONS', 'STANCHED', 'ALGA', 'REBUS', 'NELLY', 'SUBJECTIVELY', 'ARABIA', 'ARMAMENT'), centroid)
'PEARLJAM'