Sida 4 av 7

Postat: 4 december 2003, 00:49:53
av Melker
Liten uppdatering...
Det som tar tid är ju när läsaren i HDn får göra lite större hopp än nästa sector på disken... Tidigare så läste jag en/två sectorer mp3-data och sedan adressen till nästa cluster från en annan sector på disken och detta tog ganska mycket tid och orsakade hackande uppspelning... Har provat lite olika metoder nu för att snabba upp det, bla att läsa en hel bunnt med cluster-adresser, spara i AVRns RAM och sedan bara föja adresserna. Detta gick väl bra tills det var dags att läsa in nya adresser (ungefär var 4sek), då la musiken av i ca 1 sek och forsatte sedan :doh:

Nu har jag funderat i några dagar på hur det ska gå att lösa och det jag tänkt mest på och nu börjat arbeta med är att läsa hela cluster-kjedjan för filen som ska spelas och spara den som en fil på hårddisken och sedan läsa adressena igen, fast från filen denna gång. Fördelen med detta framför att läsa adresserna direkt från FAT där dom ligger är att här får man alltid 128adresser vid varje läsning av en sector av filen, jämfört med att läsa adresserna när dom ligger i FAT på en extremt dåligt defragmenterad disk, då man kan ha otur och få en adress från en sektor = att man kanske måste läsa 128sectorer för att få 128adresser = Massor av tid (Iof så lär den disken som är så dåligt defraggad aldrig stötas på, men bara så att det blir lite lättare att förstå skildnaden).

Eftersom jag knappt förstår själv vad jag babblar om här ovan så försöker jag sammanfatta det lite enkelt här nedan:

Kod: Markera allt

Spara hela cluster-kjedjan i en fil på HDn.
Loopa tills låten är slut
{
	Läs 128cluster-adresser från den sparade filen.

	Kör 128ggr, tills clusteradresserna är slut
	{
	Läs ett cluster mp3-data som första/andra/tredje/... cluster-adressen pekar på.
	Skicka Mp3-datan från det lästa clustret till decodern.
	}
}
Det hela känns lite omständigt (Först läsa sedan skriva och läsa igen) och kommer nog ta några dagar att greja när jag tidigare inte idats göra några rutiner för att skapa filer på HDn... Får se hur det går, nåt ska man väl om inte annat lära sig på det... Gonatt!

Postat: 4 december 2003, 19:19:38
av strombom
En bra sak kan ju vara att kolla på yampp:s källkod, där finns ju en hårddiskspelare som skall fungera bra.

/Johan

Postat: 4 december 2003, 19:28:26
av erixon
Hur gammal är hårdisken, menar de gammla hårdiskarna var extremt slö....
en liten nyare kannse är bättre...

Bara en ide :)

Postat: 4 december 2003, 19:38:23
av Melker
Jo, det är bara det att Yampp3 (som använder hårddisk) har externt RAM, så han kan lösa det på en del andra smidigare sätt, men jag ska ta och kika på hans kod igen.

Postat: 4 december 2003, 23:44:51
av Melker
erixon skrev:Hur gammal är hårdisken, menar de gammla hårdiskarna var extremt slö....
en liten nyare kannse är bättre...

Bara en ide :)
Jag tror inte det är hårddisken som är problemet, kanske en lite del av det. Hårddisken kan nog vara kring 5-7år, kommer inte ihåg när 1GB:are var aktuellt och hittar inget tillvärkningsdatum på den. Ska iaf snart köpa mig en ny HD till den, så får väl se då.

Postat: 4 december 2003, 23:47:39
av strombom
Melker skrev:Jo, det är bara det att Yampp3 (som använder hårddisk) har externt RAM, så han kan lösa det på en del andra smidigare sätt, men jag ska ta och kika på hans kod igen.
jag trodde att du hade externt ram, du höll i varje fall och pratade om det för några månader sedan

Postat: 5 december 2003, 15:23:49
av Melker
:) Jo, hade det när jag började och skrev i asm, men jag skrotade det när jag började om med programmeringen till en Mega32:a, skerv det tidigare i ett inlägg...

Har nu iaf kollat en del på yampp3-koden och jag tror att han inte använder det externa RAMet under uppspelning. Tänkte först när jag kollade på hans kod att den var ganska lik min som jag körde från början för uppspelningen, men efter lite mer tittande så kom jag på att dom inte alls var särskillt lika och att hur min fungerade inte var särskillt smart heller. Så ska nu prova göra om koden lite mer som yampp3s kod och se om man kan få det att fungera bättre.

Postat: 13 januari 2004, 00:20:52
av klintan
kanske en konstig fråga, men jag undrar om det finns något chip(helst alla funktioner samlade) som kan koda wav - mp3? alltså en hårdvaru encoder, tänkte på funktioner så som att man kan spela in låtar från radio till mp3 och från en cd skiva till mp3 automatiskt till en hårddisk utan att behöva ha operativ, prog m.m. styrt från en mikroproccesor.

Postat: 14 januari 2004, 20:03:47
av DragonOrb
kolla på strombombs sida, han har beställt några såna till sin mp3..

Postat: 14 januari 2004, 22:03:22
av strombom
Jupp jag har några såna, eller ska rättare sagt hämta ut dem på posten imorron.

Kretsen heter Micronas MAS3587F och har alla funktioner du kan behöva.

Följande in och utgångar finns:
Digital ingång för DVD spelare och DAB mottagare.
Analog stereoutgång för hörlurar med inbyggd förstärkning
Monoingång för mikrofon
Ingång för FM-radio alternativt bandspelare
Digital in och ut för digital kommunikationsradio

/Johan

Postat: 17 januari 2004, 14:22:18
av klintan
tack så mycket, det är precis va jag letat efter. Micronas hade mycket intressanta kretsar. tack så mycket

Postat: 17 januari 2004, 16:07:03
av strombom
Vad har du tänkt att bygga för något?

/Johan

Postat: 17 januari 2004, 21:03:34
av klintan
en "fast" mp3 spelare med inspelning från radio. funderade t o m på att ha cd spelare först och encoda om låtarna till mp3 för att lägga in dom på hårddisken men lade ner det för tillfället efter lite övervägande då det är svårt att fixa ID3 taggarna till de nya låtarna.måste kopplas till internet då och så. Samt ganska mycket datakraft krävs. Ett litet problem finns dock fortfarande och det är om det finns nåt system för hur man kan urskilja låtarna när de spelas så att programmet vet när den ska börja spela in och så vidare. Ungefär som "reklam kännaren" som finns i en annan tråd.. ska testa och söka lite på Google :) nån kanske har kunskap i det?

Postat: 17 januari 2004, 23:14:54
av strombom
vanliga kassettbandspelare kan man ju snabbspola så att de stannar framför nästa låt, de går ju på att det blir tyst

det kanske du kan köra på... men det det blir ju aldrig perfekt.

/Johan

Postat: 23 januari 2004, 09:04:26
av Kent
Intressant projekt. Klart imponerad :)



Någon som gjort något liknande fast med PIC processorer?