Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [python] Metronomo

  1. #1

    [python] Metronomo

    Questo è il codice di un mio metronomo:

    codice:
    import winsound
    import time
    
    a = input('Inserisci il numero di battiti al minuto: ')
    wait =  60.0/a - 0.1
    
    while 1:
        time.sleep(wait)
        winsound.PlaySound('metro.wav', winsound.SND_FILENAME)
    A parte che funziona solo se lo faccio partire premendo F5 dall'IDLE, se faccio partire il file da solo non "suona".

    Ma soprattutto l'ho provato insieme ad altri metronome ed è più che chiaramente fuori tempo, come mai?

    Ps: quel - 0.1 è per togliere la lunghezza di riproduzione del BIP, visto che dura esattamente 0.1 secondi-
    http://negrita.com
    Grandissimi

    Solo quelli che sono così folli da pensare di cambiare il mondo, lo cambiano davvero.

  2. #2
    1. La Sleep non è precisa.
    2. La PlaySound non durerà sicuramente 0,1 s, ma un po' di più (per la preparazione alla riproduzione del suono, la lettura del file, eccetera).

    P.S.: IDE, non IDLE.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    E quindi come potrei migliorarne la precisione?


    Io l'ho sempre chiamato IDLE perchè quando faccio tasto destro su un fily python compare la scritta "Edit with IDLE", però magari sbaglio...
    http://negrita.com
    Grandissimi

    Solo quelli che sono così folli da pensare di cambiare il mondo, lo cambiano davvero.

  4. #4
    Originariamente inviato da andrew low
    E quindi come potrei migliorarne la precisione?
    Ad esempio potresti calibrare meglio il valore della sleep, verificando ad ogni iterazione quanto tempo è passato effettivamente e cercando di recuperarlo sulla successiva pausa.
    Io l'ho sempre chiamato IDLE perchè quando faccio tasto destro su un fily python compare la scritta "Edit with IDLE", però magari sbaglio...
    Pardon, è IDLE il nome corretto, ed infatti è un gioco di parole tra Idle (cognome di un componente dei Monty Python) e, appunto IDE (Integrated Development Environment).
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.