How to manage audio?

2D game, many buttons(more than 150 or so). Each button has its own button script which just checks on click do smth.

Question: I have an audio manager script attached to an empty GO, should I play all the clicking sounds from there and also the background music? Or should I simply attach audio source to every single button or similar and play it from there? How I imagine it is having 2 audio sources and 1 of the clicks and similar and 1 for the background music.

What is the better and more futuristic way in terms of readability and reusability, let’s say the game grows more in the future?

The audio source object itself is not a big memory hog nor inherently cpu hog. It’s how many clips are running at the same time (in audible distance) that might affect anything, so in your case you can choose any solution.
I personally prefer to have 1 audio manager.

in my case I’m using one AudioAgent (my own script that creates as many AudioSources at startup as many clips it object needs to play simultaneously) on every GO. And additionally, I use editor-script I named “AudioMixer” to ajust all audiosources volume at oneplace. I fount this way is comfortable for me. And it doesnt affect a performance with 10…20 sounding objects with 2 or 3 audiosources on each of them. At least I cant see any fps slowdown.