Permalänk
Medlem

Interaktiv Köksradio

Hej!

Tänkte bara berätta lite om ett projekt som jag just nu har återupptagit. Den interaktiva "köksradion".

Denna lösning består av två delar, allt trådlöst.

Där datorn står:
1. En ljudserver (som består av gammal AMD 1,4 Ghz, 512 mb ram)
2. Tillhörande IR-mottagare kopplad till dators COM-port
3. IR-repeater som trådlöst vidarebefodrar IR-signaler från köket.
4. Trådlös ljudlänk som skickar ljudet till köket.

I Köket:
1. En "köksradio", i mitt fall ett par gamla datorhögtalare
2. IR-repeater som tar emot signalen från fjärren och vidarebefodrar den till rummet där datorn står.
3. Trådlös ljudlänk som tar emot ljudet och är kopplad till högtalarna.

Sedan så har jag gjort ett antal script, ett för varje radiokanal som jag vill kunna lyssna på i köket. Alla script är skrivna i Auto-It som är ett programmeringspråk för att automatisera saker i Windows.

För att köra igång skriptet för den valda radiokanalen så använder jag ett program tillhörande IR-mottagaren som heter IR-Assistent. Med det så kan jag knyta valfri knapp på fjärrkontrollen (en gammal fet fjärr som tillhört en MD-spelare), det fina med den fjärren är att den har 25 st numeriska knappar, vilket passar mig utmärkt eftersom att jag vill kunna lägga in många stationer. Detta gör man sedan i IRassistent. Dessutom så är skripten som körs gjorda på så vis att varje val annonseras med en syntetisk röst så man vet att man valt rätt kanal..

Sedan så har jag gjort en script för att spela random musik från en gigantisk playlist i winamp som innehåller all musik jag har.

Dessutom eftersom att köket saknar klocka så har jag skrivit ett script som pausar den musik / radio som spelas och sedan så läses den aktuella tiden upp med hjälp av en syntetisk röst.

Det som den nu klarar av är att spela upp obegränsat antal webradio-kanaler (bara antalet knappar på fjärren som sätter begräsningen). I dagsläget har jag lagt in 15 st kanaler.

De skript som finns är:

lugna.aut - Lugna Favoriter
p3star.aut - P3Star
radiocity.aut - Radio City
mixmegapol.aut - Mix Megapol
studio107.aut - Studio 107,5
svenskafav.aut - Svenska Favoriter
mdrsputnik.aut - MDR Sputnik
nrkmpetre.aut - NRK Mpetre
mysteria.aut - Mysteria
njoy.aut - N-Joy Radio
nrj.aut - NRJ Hit Radio
Megamixers.aut - Megamixers.com Radio
radioactive.aut - Radio Active
radioseven.aut - Radio Seven
radiomatch.aut - Radio Match
---
playwinampall.aut - Spelar en playlist med all musik jag har i random

Sedan har jag gjort några speciella script för olika saker:

