2011-11-13 23 views
7

Estoy tratando de hacer una aplicación de piano simple en C#.tocando tonos de piano con C#

Se supone que es un piano muy simple (5 ó 6 teclas como máximo). He encontrado diferentes alternativas, y las que he encontrado hasta ahora son:

  • consol.beep(); pero siento que su sonido no es como el tono del piano
  • guardando y reproduciendo archivos WAV. Pensé en conseguir los archivos wav de los sonidos de piano, pero siento que es la manera más difícil de hacerlo y no va a ser vendible cualquier sistema puede tardar mucho espacio innecesario

¿Hay una biblioteca de jugar unos sonidos de piano o de tipo cualquier tono diferente de un instrumento musical diferente?

Respuesta

9

Verifique la fuente descargable de Mike Gold's Virtual Piano in C#. Creo que tiene lo que estás buscando.

Quizás también le interese esta publicación: Is it possible to generate a constant sound in C# while adjusting its frequency?. La idea básica es que tiene una sola muestra y manipula programáticamente la frecuencia del archivo de sonido, lo que genera una nota diferente.

En cuanto a las bibliotecas que pueden ayudar a usted, usted puede echar un vistazo a:

5

¿Pensaste sobre el uso de MIDI?

Esto puede ser útil.

Ver http://grouplab.cpsc.ucalgary.ca/cookbook/index.php/VisualStudio/HowToPlayMIDIInstruments

Éste es muy interesante, que le permite reproducir sonidos de una manera sencilla como esto:

MidiPlayer.Play(new NoteOn(0, 1, "C4", 127)); 

También puede echar un vistazo a esta página proyecto de código. Ver http://www.codeproject.com/KB/audio-video/MIDIToolkit.aspx

+0

La página grouplab.cpsc.ucalgary.ca ya no apunta a una biblioteca viable. – Eponymous

1

guardar y reproducir archivos WAV i idea de conseguir los archivos wav de piano de tonos, pero creo que es la manera más difícil de hacerlo y que no será vendible cualquier puede tomar mucho espacio innecesario

No sé qué nivel de realismo está buscando, pero los pianos digitales de gama alta tienen varias muestras digitales por tecla para representar las diferentes dinámicas de las teclas rígidas/blandas, por lo que no descartaría esta posibilidad. Una gran consideración es la polifonía, es decir, cuántas notas se pueden escuchar a la vez.

Los ajustes de tono menores pueden reducir el número de muestras necesarias, p. una nota generalmente se puede subir/bajar unos pocos semitonos sin demasiada degradación.

Alternativamente, podría intentar reproducir muestras MIDI. Casi cualquier tarjeta de sonido moderna tiene los 128 parches MIDI básicos, aunque la calidad puede variar ampliamente.

Cuestiones relacionadas