python - passaggio graduale da un brano musicale ad un altro
python - passaggio graduale da un brano musicale ad un altro
In un programma Python dovrei mandare in ascolto un brano musicale e dopo un certo tempo passare ad un altro.
Per la gestione della musica avrei pensato a VLC (comunque andrebbe bene qualunque altra soluzione) ma non so come fare per iniziare gradualmente e come terminare gradualmente iniziando il successivo
Qualcuno ha già un'esperienza in questo da suggerirmi come fare? (attualmente lancio VLC con il brano da ascoltare , e lo interrompo con un kill, ma naturalmente non c'è gradualità.)
Grazie.
Per la gestione della musica avrei pensato a VLC (comunque andrebbe bene qualunque altra soluzione) ma non so come fare per iniziare gradualmente e come terminare gradualmente iniziando il successivo
Qualcuno ha già un'esperienza in questo da suggerirmi come fare? (attualmente lancio VLC con il brano da ascoltare , e lo interrompo con un kill, ma naturalmente non c'è gradualità.)
Grazie.
Ultima modifica di maresama il martedì 6 ottobre 2015, 23:14, modificato 1 volta in totale.
- crap0101
- Rampante Reduce

- Messaggi: 8242
- Iscrizione: martedì 30 ottobre 2007, 6:33
- Desktop: LXDE
- Distribuzione: Ubuntu 18.04.1 LTS
- Sesso: Maschile
- Località: TO
- Contatti:
Re: python - passaggio graduale da un brano musicale ad un a
hai guardato le opzioni da command line di vlc? se, come mi sembra di capire, non è una cosa interattiva, potresti passargli tutti i brani da subito e forse si può scegliere se usare la dissolvenza tra l'uno e l'altro.
Se invce vuoi interromperli a una durata arbitraria che non perforza coincide con la fine del brano (o altre operazioni non "standard") è meglio usare una lib tipo gstreamer, sdl o simili.
Se invce vuoi interromperli a una durata arbitraria che non perforza coincide con la fine del brano (o altre operazioni non "standard") è meglio usare una lib tipo gstreamer, sdl o simili.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Re: python - passaggio graduale da un brano musicale ad un a
grazie Crap
Cercherò di capire come usare gstreamer (o sdl) ma penso che si una cosa piuttosto difficile (Mp3, Ogg e tanti altri formati.. )
Ciao.
Cercherò di capire come usare gstreamer (o sdl) ma penso che si una cosa piuttosto difficile (Mp3, Ogg e tanti altri formati.. )
Ciao.
- crap0101
- Rampante Reduce

- Messaggi: 8242
- Iscrizione: martedì 30 ottobre 2007, 6:33
- Desktop: LXDE
- Distribuzione: Ubuntu 18.04.1 LTS
- Sesso: Maschile
- Località: TO
- Contatti:
Re: python - passaggio graduale da un brano musicale ad un a
con gstreamer e sdl non hai problemi, puoi gestire tranquillamente wav, mp3, ogg, forse anche flac (non ricordo se sdl li supporta). Con gst mi pare di ricordare che ci sia già tutto di default, per sdl invece al massimo dovrai installare uno o due pacchetti in più.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
-
rai
- Imperturbabile Insigne

- Messaggi: 2889
- Iscrizione: domenica 11 maggio 2008, 18:03
- Desktop: plasma
- Distribuzione: 22.04
- Località: Palermo
Re: python - passaggio graduale da un brano musicale ad un a
Ma, a meno di volere stare in puro python (magari per essere multipiattaforma?), per
uso moc perché è leggerissimo ... e perchè lo conosco ;-)
forse rozzo ma immediato
io me la sbrigherei così:mandare in ascolto un brano musicale e dopo un certo tempo passare ad un altro.
Codice: Seleziona tutto
sudo apt-get-install mocCodice: Seleziona tutto
#!/usr/bin/env python
import subprocess, time
DurataAscolto = 10
def fade( segno ):
for volta in range(10):
time.sleep(.5)
subprocess.call("amixer set Master 2%{}".format(segno), shell=True)
subprocess.call("amixer set Master 100% unmute", shell=True) # attiva l'audio e regola il volume iniziale
subprocess.call("mocp -S; mocp -cap '/dati/Musica/Lou Reed - Vicious.mp3'", shell=True)
time.sleep( DurataAscolto )
fade('-')
subprocess.call("mocp -cap /dati/Musica/'Ray Charles - Hit the Road Jack.MP3'", shell=True)
fade('+')
Re: python - passaggio graduale da un brano musicale ad un a
Grazie anche a te, rai
Non conosco moc ma mi sembra semplice da usare
Il tuo esempio, mi sembra di capire a prima vista, che lanci moc e termina dopo un certo tempo
Per me invece Il cambio del brano musicale è legato ad una proiezione di foto
Quando arriva in proiezione una determinata foto, in base ad una lista nome foto-brano da ascoltare deve avvenire la chiusura graduale del brano precedente e l'inizio del nuovo brano (la partenza non è necessario che sia graduale)
Quindi dovrei lanciare moc con il brano (o meglio con più brani consecutivi). Ma all'arrivo della foto devo farlo chiudere in dissolvenza, per poi subito rilanciare moc con altri brani. E' possibile?
Non conosco moc ma mi sembra semplice da usare
Il tuo esempio, mi sembra di capire a prima vista, che lanci moc e termina dopo un certo tempo
Per me invece Il cambio del brano musicale è legato ad una proiezione di foto
Quando arriva in proiezione una determinata foto, in base ad una lista nome foto-brano da ascoltare deve avvenire la chiusura graduale del brano precedente e l'inizio del nuovo brano (la partenza non è necessario che sia graduale)
Quindi dovrei lanciare moc con il brano (o meglio con più brani consecutivi). Ma all'arrivo della foto devo farlo chiudere in dissolvenza, per poi subito rilanciare moc con altri brani. E' possibile?
- crap0101
- Rampante Reduce

