I've used the audio programming environment Max/MSP for many years, it was one of my first serious forays into programming. It's an incredibly versatile tool both for live and pre-recorded sound generation. It also proved exceptionally useful as an example while I was in school for analog audio.
Using a special sequencer known called a Tracker, I made a lot of 8bit and sample-based music. The commercial tracker Renoise is my favorite because it supports VSTs and direct recording but uses the keyboard controlled scheme of older programs like Milkytracker or Fasttracker2