Original Post
Hi, Well I guess this might not strictly be considered AI, but I see no reason why it shouldn’t. I’m hoping the concepts and methods applied to general AI issues might provide some useful starting points. Ever since being involved with computers I’ve always been fascinated by the combination of audio and visual elements - sound and light toys etc. Over the years I’ve played around with various of my own sound to light ideas with various degrees of success. Initially I simply used the sound volume to control events, but more recently moved towards frequencies via FFT. My most recent exploration being involved with the beat detection article here on gamedev.net. Although I’ve yet to get beat detection working effectively (or at all) I do know have more data and structured information about the audio frequencies and volume at a specific time slice. So to my question. I’d like to make use of the data I know have to drive various sound to light concepts, but unsure what methods can be used to analysis the data. What I’d like is to get some ideas for thing to look into or explore. The data I have available per time slice is 1. Overall sound volume (possible left and right) 2. FFT filtered through a progressive EQ (number of bands default is 16) 3. Energy over time per EQ band - used for detecting ‘beats’ or times when the band has a lot of energy Now I can use the FFT EQ bands as direct ‘triggers’ for events - that’s easy, but what I’d really like to do is have much more complex event triggers, based over time. That is to analysis the last N number of EQ bands time slices, essentially I’d imagine some form of pattern recognition. Imagine it this way, you have a grid with 16 columns and N rows. Each time slice you assign each EQ band ‘beat’ detection to its corresponding cell, where the cell is filled for true, empty for off. Doing this over time for each row builds up like a piano roll or punch card. Its these patterns I’d like to analysis and trigger events with. Now whilst it would be simple to build up a LUT (of bit arrays) to detect certain patterns, this is very much fixed design and has little flexibility. What would be better is to have a more ‘fuzzy’ relationship between set patterns to look for and the pattern buffer accuracy to it for triggering. I have no idea how this ‘fuzzy’ trigger relationship should be accomplished though. I’m also unsure if simply applying a 2D fuzzy relationship would be effective as strictly you’re looking at a 1D image over time, where by either one of the axis might be considered more influential than the other. It would also be useful if the pattern recognition could work on different band areas (e.g low vs. high frequencies) although that could be as simple as looking for more than 1 pattern match and some way of ignoring ranges of bands. I guess this isn’t so much of a question wanting an answer, more an opening to a discussion about how to achieve my aims using the data I’ve got. This is something on going for me, I’ve just added a piano roll display to my current project and that’s proving interesting to examine and the types of patterns music makes. Finally anyone know of a program to generate sound waves? Something that could be changed dynamically. I’m thinking this might be useful to produce test patterns and examine the patterns certain changes make.