- Messaggi: 8242
- Iscrizione: martedì 30 ottobre 2007, 6:33
- Desktop: LXDE
- Distribuzione: Ubuntu 18.04.1 LTS
- Sesso: Maschile
- Località: TO
- Contatti:
Re: python - passaggio graduale da un brano musicale ad un a
ma questa cosa la devi fare "live"? Come sincronizzi il sonoro e la proiezione delle immagini? Queste ultime sono visualizzate tramite un altro programma eseguito esternamente? (forse potrebbe tornati utile il modulo pexpect). btw, mi viene il dubbio che, piuttosto di python, ti serva un editor video!
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Re: python - passaggio graduale da un brano musicale ad un a
x Crap
la gestione delle foto è fatta dal mio programma Python. (Prima usavo FEH e non avrei potuto fare nulla) e posso agire tranquillamente alla proiezione di una determinata foto (ad essere precisi durante la proiezione della foto precedente a quella del cambio)
Certamente non esiste una sincronizzazione foto-musica e non è quello che voglio fare..
Però, al cambio di ambiente o scena, sarebbe ottimo risincronizzare musica-scena.
Ad esempio (semplifico):
- viaggio verso la montagna: varie foto del viaggio con musica adatta
- arrivo in montagna: foto dell'ambiente circostante e musica adatta alla montagna (cori di montagna ecc.)
- ritorno in città: chiusura dei cori (che sarebbe fuori luogo) e partenza di nuovi brani più adatti
Quindi la sincronizzazione non esiste: è solo un riallineamento in determinati punti (adattamento della musica alle scene visualizzate).
Visto in questo modo è anche facile fare l'abbinamento perchè essendo molto 'grossolano' (è solo legato a intere sequenze) è facile fare la colonna sonora (in pratica una colonna sonora per ogni lunga sequenza)
Spero di essermi spiegato....
Ciao
la gestione delle foto è fatta dal mio programma Python. (Prima usavo FEH e non avrei potuto fare nulla) e posso agire tranquillamente alla proiezione di una determinata foto (ad essere precisi durante la proiezione della foto precedente a quella del cambio)
Certamente non esiste una sincronizzazione foto-musica e non è quello che voglio fare..
Però, al cambio di ambiente o scena, sarebbe ottimo risincronizzare musica-scena.
Ad esempio (semplifico):
- viaggio verso la montagna: varie foto del viaggio con musica adatta
- arrivo in montagna: foto dell'ambiente circostante e musica adatta alla montagna (cori di montagna ecc.)
- ritorno in città: chiusura dei cori (che sarebbe fuori luogo) e partenza di nuovi brani più adatti
Quindi la sincronizzazione non esiste: è solo un riallineamento in determinati punti (adattamento della musica alle scene visualizzate).
Visto in questo modo è anche facile fare l'abbinamento perchè essendo molto 'grossolano' (è solo legato a intere sequenze) è facile fare la colonna sonora (in pratica una colonna sonora per ogni lunga sequenza)
Spero di essermi spiegato....
Ciao
-
rai
- Imperturbabile Insigne

