Ok, so hear me out. I’m pretty noob to programming(not so noob with web language), I’m in the process of learning C right now but I wanted to ask the experienced developers of this community if this is an ok idea:
What I’d like to do is write a program that will allow me to sync/design LED effects that execute alongside a song. I’m thinking way ahead of myself and my capability, but eventually I would want the software to be usable by any non-technical person, specifically artists who have no programming/EE experience. The idea is to allow someone to create these timed LED effects that flow along with a visual representation of the music they’re working on. Would it at all be possible to modify audacity so the GUI for this program is encapsulated within a track listing? Is this way too much work to begin with? Would it be simpler to try to rewrite a basic form of audacity that lacks sound editing functionality but still displays the sound file?
A very much simpler approach would be synchronising lighting effects with MIDI music. The MIDI data could be composed/imported and played in a MIDI sequencer in the usual way to produce the music, then additional MIDI channels sent to a MIDI out port. These extra channels could be used to carry the data for controlling the lights and could be captured by an external unit. The external unit could be either something that you design and build yourself, or use an old computer. I did some work many years ago with this, using a slightly modified A3000 computer to capture the MIDI data - the programming of the A3000 was done using a combination of BBC BASIC (very easy to program and fast enough for the purpose) and a bit of machine code. All of the logic was handled in BASIC and the machine code handled capturing and sending the data from/to the appropriate hardware ports. Using an old PC you would just need a sound card that has a MIDI port and a PC that has a parallel port would make interfacing to your lighting circuits easy.
If MIDI is no good for your purposes, there is (or was) a WinAmp plug-in that responds to audio running through WinAmp and outputs synchronised data to a parallel port. This plug-in could be a good place to start as much of the work has already been done (no point re-inventing the wheel ) Sorry I can’t remember what the plug-in was called, but Google can probably find it.
xerond, audacity is an immensly complex program with thousands of lines of code, which wouldn’t be easy to mess around even if you were an experienced programmer. My suggestion is definitely ‘do not go that way’. There are probably a trillion better and easier ways of achieving what you want. Writing something from scratch being one of them…
I’m not sure how you want it to affect the leds, but could be something related to frequency analysis. The same way spectograms work. Just out of curiosity, in which OS will you be developing that?