2011-10-07 3 views
0

def fade_in (SND, fade_length): '' 'faire un fichier fondu dans son pour cette vague' '' new_snd = sound.copy (SND)Comment faire un son de fondu en Python?

for sample in new_snd: 
    snd_index = sound.get_index(sample) 
    factor = 0 
    snd_samp = sound.get_sample(snd, snd_index) 
    if snd_index <= fade_length: 
     left = (sound.get_left(snd_samp) * factor) 
     right = (sound.get_right(snd_samp) * factor) 
     factor += 0.25 
     sound.set_values(sample,int(left),int(right)) 
    else: 
     left = sound.get_left(sample) 
     right = sound.get_right(sample) 
     sound.set_values(sample, int(left), int(right)) 

return new_snd 
+1

Ceci est juste un bloc de code. Vous devez poser une question. – JJJ

+0

J'ai essayé d'écrire un code pour faire un fondu en son en python mais ce code ne fonctionne pas. dans la partie si snd_index <= fade_length: gauche = (sound.get_left (snd_samp) * facteur) = droite (sound.get_right (snd_samp) * Facteur) facteur + = 0,25 sound.set_values ​​(échantillon, int (à gauche), int (droite)) dans cette partie j'ai imprimé la valeur de gauche et de droite, mais ils sont tous 0 je ne comprends pas pourquoi – user984343

+0

oh en fait je le comprendre, mais maintenant j'ai un nouveau problème lorsque le snd_index <= fade_length partie . quand il exécute cette partie, il obtient un son étrange, rien de semblable à l'oringinal, mais il est allé faire cette partie à la normale – user984343

Répondre

0

left et right sera toujours égale à zéro , lorsque vous définissez factor sur zéro à chaque exécution de la boucle for. Vous devez déclarer factor en dehors de la boucle for:

def fade_in (snd, fade_length): 
    new_snd = sound.copy(snd) 
    factor = 0 

    for sample in new_snd: 
     snd_index = sound.get_index(sample) 
     snd_samp = sound.get_sample(snd, snd_index) 
     if snd_index <= fade_length: 
      left = (sound.get_left(snd_samp) * factor) 
      right = (sound.get_right(snd_samp) * factor) 
      factor += 0.25 
      sound.set_values(sample,int(left),int(right)) 
     else: 
      left = sound.get_left(sample) 
      right = sound.get_right(sample) 
      sound.set_values(sample, int(left), int(right)) 

    return new_snd 
Questions connexes