Subj : Re: Python
To   : echicken
From : Mortifis
Date : Mon Dec 10 2018 03:13 pm

>   Re: Re: Python
>   By: Mortifis to Minex on Mon Dec 10 2018 11:37:55

>  Mo> What is need is a counter so that the GPIO pins blink only for the
>  Mo> length of an mp3 then automagically shutdown when the song is over

> What value does audio.info.length represent?  Duration of the song in
> seconds / milliseconds / something else?  File size?

  yes, audo.info.length is the time of the mp3 in seconds,
int(audio.info.length) makes it a whole number


> I doubt if a counter is the right way to go.  Seems like you could store the
> start time prior to entering the loop, and then make your While condition
> something like 'current_time - start_time < song_duration', so that the loop
> breaks once that amount of time has passed.

 isn't that just a counter of sorts as well?  I discover the error of my ways,
I was putting an unnecessary while: ahead of everything, the easy-for-me
solution to self-terminate when the song finished playing was

mP3 = sys.argv[1]

from mutagen.mp3 import MP3
audio = MP3(mP3)
cycle = int(audio.info.length)

x = 0

for i in seq:
       GPIO.setup(i, GPIO.OUT)
       GPIO.output(i, GPIO.HIGH)
seq.reverse()

try:
       while True and x < cycle:

               for i in seq:
                       GPIO.output(i, GPIO.LOW)
                       time.sleep(SleepTimeS);
                       GPIO.output(i, GPIO.HIGH)
                       time.sleep(SleepTimeS);
                       GPIO.output(i, GPIO.LOW)
                       time.sleep(SleepTimeS);
                       GPIO.output(i, GPIO.HIGH)
                       time.sleep(SleepTimeL);
                          # 4 seconds to cycle loop
                       x = int(x + ((SleepTimeS + SleepTimeL) * 3.5))

---
� Synchronet � The Empty Keg BBS emptykeg.synchro.net:82 Lake Echo NS Canada