Как манипулировать договоренностями в python и решать ошибку: TypeError: can't multiply sequence by нечетное число - int of type 'float'?

Привет я использую python 3.7 и Synthesizer, чтобы воспроизводить несколько музыкальных замечаний, чтобы знать замечание, получаю в договоренности частоту, которая должна звучать и продолжительность службы, проблема дает это мне, когда я посылаю переменную, чтобы воспроизводить ее, так как меня достает ошибка: TypeError: can't multiply sequence by нечетное число - int of type 'float', и я хотел бы знать, как решать это, так как в цепи, если я сохраняю замечания, как он показывает учебник: https://pypi.org / project / synthesizer /

from synthesizer import Player, Synthesizer, Waveform
import numpy as np



 cadena2 = ["n", "5", "2", "3",".","2","5","1","d","1",".","0","n", "5", "5", "4",".","3","6","5","d","1",".","0","n", "5", "8", "7",".","0","3","3","d","1",".","0","n", "6", "2", "2",".","2","5","4","d","1",".","0","n", "6", "5", "9",".","2","5","5","d","1",".","0","n", "6", "9", "8",".","4","5","6","d","1",".","0","n", "7", "3", "9",".","9","8","9","d","1",".","0","n", "8", "8", "0",".","0","0","0","d","1",".","0","n", "9", "8", "7",".","7","6","7","d","1",".","0"
]
cadena = []
cadena3 = []
valorNotas = []
valorDuracion = []
bandera = 0
nota = ""
duracion = ""
x = 0

for carac in cadena2:
    if carac == "n":
        bandera = 1
    if carac == "d":
        bandera = 2
    if bandera == 1:
       nota = nota + carac
    if bandera == 2:
       duracion = duracion + carac

cadena = nota.split("n")
cadena3 = duracion.split("d")
#
for valor in cadena:
    if valor != "":
        valorNotas.append(valor)
for valor in cadena3:
    if valor != "":
        valorDuracion.append(valor)

posicionesN = np.array(valorNotas)
posicionesD = np.array(valorDuracion)
tamanio = len(posicionesN)

for i in range(tamanio):
    frecuenciaN = posicionesN[x]
    frecuenciaD = posicionesD[x]
    x = x+1
    player = Player()
    player.open_stream()
    synthesizer = Synthesizer(osc1_waveform=Waveform.sine, osc1_volume=1.0, use_osc2=False)
    chord = [frecuenciaN,frecuenciaN,frecuenciaN]
    player.play_wave(synthesizer. generate_chord (chord, 1.0 ))    

1
задан 06.11.2019, 23:59
1 ответ

Проблема - что estГЎs перемещая его список частот, которые являются типом string, и тебе нужно, чтобы это был тип float.

, Если под chord = [frecuenciaN,frecuenciaN,frecuenciaN] ты включаешь один print(chord) verГЎs, что возвращает тебе ['523.251', '523.251', '523.251'].

а следовательно Гєnico, которую ты должен делать, состоит в том, чтобы преобразовывать частоты в algГєn момент cГіdigo в float, например меняясь:

frecuenciaN = float(posicionesN[x])
frecuenciaD = float(posicionesD[x])  # Esta creo que cambia la duración aunque luego no la utilizas, pero si vas a hacerlo también tendrías que cambiarla
1
ответ дан 01.12.2019, 12:28