Estoy confundido porque hay muchos programas. Pero estoy buscando algo como esto. Escribiré una melodía como "a4 c3 h3 a2", etc. y luego quiero escuchar esto. ¿Alguien sabe lo que estoy buscando? gracias de antemano¿Cómo puedo crear una melodía? ¿Hay algún módulo de sonido?
Respuesta
frecuencias de computación desde el nombre de la nota es fácil. cada media nota está a 2^(1/12) de distancia de la nota anterior, 440 Hz es A4.
si por casualidad está en Windows, puede probar este pedazo de código, que toca una canción a través del altavoz del PC:
import math
import winsound
import time
labels = ['a','a#','b','c','c#','d','d#','e','f','f#','g','g#']
# name is the complete name of a note (label + octave). the parameter
# n is the number of half-tone from A4 (e.g. D#1 is -42, A3 is -12, A5 is 12)
name = lambda n: labels[n%len(labels)] + str(int((n+(9+4*12))/12))
# the frequency of a note. the parameter n is the number of half-tones
# from a4, which has a frequency of 440Hz, and is our reference note.
freq = lambda n: int(440*(math.pow(2,1/12)**n))
# a dictionnary associating note frequencies to note names
notes = {name(n): freq(n) for n in range(-42,60)}
# the period expressed in second, computed from a tempo in bpm
period = lambda tempo: 1/(tempo/60)
# play each note in sequence through the PC speaker at the given tempo
def play(song, tempo):
for note in song.lower().split():
if note in notes.keys():
winsound.Beep(notes[note], int(period(tempo)*1000))
else:
time.sleep(period(tempo))
# "au clair de la lune"!! 'r' is a rest
play('c4 c4 C4 d4 e4 r d4 r c4 e4 d4 d4 c4 r r r '
'c4 C4 c4 d4 e4 r d4 r c4 e4 d4 d4 c4 r r r '
'd4 d4 d4 d4 A3 r a3 r d4 c4 B3 a3 g3 r r r '
'c4 c4 c4 d4 e4 r d4 r c4 e4 d4 d4 c4 r r r ', 180)
(tenga en cuenta que estoy utilizando 3.x Python, puede que tenga que adaptar alguna parte del código con el fin de usarlo en 2.x. pitón)
ho, por cierto, yo solía abcdefg
como una escala, pero seguramente encontrará la manera de utilizar en lugar de h
b
.
NameError: nombre global 'nombres' no está definido – kame
ooops, lo siento. Eso es lo que sucede cuando no borras tu sesión de Python antes de la prueba. ¡Corregido ahora! –
se puede utilizar cualquier biblioteca que produce una salida MIDI, en el caso de .NET Me gustaría recomendar el creado por Stephen Toub de Microsoft (no puede encontrar desde donde lo tengo, pero Google para).
Mira esto: http://www.algorithm.co.il/blogs/index.php/pytuner/ Es un proyecto muy similar y parece una referencia muy decente.
tengo problemas con la instalación de pymedia :( – kame
Una opción exterior es JFugue como shown here (con Groovy). Tenga en cuenta que usaría Jython en lugar de Python, que con suerte está dentro de los límites como respuesta.
- 1. ¿Hay algún módulo que busque código superfluo?
- 2. Detección de tono FFT - Extracción de melodía
- 3. Android: el oyente graba sonido si se produce algún sonido
- 4. ¿Hay algún otro módulo de pago que no sea Paypal?
- 5. ¿Hay algún módulo como LWP de Perl para Ruby?
- 6. ¿Hay algún módulo estático JS de concatenación/minificación para Express.js?
- 7. Cómo crear un sonido desde cero C#
- 8. ¿Hay algún módulo Perl puro para crear imágenes y colocar texto en la imagen?
- 9. ¿Hay algún módulo Perl que pueda automatizar ollydbg?
- 10. ¿Cómo puedo crear algún tipo de alias variable en Java
- 11. ¿Hay algún componente para crear automáticamente un formulario de configuración?
- 12. ¿Hay algún ejemplo de juegos en Scala?
- 13. ¿Hay algún patrón de diseño para crear un asistente?
- 14. ¿Algún buen framework de administrador de sonido de iPhone?
- 15. ¿Algún tutorial actualizado para el módulo flexbox?
- 16. ¿Hay algún embellecedor CoffeeScript?
- 17. No hay sonido proveniente de Android Emulator
- 18. ¿Cómo puedo reproducir sonido en Java?
- 19. ¿Cómo puedo reproducir un sonido en WinForms?
- 20. ¿Cómo puedo crear una contraseña?
- 21. cómo crear un módulo de pam?
- 22. ¿Hay algún módulo listo para usar para comentarios de prueba para aplicaciones web?
- 23. Cómo generar una frecuencia de sonido particular?
- 24. ¿Hay algún tipo de archivador maven para crear una aplicación de consola?
- 25. ¿Hay algún Treebank gratis?
- 26. ¿Hay algún resumen de guayaba?
- 27. ¿Hay algún evento onDocumentChange?
- 28. ¿Hay algún método en Objective-C para crear recursivamente directorios a partir de una cadena?
- 29. ¿Cómo puedo acceder al sonido predeterminado de iOS para configurarlo como sonido de notificación?
- 30. ¿Puedo desactivar el sonido de desplazamiento UIPickerView?
"h3"? Además del h3, tu notación se parece a la notación utilizada por lilypond. Busque una aplicación lilypond-to-audio o lilypond-to-midi. –
Ah, ubicación: Berlín. Como sospechaba. @Ewan: en la notación musical alemana, es "cdefgah". "h" en lugar de (inglés/internacional) "b". –
Nitpick: como yo lo entiendo, "H" es en realidad nosotros llamamos B plano - B (natural) sigue siendo solo B. El compositor Bach fue capaz de usar esto para codificar su nombre en notas en una de sus piezas. –