Yo sólo he coqueteado un poco con CSound y desde mi punto de vista es un lenguaje muy completo y no está orientado al tiempo real, aunque ya hay extensiones que si lo permiten. Si utilizas un lenguaje de propósito general como C, Java, Python, Perl, etc... para sonido debes primero aprender a programar en ese lenguaje (sintaxis, estructuras de datos, etc) de forma general y, cuando ya tengas el lenguaje controlado, utilizar alguna de las múltiples librerías para acceder a audio y MIDI que poseen todos los lenguajes.
Lo bueno que tienen los lenguajes específicos para música es que obtienes resultados rápidamente y que poseen estructuras y mecanismos que permiten implementar algunos tópicos de la programación musical de forma rápida y sencilla, lo malo que tienen es que precisamente debido a ésto, no dan tanta libertad a la hora de implementar algoritmos y, por supuesto, requieren más máquina al ser, por lo general, lenguajes interpretados o pseudointerpretados.
Lo bueno que tienen los lenguajes de propósito general es que con ellos puedes hacer lo que quieras ya que controlas todos los pasos en la generación de la señal, además suelen ser más rápidos en la ejecución que los lenguajes específicos. Por contra tienes una curva de aprendizaje más dura que la de los lenguajes específicos y que a veces tienes que escribir mucho código para hacer cuatro cosas.
Yo siempre utilizo C para hacer mis cosillas por software y tengo hechos algunos tutoriales sobre síntesis musical por ordenador que pueden serte de ayuda si al final optas por utilizar un lenguaje de propósito general como C, Java, Python, etc.
http://avelino.gabiot.com