kill.aut - För att döda alla aktuella processer som är inblandade (om nåt skulle hänga sig eller bli fel. Tvingar mplayer, real, winamp, autoit att avslutas.

tidsangivelse.aut - Pausar den aktuella kanalen / musiken och talar om hur mycket klockan är och sätter därefter igång musiken igen.

prev.aut - Föregående låt i Winamp
next.aut - Nästa låt i Winamp
rewind.aut - Spola bakåt i Winamp
forward.aut - Spola frammåt i Winamp

De program som används för att åstakomma allt detta är:

IR-Styrning: IR-Assistent: http://www.irassistant.com/dotcom/v_current/
Commandline styrning till Winamp : Clever: http://www.winamp.com/plugins/details.php?id=58602
Real Player: http://www.real.com
Media Player: (Ingår i Windows)
Winamp: http://www.winamp.com
Talking Clock: http://www.millstone.demon.co.uk/download/spclock.htm
Auto-It: http://www.autoitscript.com/AutoIt

Vi kan ta o se hur ett av scripten ser ut, de är lite olika beroende på vilken uppspelare som den aktuella stationen har valt. Alltså winamp/mediaplayer/real/eller nån web-variant.

Vi tar t.ex Radio Seven som använder sig av Shoutcast som spelas upp i Winamp.

Kommenterar hela scriptet och förklarar:

; Vi börjar med att visa eventuellt inaktiverade fönster
SetTitleMatchMode, 2
WinShow, Real
WinShow, Winamp
WinShow, Meia Player
WinShow, Internet Explorer

; Om ett av dessa program hittas så hoppar skriptet ned till rätt del för att avsluta det programmet. T.ex om musik redan spelas från en annan radiokanal när man väljer kanalen. Så att inte två spelas samtidigt.

IfWinExist, Internet Explorer,,goto, fixie
IfWinExist, RealPlayer,,goto, fixreal
IfWinExist, Winamp,,goto, fixwinamp
IfWinExist, Windows Media Player,,goto, fixmediaplayer

; Om ingen kanal spelas så hoppar skriptet ned till startstream (som startar den valda radiokanalen..)

SplashTextOn, 400, 100, RÖR EJ, Ingen Radio spelas..
goto, startstream

; Här börjar de olika skripten beroende på vilken spelare som är öppen och skall stängas innan den aktuella spelaren skall startas. Auto-IT är ganska enkelt, så det är rätt självförklarande nedan..

; --- Fix IE ---
fixie:
WinActivate, Internet Explorer
send,!{F4}
IfWinExist, Internet Explorer,,goto, fixie
IfWinExist, RealPlayer,,goto, fixreal
IfWinExist, Winamp,,goto, fixwinamp
IfWinExist, Windows Media Player,,goto, fixmediaplayer
goto, startstream

; --- Fix av RealAudio ---
fixreal:
WinActivate, Real
send, ^s
send,!{F4}
IfWinExist, Internet Explorer,,goto, fixie
IfWinExist, RealPlayer,,goto, fixreal
IfWinExist, Winamp,,goto, fixwinamp
IfWinExist, Windows Media Player,,goto, fixmediaplayer
goto, startstream

; --- Fix av Winamp ---
fixwinamp:
WinActivate, Winamp
send,!{F4}
IfWinExist, Internet Explorer,,goto, fixie
IfWinExist, RealPlayer,,goto, fixreal
IfWinExist, Winamp,,goto, fixwinamp
IfWinExist, Windows Media Player,,goto, fixmediaplayer
goto, startstream

; --- Fix av Mediaplayer ---
fixmediaplayer:
WinActivate, Windows Media Player
send,!{F4}
IfWinExist, Internet Explorer,,goto, fixie
IfWinExist, RealPlayer,,goto, fixreal
IfWinExist, Winamp,,goto, fixwinamp
IfWinExist, Windows Media Player,,goto, fixmediaplayer
goto, startstream

; Vid denna punkt så är det tyst och den eventuella tidigare spelaren är nedstängd. Dags att annonsera i högtalarna vilken kanal som är vald.
Detta görs med en talsyntes som finns på nätet och som producerar en röst som säger: "Starting requested channel, Radio Seven. Please wait, starting stream", har en wave-fil för varje station som finns inlagd.

; ------ START AV STREAM
startstream:

; Pausar skriptet i 2 sek, för att evetuella processer skall hinna stängas.
Sleep, 2000
Run, C:\\program\\musik\\yamp\\yamp.exe c:\\radioseven.wav
WinMinimize, yamp
step2:

; Startar den aktuella spelaren, i detta fall Winamp.
run, c:\\Program\\Musik\\Winamp5\\winamp.exe
; Väntar på att winamp skall startas.
WinWait, Winamp
; Ger Winamp lite extra tid att komma igång.
Sleep, 2000
; Startar spellista som innehåller shoutcastservrarna till Radioseven.
run, C:\\clever.exe loadplay radioseven.pls
---

Varje skript ser nästan likadant ut förutom startstream som är lite annorlunda beroende på kanal/spelare. Endel är lite klurigare att få att fungera som man vill, t.ex Webbaserade spelare som inte tar commandlines. Kan ta ett exempel som MixMegapol:

Vi kör från startstream:

; ------ START AV STREAM
startstream:
; En annan radiokanal, en annan wav-fil som annonserar vilken kanal som valts.
Run, C:\\program\\musik\\yamp\\yamp.exe c:\\mixmegapol.wav
Sleep, 3000
WinMinimize, yamp
;sedan är det dags för att köra igång den flashbaserade spelaren i IE, lite krångligare än med Winamp..
step2:
;Kör igång IE
Run, c:\\Program\\Internet Explorer\\iexplore.exe
;Väntar på att IE skall startas
WinWait, Internet Explorer
;Tabbar ned till location
send, {TAB}
SetKeyDelay, 5
;Skickar adress-raden (texten som skall skrivas i)
send, http://www.nwrweb.com/player/show/mixmegapol/mixmegapol/48
;Skickar ENTER
send, {enter}
---
Sedan är det klart.

Med Mediaplayer så ser det lite annorlunda ut eftersom att mediaplayer har stöd för commandline ibyggt.

; ------ START AV STREAM
startstream:

;En annan station, en annan WAV-fil med annonserings röst
Run, C:\\program\\musik\\yamp\\yamp.exe c:\\Svenskafav.wav

WinMinimize, Yamp
step2:

;Sätter igång mplayer2 och som ni ser så är sökvägen till streamen "inbakad"
Run, c:\\windows\\servicepackfiles\\i386\\mplayer2.exe /play http://www.svenskafavoriter.se/stream/stream.asx
;Här har jag lagt in en felmeddelande koll så om streamen inte fungerar av nån anledning så läses ett felmeddelande upp av den syntetiska rösten.
;Sover i 10 sek för att vänta på fel vid anslutningen.
sleep,10000
;Om fel upptäcks så går scriptet till den delen där felmeddelande rösten körs igång.
IfWinExist, Fel i Windows Media Player,,goto, wmperror
goto, end
;Här är raden som sätter igång WAV-filen med felmeddelande rösten.
wmperror:
Run, C:\\program\\musik\\yamp\\yamp.exe c:\\wmperror.wav
;Sedan dödas mplayer2 processen.
Run, tskill mplayer2
end:

Tja, det var ett litet axplock hur allt fungerar. Finns en lite mer schematisk beskrivning på min gamla hemsida med ilustrationer och så, dock är de scripten som finns i denna tråd uppdaterade och reviderade och den sidan som jag länkar är lite out-of-date, även om den innehåller lite mer bilder o så.

http://www.itv.se/~a1013/stroboscope/artiklar/bredband.htm

Om nån är intreserad av att ta del av alla nya AUT-filer och de WAV-filer jag har beskrivit ovan så hör av er till mig på hans.zetterberg@pp.itv.se så mailar jag en zip till er.

Om ni undrar nåt, maila eller fråga här i tråden!

/Hasse

Visa signatur

|| Huvuddator ||INTEL CORE 2 QUAD Q9550 2.8GHZ, CORSAIR 4 (1x4) GB DDR2 PC6400 XMS2 XTREME, ASUS RADEON HD4850 512MB, Seasonic S12 430 Watt (Mkt tyst/stabilt nätagg)|| HTPC || SAMSUNG DVD±R/RW/RAM, INTEL CORE 2 DUO E8400 3.0GHZ 6MB 1333MHZ S-775 , INTEL DG45ID G45 S-775 M-ATX, CORSAIR 4GB VS DDR2 PC6400 800MHZ CL5 (2X2GB), ANTEC NSK1380 MICRO-ATX 350W

Permalänk
Medlem

coolt Skulle åxå vilja ha så.. Men för mig skulle det räcka med trådlös ljudöverföring å fjärr..

Visa signatur

laptop - Compaq 615
foto - Nikon D3000 + 18-105
Bloggen med lite foton och skitsnack