C++ och Little Endian
Postat: 15 jan 2008, 22:31
Hej igen!
Har lite fler frågor när det gäller C++, som den nybörjare jag fortfarande är, även om jag nu börjat få lite ordning på det hela, med betoning på "lite".
Jag har ju tänkt att skriva ett terminalprogram som rotar och härjar lite i 24-bits wav-filer och en egenhet jag märkt med sådana filer är ju att all data ligger "baklänges", det man brukar kalla "Little Endian". Exempelvis är det hexadecimala talet ABCDEF lagrat som EFCDAB.
Är det någon som har något förslag på hur man enklast läser in sådant från filen till en variabel av typen long, så att EFCDAB konverteras till ABCDEF00? Vad jag är ute efter är i första hand vilken metod som går snabbast att exekvera, så wav-filer kan vara relativt stora. Kanske finns någon färdig funktion att använda för detta i något bibliotek som man kan hitta i något Ubuntuförråd eller som redan finns i standardbiblioteket?
Visst, det är ganska enkelt att göra en sådan konvertering, men finns det redan ett alternativ som gör programmet snabbare så är ju det att föredra.
Vad jag ska göra är ett program som behandlar vågformen i 24-bitars wavfiler på lite olika sätt, bland annat ska jag göra en brick-wall-limiter, eftersom jag hittills inte hittat någon sådan som varit godtagbar när det gäller ljudkvaliteten. Jag har länge förundrats över att det ska vara så svårt att göra en sådan när jag själv tycker att det borde vara otroligt lätt, och detta program ska då bevisa för mig om jag har rätt eller fel på den punkten... Men jag vill inte bara att det ska låta bra, det ska gå fort som självaste attan att köra programmet också... (det ska bara rassla till och så ska det vara klart, typ).
Jag har fler frågor om själva programmeringen, men de får nog egna trådar.
Har lite fler frågor när det gäller C++, som den nybörjare jag fortfarande är, även om jag nu börjat få lite ordning på det hela, med betoning på "lite".
Jag har ju tänkt att skriva ett terminalprogram som rotar och härjar lite i 24-bits wav-filer och en egenhet jag märkt med sådana filer är ju att all data ligger "baklänges", det man brukar kalla "Little Endian". Exempelvis är det hexadecimala talet ABCDEF lagrat som EFCDAB.
Är det någon som har något förslag på hur man enklast läser in sådant från filen till en variabel av typen long, så att EFCDAB konverteras till ABCDEF00? Vad jag är ute efter är i första hand vilken metod som går snabbast att exekvera, så wav-filer kan vara relativt stora. Kanske finns någon färdig funktion att använda för detta i något bibliotek som man kan hitta i något Ubuntuförråd eller som redan finns i standardbiblioteket?
Visst, det är ganska enkelt att göra en sådan konvertering, men finns det redan ett alternativ som gör programmet snabbare så är ju det att föredra.
Vad jag ska göra är ett program som behandlar vågformen i 24-bitars wavfiler på lite olika sätt, bland annat ska jag göra en brick-wall-limiter, eftersom jag hittills inte hittat någon sådan som varit godtagbar när det gäller ljudkvaliteten. Jag har länge förundrats över att det ska vara så svårt att göra en sådan när jag själv tycker att det borde vara otroligt lätt, och detta program ska då bevisa för mig om jag har rätt eller fel på den punkten... Men jag vill inte bara att det ska låta bra, det ska gå fort som självaste attan att köra programmet också... (det ska bara rassla till och så ska det vara klart, typ).
Jag har fler frågor om själva programmeringen, men de får nog egna trådar.