leakim skrev:Letade just efter ett sätt att lyssna på P1 sommarpratarna och samtidigt spela in för att ev. lägga in på min mp3 spelare.
1. Installera
Installera alsa-utils och lame.
(Om du redan har alsa-utils installerad så gör det inget att uföra kommandot i alla fall. Den säger i så fall "alsa-utils is already the newest version" och en massa annat blaj man inte behöver bry sig om.)
2. Experimentera
Först testar vi manuellt att det funkar att fånga ljud i datorn. (Verkar det jobbigt? I så fall gå direkt till Automatisera nedan.)
I ett terminalfönster, skriv
- Stapeln till vänster är <Master>. Lägg på minnet vilken volym som är inställd där. (Ett tal mellan 0 och 100, t.ex 50)
- Tryck TAB en gång så att View [Capture] är vald
- Tryck högerpil tills <Capture> är vald
- Tryck mellanslag så att det står CAPTUR ovanför <Capture>
- Tryck upp- eller ner-pil så att stapeln för <Capture> får ungefär samma värde som <Master> (som du lade på minnet ovan. t.ex 50.) Ungefär räcker
- Tryck högerpil tills <Mix> är vald
- Tryck mellanslag så att det står CAPTUR ovanför <Mix>
- Tryck ESC för att lämna alsamixer
Använd din favoritmediaspelare och börja spela en musikfil eller en radiostation. När du hör musik, skriv:
Om det fungerar ska du se en stapel med ### som rör sig med musiken. Låt den hålla på en stund, några sekunder eller en minut. Tryck sedan Control-C. Öppna test.wav med din favoritmediaspelare och kontrollera att den innehåller musiken du spelade.
Wav-filer är för otympligt att bära med sig så vi provar att fånga ljud och konverterar till mp3 i en och samma kommandorad. Utför följande kommando och börja sedan spela musik:
Kod: Markera allt
arecord -vv -c2 -r44100 -d600 >(lame - test.mp3)
Rör sig stapeln? Tryck Control-C etfer en stund. Du bör ha fått en fil test.mp3. Lyssna på den att den har rätt ljud.
3. Automatisera
Vi gör ett litet script som gör allt automatiskt. Den sätter t.o.m CAPTUR i mixern. Spara följande i en fil "spelain".
Kod: Markera allt
#!/bin/bash
#
filename=$1
duration=3600 # 60 minutes
channels=2
rate=44100
if [ -z "$filename" ]; then
filename=`date '+%Y%m%d-%H%M%S.mp3'`
fi
# Enable capture channels and set capture volume to match master volume
vol=`amixer sget Master,0 | grep -om1 '[0-9]*%'`
amixer -q sset Capture,0 $vol unmute cap
amixer -q sset Mix,0 unmute cap
echo "Started recording $filename; Control-C to stop"
case "$filename" in
*.mp3)
arecord -r$rate -c$channels -d$duration -vv >(lame - $filename);;
*)
arecord -r$rate -c$channels -d$duration -vv $filename;;
esac
När du sparat filen "spelain", skriv följande för att göra den körbar:
Scriptet slutar spela in automatiskt efter en timme, så att man inte fyller hårddisken om man glömmer bort den och går från datorn. Ändra 3600 till 5400 eller mer för att få med hela sommar-programmet.
Nu kan du spara det du hör i en mp3-fil med
eller i en wav-fil med
eller i en mp3-fil som automatiskt får dagens datum och klockslag som filnamn med bara
Glöm inte att avbryta med
Control-C när du inte vill spela in mer. Tänk på att om du ändrar volym eller orsakar andra ljud i datorn så kan det påverka ljudet i inspelningen. Hoppas det funkar.
4. Reservation
När jag gör så här så får jag inte alldeles optimal ljudkvalitet. Det kanske beror på kvaliten på ljudkortet. Det kanske finns bättre sätt.