Je suis confus car il y a beaucoup de programmes. Mais je cherche quelque chose comme ça. Je vais taper une mélodie comme "A4 C3 H3 A2", etc., puis je veux entendre ça. Est-ce que quelqu'un sait ce que je cherche? merci d'avance p>
5 Réponses :
Vous pouvez utiliser une bibliothèque qui produit une sortie MIDI, en cas de .NET, je recommanderais Celui créé par Stephen Toub de Microsoft (ne peut pas trouver d'où je l'ai eu, mais Google pour cela.) P>
Vérifiez ceci: http://www.algorithm.co. Il / blogs / index.php / pytuner / C'est un projet très similaire et ressemble à une référence très décente. P>
J'ai du mal à installer la Pymedia :(
Les fréquences informatiques du nom de la note sont faciles. Chaque demi-notes est 2 ^ (1/12) à partir de la note précédente, 440 Hz est A4.
Si, par une chance que vous soyez sous Windows, vous pouvez essayer cette pièce de code, qui joue une chanson via le haut-parleur PC: p> (Veuillez noter que je suis Utilisation de Python 3.x, vous devrez peut-être adapter une partie du code afin de l'utiliser sur Python 2.x.) P> ho, à la manière, j'ai utilisé abcdefg code > En tant que balance, mais vous trouverez sûrement le moyen d'utiliser
h code> au lieu de
b code>. p> p>
NameError: Nom global 'Noms' n'est pas défini
Ooops, désolé. C'est ce qui se passe lorsque vous n'allez pas votre séance de python avant de tester. Corrigé maintenant!
Une option extérieure est Jfugue comme montré ici (avec groovy). Notez que vous utiliseriez Jython au lieu de Python, ce qui, espérons-le, est dans la limite de réponse. P>
Voici le même programme que @Adrien Plisson, mais pour MacOS:
import math import time import pygame import numpy sampleRate = 44100 freq = 440 labels = ['a','a#','b','c','c#','d','d#','e','f','f#','g','g#'] name = lambda n: labels[n%len(labels)] + str(int((n+(9+4*12))/12)) # 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) freq = lambda n: int(440*(math.pow(2,1/12)**n)) # 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. notes = {name(n): freq(n) for n in range(-42,60)} # a dictionnary associating note frequencies to note names period = lambda tempo: 1/(tempo/60) # the period expressed in second, computed from a tempo in bpm def play(song, tempo): for note in song.lower().split(): if note in notes.keys(): pygame.mixer.init(notes[note]) arr = numpy.array([4096 * numpy.sin(2.0 * numpy.pi * notes[note] * x / sampleRate) for x in range(0, sampleRate)]).astype(numpy.int16) arr2 = numpy.c_[arr,arr] sound = pygame.sndarray.make_sound(arr2) sound.play(-1) pygame.time.delay(1000) sound.stop() else: time.sleep(period(tempo)) # play each note in sequence through the PC speaker at the given tempo 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 ) # "au clair de la lune"!! 'r' is a rest
"H3"? Outre le H3, votre notation ressemble à la notation utilisée par Lilypond. Recherchez une application lilypond-to-audio ou lilypond-to-midi.
Ah, Lieu: Berlin. Comme je soupçonnais. @Ewan: en notation de musique allemande, c'est "CDEFGAH". "H" au lieu de (anglais / international) "B".
Nitpick: Comme je le comprends, "h" est en fait nous appelons un plat plat (naturel) n'est toujours que B. Le compositeur Bach a pu utiliser cela pour encoder son nom dans les notes dans l'une de ses pièces.
Fermer, Daniel. L'allemand B est égal à l'U.S. B Flat (BB), et H est égal à B.