- Messaggi: 2889
- Iscrizione: domenica 11 maggio 2008, 18:03
- Desktop: plasma
- Distribuzione: 22.04
- Località: Palermo
Re: python - passaggio graduale da un brano musicale ad un a
Prima di tutto voglio ripetere che ho messo MOC nell'esempio solo perchè già lo uso mentre non conosco le librerie/moduli python consigliati da crap0101. Sta a te valutare cosa si adatta meglio nel tuo caso
Comunque, a prescindere da come farai a visualizzare le foto e riprodurre la musica, se ho capito bene quello che ti serve è:
Comunque, a prescindere da come farai a visualizzare le foto e riprodurre la musica, se ho capito bene quello che ti serve è:
Se l'elenco delle foto è noto a priori, potrebbe bastare una lista ordinata di tuple (immagine, musica) in un modo simile a questoQuando arriva in proiezione una determinata foto, in base ad una lista nome foto-brano da ascoltare deve avvenire la chiusura graduale del brano precedente e l'inizio del nuovo brano
Codice: Seleziona tutto
$ python
Python 2.7.3 (default, Dec 18 2014, 19:10:20)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> media = [('immagine1', 'musica1'), ('immagine2', 'musica1'), ('immagine3', 'musica1'), ('immagine4', 'musica2'), ('immagine5', 'musica2'), ('immagine6', 'musica2'), ('immagine7', 'musica3'), ('immagine8', 'musica3'), ('immagine9', 'musica3')]
>>> sound = media[0][1]
>>> for t in media:
... if sound != t[1]:
... print "fade-out di {} dopo averlo suonato un tot".format(sound)
... print "mostro {} e suono {}".format(t[0], t[1])
... if sound != t[1]:
... print "fade-in di {}".format(t[1])
... sound = t[1]
...
mostro immagine1 e suono musica1
mostro immagine2 e suono musica1
mostro immagine3 e suono musica1
fade-out di musica1 dopo averlo suonato un tot
mostro immagine4 e suono musica2
fade-in di musica2
mostro immagine5 e suono musica2
mostro immagine6 e suono musica2
fade-out di musica2 dopo averlo suonato un tot
mostro immagine7 e suono musica3
fade-in di musica3
mostro immagine8 e suono musica3
mostro immagine9 e suono musica3
>>>
Re: python - passaggio graduale da un brano musicale ad un a
x rai.
Ho installato moc ed ho letto il manuale.
Ho già fatto qualche prova e mi sembra che tutto vada bene ed è quello che mi serve.
Unica cosa che non ho capito è come fare per sapere se moc è gia attivo o no. Ho comunque visto che se tento di attivarlo ed è gia attivo, non sucede nessun guaio, però preferirei evitarlo.
Anche per il volume: prima di eseguire la playlist c'è modo di sapere il volume a quanto impostato? (ho visto invece come fare per riimpostarlo con -v)
Grazie. Mi hai consigliato il programma giusto.....
Ho installato moc ed ho letto il manuale.
Ho già fatto qualche prova e mi sembra che tutto vada bene ed è quello che mi serve.
Unica cosa che non ho capito è come fare per sapere se moc è gia attivo o no. Ho comunque visto che se tento di attivarlo ed è gia attivo, non sucede nessun guaio, però preferirei evitarlo.
Anche per il volume: prima di eseguire la playlist c'è modo di sapere il volume a quanto impostato? (ho visto invece come fare per riimpostarlo con -v)
Grazie. Mi hai consigliato il programma giusto.....
-
rai
- Imperturbabile Insigne

- Messaggi: 2889
- Iscrizione: domenica 11 maggio 2008, 18:03
- Desktop: plasma
- Distribuzione: 22.04
- Località: Palermo
Re: python - passaggio graduale da un brano musicale ad un a
maresama ha scritto:Unica cosa che non ho capito è come fare per sapere se moc è gia attivo o no.
Codice: Seleziona tutto
pidof mocp >/dev/null && echo MOC è attivo || echo MOC non è attivoinfatti per lanciare moc io mi limito a evitaremaresama ha scritto:Ho comunque visto che se tento di attivarlo ed è gia attivo, non sucede nessun guaio,
mocp -S && altro comando
in favore di
mocp -S ; altro comando
per essere sicuro che altro comando venga eseguito anche se mocp da errore di già in esecuzione
Comunque per `spegnere' MOC
EDIT-x, --exit
Bring down the server.
hai modificato il post mentre rispondevo oppure non avevo visto questo:
avrai visto che per regolare il volume non uso moc (adesso non ricordo ma in passato ho avuto qualche problema con l'opzione -v)Anche per il volume: prima di eseguire la playlist c'è modo di sapere il volume a quanto impostato? (ho visto invece come fare per riimpostarlo con -v)
preferisco intervenire più direttamente sul driver della scheda audio con amixer
riguardo alla domanda: non so se quello che chiedi si possa ottenere senza una pipe, p.es. con grep:
Codice: Seleziona tutto
amixer get Master | grep -om1 [0-9]*%Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti
