2016-11-26, 00:58
  #13
Medlem
BlodigtHelvetes avatar
Citat:
Ursprungligen postat av hundensår
sorry har dålig koll på linux.

Kikade på verktygen och de är lite för tunga för mitt ändamål. Tack i alla fall för att du tog dig tid att försöka förstå.
Citera
2016-11-26, 01:04
  #14
Medlem
BlodigtHelvetes avatar
Citat:
Ursprungligen postat av 4yoonly
Ok, jo jag förstår...

På 43+ minuter så skall det säkert inte vara några problem att minska några sekunder utan att det i princip hörs... (det räcker ju med att höja/sänka uppspelningsfrekvensen lite)

Men tänk dig om du har ett på 10 sekunder... och du använder detta verktyg och säger att det skall vara på 5 sekunder...
Förstår du problematiken?

Man kan inte rent magiskt ta bort 5 sekunder på 10 sekunders klipp och behålla all data...

Jag förstår problematiken i det fallet du exemplifierar, men det kommer aldrig att hända. Förskjutningen i tid (den som jag försöker att råda bot på) är i sig en (viss varierande) faktor av ursprungsfilens längd. Med andra ord - ju kortare filen är, desto kortare "tidsdistortion" är möjlig (och vice versa).

Till saken hör att jag med denna metod ändå aldrig kommer att behanda ljudfiler som är kortare än 30 minuter (och då är 30 minuter i absolut lägsta klass).

Kortfattat: det handlar om musikalbum som är sammanslagna i en enda mp3-fil. Jag måste matcha dessa mot den längd som de egentligen ska ha (matchat mot en semi-officiell databas). Jag önskar automatisera denna process. Eller, jag har redan gjort det. Sista pusselbiten är denna.

Det stör mig något ofantligt att någonting så simpelt ska vara så svårt att genomföra!
Citera
2016-11-26, 01:23
  #15
Medlem
hundensårs avatar
Citat:
Ursprungligen postat av BlodigtHelvete
Kikade på verktygen och de är lite för tunga för mitt ändamål. Tack i alla fall för att du tog dig tid att försöka förstå.

Lugnt, lycka till ändå!
Citera
2016-11-26, 01:39
  #16
Medlem
EckiEckis avatar
Citat:
Ursprungligen postat av BlodigtHelvete
Kikade på verktygen och de är lite för tunga för mitt ändamål. Tack i alla fall för att du tog dig tid att försöka förstå.

En lösning är ju att konvertera till en .au fil. Dessa har ju en exakt bitrate per tidsenhet. Då kan du ju enkelt få fram faktorn genom att bara titta på filstorlek och längd.

Med mp3 blir det svårt med tanke på padding och liknande.
Citera
2016-11-26, 01:40
  #17
Medlem
http://breakfastquay.com/rubberband/
Finns källkod så du kan kompilera själv - annars skall den finnas för de flesta distar i repositories.

Mer kompetent - men grafiskt gränssnitt; http://www.reaper.fm/

Termen du söker är "time stretching"
Citera
2016-11-26, 01:41
  #18
Medlem
Jag skulle nog lösa det genom att skriva någon form av skript. Om du redan har ett verktyg för att göra det hela mha förändringsfaktor är det rätt trivialt. Följande pseudo bör fungera som mall:

Kod:
change_len <in> <out> <seconds>:

len = check_len in
factor = (len+seconds)/len
verktyg -i in -o out -tempo factor
Det bör vara hyfsat lätt att koda i bash.
Citera
2016-11-26, 01:51
  #19
Medlem
BlodigtHelvetes avatar
Citat:
Ursprungligen postat av RulleRivare
Jag skulle nog lösa det genom att skriva någon form av skript. Om du redan har ett verktyg för att göra det hela mha förändringsfaktor är det rätt trivialt. Följande pseudo bör fungera som mall:

Kod:
change_len <in> <out> <seconds>:

len = check_len in
factor = (len+seconds)/len
verktyg -i in -o out -tempo factor
Det bör vara hyfsat lätt att koda i bash.

Det är ett skript jag använder det i, problemet är att verktygen jag använder (vilka är de två största om jag förstått det rätt) inte är särskilt precisa med faktorn. Därför söker jag andra vägar.
Citera
2016-11-26, 01:55
  #20
Medlem
Citat:
Ursprungligen postat av BlodigtHelvete
Det är ett skript jag använder det i, problemet är att verktygen jag använder (vilka är de två största om jag förstått det rätt) inte är särskilt precisa med faktorn. Därför söker jag andra vägar.
Ah, my bad.

En riktigt jävla ful lösning är att loopa scriptet tills det är tillräckligt bra. Kanske sabbar ljudkvaliteten något, och det känns ju som ett riktigt fulhack, men det kan fungera. Typ så här:

Kod:
loop:
  change_length file desired_length
  length = check_length file
until abs(length - desired_length) < tolerance
Citera
2016-11-26, 01:58
  #21
Medlem
BlodigtHelvetes avatar
Citat:
Ursprungligen postat av RulleRivare
Ah, my bad.

En riktigt jävla ful lösning är att loopa scriptet tills det är tillräckligt bra. Kanske sabbar ljudkvaliteten något, och det känns ju som ett riktigt fulhack, men det kan fungera. Typ så här:

Kod:
loop:
  change_length file desired_length
  length = check_length file
until abs(length - desired_length) < tolerance

Har redan testat, men det är sjukt svårt att träffa rätt. Sen är det inte roligt att mecka med precisionen i så stora filer heller. Tar ritkigt lång tid :-)
Citera
2016-11-26, 02:59
  #22
Medlem
Shamdons avatar
Citat:
Ursprungligen postat av BlodigtHelvete
Är dessa verktyg som finns tillgängliga i Linux-miljö? Har de tillägg för kommandon i (eller huserar explicit i) terminalen?
Jag har för mig att LAoE har kommandon du kan köra i terminalen.
Kan vara värt en koll kanske. Finns här;
http://www.oli4.ch/laoe/home.html
Citera
2016-11-26, 08:45
  #23
Medlem
Citat:
Ursprungligen postat av BlodigtHelvete
Alltså, det är inte datamängden jag vill komprimera, det är längden på själva ljudfilen (vilket förvisso påverkar datamängden i någondera riktning, men det är inte huvudsyftet).

Jag skulle kunna tänka mig att göra det i ett annat format och sedan konvertera till mp3, om det gör saken lättare? Jag skulle till och med kunna acceptera viss försämring i kvalitet om detta gick att genomföra.

Citat:
Ursprungligen postat av BlodigtHelvete
Jag förstår problematiken i det fallet du exemplifierar, men det kommer aldrig att hända. Förskjutningen i tid (den som jag försöker att råda bot på) är i sig en (viss varierande) faktor av ursprungsfilens längd. Med andra ord - ju kortare filen är, desto kortare "tidsdistortion" är möjlig (och vice versa).

Till saken hör att jag med denna metod ändå aldrig kommer att behanda ljudfiler som är kortare än 30 minuter (och då är 30 minuter i absolut lägsta klass).

Kortfattat: det handlar om musikalbum som är sammanslagna i en enda mp3-fil. Jag måste matcha dessa mot den längd som de egentligen ska ha (matchat mot en semi-officiell databas). Jag önskar automatisera denna process. Eller, jag har redan gjort det. Sista pusselbiten är denna.

Det stör mig något ofantligt att någonting så simpelt ska vara så svårt att genomföra!

Citat:
En lösning är ju att konvertera till en .au fil. Dessa har ju en exakt bitrate per tidsenhet. Då kan du ju enkelt få fram faktorn genom att bara titta på filstorlek och längd.

Med mp3 blir det svårt med tanke på padding och liknande.

Citat:
Ursprungligen postat av BlodigtHelvete
Har redan testat, men det är sjukt svårt att träffa rätt. Sen är det inte roligt att mecka med precisionen i så stora filer heller.

Jag tror du måste förlika dig med att det du gör med ljudfilen faktiskt handlar om förändringsfaktor. Om den numeriska precisionen blir otillräcklig, så handlar det ju om att ljudklippets längd är relativt stor.

Mitt förslag:
  1. Konvertera till .au eller annat lättkontrollerat format.
  2. Räkna ut den (korrekt) avrundade förändringsfaktor som ger aningen för kort reslultat.
  3. Addera 10 sekunder tystnad (typ).
  4. Trunkera resultatet på exakt den längd du önskar.
  5. ("återkonvertera")
Citera
2016-11-26, 11:42
  #24
Medlem
BlodigtHelvetes avatar
Citat:
Ursprungligen postat av iconicatab
Jag tror du måste förlika dig med att det du gör med ljudfilen faktiskt handlar om förändringsfaktor. Om den numeriska precisionen blir otillräcklig, så handlar det ju om att ljudklippets längd är relativt stor.

Mitt förslag:
  1. Konvertera till .au eller annat lättkontrollerat format.
  2. Räkna ut den (korrekt) avrundade förändringsfaktor som ger aningen för kort reslultat.
  3. Addera 10 sekunder tystnad (typ).
  4. Trunkera resultatet på exakt den längd du önskar.
  5. ("återkonvertera")

Intressant slutsats. I värsta fall får jag ju göra det, men varför är verktygen så slarviga med precisionen egentligen? Om de inte vore det så skulle detta inte vara ett problem.

Vi tar ett exempel. Hejda mig gärna jag räknar eller tänker fel någonstans.

Givet:
  • Faktisk längd: 43:29 = 2609 (s)
  • Önskad längd: 43:02 = 2582 (s)
  • Differens: L(f) - L(ö) = -27 (s)

Tillvägagångssätt:
L(f) * x = L(ö) ->
-> x = L(ö) / L(f) ->
-> x = 2582 / 2609 ->
-> x = 0,989651207359

Kontroll:
L(f) * 0,989651207359 = L(ö) ->
-> 2609 * 0,989651207359 = 2582 = L(ö)

Både SoX och ffmpeg har filter (tempo respektive atempo) för att göra det jag vill göra. Dessa filter kräver en förändringsfaktor (x) som parameter. Om jag enligt exemplet ovan använder mig av faktor x så får jag ett helt annat resultat.

Är det kanske till och med jag som tänker fel någonstans?
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in