Previous day | Jump to hour: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Next day

Seconds: Show Hide | Joins: Show Hide | View raw
Font: Serif Sans-Serif Monospace | Size: Small Medium Large

Click in the nick column to highlight everything a person has said.
The Logo icon identifies that the person is a core developer (has commit access).

#rockbox log for 2005-08-11

00:00:10Learso would it mostly be a question of enabling it and getting the audio routing right then?
00:00:37amiconnNo, we need an i2c driver for the chip and some adjustments in the radio screen as well
00:01:29amiconnLinusN: Maybe rombox makes no sense for actually running it (I'm still not fully convinced btw), but it has at least one benefit for development: it allows to actually check whether 'const' is used correctly
00:02:01amiconnIt depends on the access speed of the ROM vs. the RAM
00:02:16amiconnIriver RAM is sloow, so....
00:04:33 Join ashridah [0] (
00:05:08LinusNamiconn: correct const usage is mainly valuable when running from rom
00:05:38amiconnMainly, but not only
00:10:18 Join webguest30 [0] (
00:10:33webguest30Hello folks
00:10:33LearOT: Why does cygwin ship with such an old version of tar... :/
00:11:19webguest30quick question for the core developers
00:12:15webguest30there are a lot of patches in the tracker who could be very good for rockbox
00:12:30 Join amiconn_ [0] (
00:12:32 Join tofusalad [0] (
00:12:47webguest30just wondering why the core devlopers can't apply them
00:13:01webguest30is it hard to do?
00:13:19webguest30a ok, the patches are incompleted?
00:13:21Bagdersome are hard, some are easy
00:13:27Bagderthey all require time
00:13:28LinusNoften, yes
00:13:49Bagderits very easy to throw in a quick hack in the tracker
00:14:15Bagderthat breaks 7 builds and isn't following our coding standards
00:14:31Bagder... and then 27 people in the forums ask why it isn't in the CVS yet
00:14:48*Bagder is a cynic today
00:14:52webguest30scuse me for this stupid question :)
00:15:01Bagderno worries really
00:16:00webguest30i see for exemple one fix for dsp
00:16:25webguest30in Lear's and Slasheri territory
00:16:33Bagderif you apply the patches and try them out
00:16:35Bagderit helps
00:16:50webguest30a ok
00:17:05Bagderknowing that the patches work/fix the problems are often a good feedback
00:17:15webguest30the patch tracker don't have few restrictions for prevent this?
00:17:21LearI know Linus is working on applying one dsp-related patch...
00:17:26LinusNyes i am
00:17:35webguest30a ok :)
00:17:36amiconn_Btw, the hebrew/arabic patch still has a problem.
00:18:13amiconn_While it does no longer modify the input string (which isn't allow since it is a const), it now isn't reentrant
00:18:30amiconn_...which is a problem with the 2 LCD drivers on iriver
00:18:38 Quit amiconn (Nick collision from services.)
00:18:39 Nick amiconn_ is now known as amiconn (
00:19:07amiconnI considered adding that call to lcd-h100-remote.c, but the dropped the idea
00:19:08webguest30I don't understand the patch "add to playlist" in the tracker maybe hardeep can explain me?
00:19:44amiconn...because of my idea to introduce a secondary UI thread for the remote one day
00:20:24webguest30please do amiconn if you have time :)
00:21:08webguest30the Xavier's patch is good but not the good way
00:21:08 Quit tofusalad ("CGI:IRC (EOF)")
00:21:25amiconnHmm, maybe there is no problem, I need to think a bit about it again
00:21:52Learif the bidi patch uses static buffers, then it would be, I think...
00:21:58amiconnOtherwise the problem would hit even without a secondary display, when the scroll thread does its work in parallel to the ui...
00:22:45amiconnLear: Maybe not. Sometimes I forget that rockbox does cooperative multitasking, and that allows to do some things that are forbidden with preemptive multitasking
00:23:14Learquite true...
00:23:24amiconnYes, it uses static buffers to reverse the rtl parts if bidi is enabled
00:24:16amiconnHowever, there is no yield() between the reversal and the actual output
00:24:43amiconnAs long as no interrupt routine tries to use lcd text output...
00:25:42LearOtoh, it only needs to reverse the on-screen chars, afaict, so a small stack buffer in the lcd driver would be enough, wouldn't it?
00:26:18amiconnI hope that someone completes the unicode patch one day...
00:26:45amiconnLear: I'm not sure
00:27:26amiconnThe problematic thing is that with bidi, you don't know which part of the original string needs to be displayed before actually doing the reversal
00:28:29Learbtw, found another ctype bug the other day...
00:28:41amiconnIf it is a long string which consists of arabic (or hebrew) only, it will be the end of the string, but not if the string contains both arabic/hebrew and latin...
00:28:56 Quit ashridah ("uni. mutter")
00:33:21hardeepwebguest30: I don't really understand the purpose of that patch either... re: add to playlist
00:33:53HClhey amiconn.. think you'll have a little time soon to check those rundb events on archos..?
00:38:38webguest30Hardeep: i find this discussion for understand a bit but not really http//
00:39:59webguest30if it can help you didn't read it
00:41:17webguest30prethom: spexx is it again in your plan?
00:45:23webguest30Good evenings all and still thanks for all your works
00:45:40 Part webguest30
00:50:31***Saving seen data "./dancer.seen"
01:05:21 Quit _aLF ("Leaving")
01:12:16 Quit Lear ("Chatzilla [Firefox 1.0.6/20050720]")
01:21:54 Quit dpassen1 (Remote closed the connection)
01:25:01 Join Febs [0] (
01:28:55prethomwebguest30: yes, ill add speex support soonish, if you read the logs
01:32:07prethomamiconn: if you want faster layer 1/2 playback, there are a couple of frequently used tables in layer12.c that could probably benefit from being in iram
01:35:54 Quit ghostiger ("Leaving")
01:42:54prethomim off
01:42:58 Quit prethom ("foop")
01:47:52 Quit Moos (" Try HydraIRC -> <-")
02:00:59 Join TCK- [0] (
02:05:55 Join OnkelJonas [0] (
02:06:30 Part OnkelJonas
02:15:21 Join Omar [0] (
02:19:19 Quit TCK (Read error: 110 (Connection timed out))
02:41:36*LinusN goes to sleep
02:41:39 Part LinusN
02:43:03 Quit Omar ()
02:50:34***Saving seen data "./dancer.seen"
03:07:42 Quit Sucka ("a bird in the bush is worth two in your house")
03:08:15 Join dpassen1 [0] (
03:12:44 Quit Rick (Read error: 104 (Connection reset by peer))
03:13:51 Join Rick [0] (
03:19:43 Quit Rick (Read error: 104 (Connection reset by peer))
03:20:40 Join Rick [0] (
03:24:59 Quit Rick (Read error: 104 (Connection reset by peer))
03:25:09 Join ansivirus [0] (
03:26:20 Join Rick [0] (
03:34:17 Quit Rick (Read error: 104 (Connection reset by peer))
03:35:54 Join Rick [0] (
03:38:51 Quit lostlogic (Read error: 110 (Connection timed out))
03:38:51 Quit Rick (Read error: 104 (Connection reset by peer))
03:40:01 Join Rick [0] (
03:40:57 Quit Rick (Read error: 104 (Connection reset by peer))
03:41:19 Quit ansivirus ("Leaving")
03:42:08 Join Rick [0] (
04:06:10 Join QT_ [0] (i=as@madwifi/users/area51)
04:18:04 Quit QT (Read error: 110 (Connection timed out))
04:33:41 Join edx__ [0] (
04:39:28 Quit Strath ("Client closed")
04:48:15 Quit edx (Read error: 110 (Connection timed out))
04:48:20 Join rubberglove [0] (
04:50:36***Saving seen data "./dancer.seen"
04:54:26 Quit rubberglove ("CGI:IRC (EOF)")
04:59:53 Join solex_ [0] (
05:10:24 Quit solex (Connection timed out)
05:10:53 Join lostlogic [0] (
05:26:06 Nick edx__ is now known as edx (
05:28:39 Quit lostlogic (Read error: 145 (Connection timed out))
05:51:45 Quit hardeep ("[BX] Automatically bored away")
06:12:51 Quit dpassen1 ("Friends Don't Let Friends Listen To Anti-Flag")
06:20:37 Join Coldtoast [0] (
06:50:37***Saving seen data "./dancer.seen"
06:58:03 Quit Ismo (Read error: 104 (Connection reset by peer))
06:58:13 Join Ismo [0] (
07:14:20 Quit thegeek (Read error: 104 (Connection reset by peer))
07:16:03 Join thegeek [0] (
07:49:11 Quit merbanan (Read error: 104 (Connection reset by peer))
07:49:55 Join merbanan [0] (
07:51:11 Quit thegeek (Read error: 104 (Connection reset by peer))
07:51:43 Join thegeek [0] (
07:55:41 Join banan_ [0] (
07:56:03 Quit merbanan (Read error: 104 (Connection reset by peer))
07:58:53 Join Maxime [0] (
08:16:48 Quit Seed (Read error: 110 (Connection timed out))
08:27:17 Join SRM [0] (
08:28:18 Quit crashd (Remote closed the connection)
08:29:33 Quit ShamrockMan (Read error: 104 (Connection reset by peer))
08:29:39 Join banan__ [0] (
08:29:55 Quit banan_ (Read error: 104 (Connection reset by peer))
08:31:13 Quit einhirn ("Miranda IM! Smaller, Faster, Easier.")
08:33:28 Join crashd [0] (
08:50:40***Saving seen data "./dancer.seen"
08:57:29 Join LinusN [0] (
09:00:13 Join einhirn [0] (
09:06:03 Quit pabs (Remote closed the connection)
09:06:05 Join pabs [0] (
09:24:59 Join lostlogic [0] (
09:52:57 Join ashridah [0] (
09:57:40 Quit Rick (Read error: 104 (Connection reset by peer))
09:58:15 Join Rick [0] (
10:04:21ReKleSSanyone know why I would be getting a floating point exception when I try to run the ui simulator, build for iriver?
10:08:47ReKleSSsame thing happens if it's build for archos
10:09:16LinusNhave you changed any of the code?
10:10:00ReKleSSno, fresh cvs checkout
10:10:14ReKleSSand gdb won't tell me anything...
10:11:36LinusNi seem to recall that this could happen if some code was accidentally placed in the ICODE section
10:12:11LinusNi ranm the sim last night on my debian without problems
10:13:18ReKleSSwhat version of gcc?
10:14:42ReKleSS3.4.3 here
10:15:27ReKleSSwhat the heck... a printf added to the first line of main doesn't display
10:16:20ReKleSSis there anything I can do about this ICODE thing?
10:18:44LinusNcheck the map file, apps/
10:21:18ReKleSSstrlen and memcpy are in there
10:22:18 Join webguest20 [0] (
10:22:46ReKleSSthat's a bad thing, right?
10:24:35LinusNyes it is
10:26:13LinusNReKleSS: wanna try a fix?
10:45:49Coldtoastthe volume bug is fixed?
10:46:17ColdtoastI just updated to the latest bleeding edge and it doesn't seem to be doing it
10:47:15pikequick Q guys, I wanna try rockbox on my h120 now, is there more than one method ? (I read how to do it on misticriver) is this method reversable if shit would hit the fan ?
10:49:38LinusNColdtoast: no it isn't fixed
10:49:48LinusNpike: huh?
10:49:58Coldtoastok. so it'd just beign random on me then
10:50:07Coldtoastwhereas 100% of the time before I'd get it
10:50:14piketo put it bluntly: could I make a brick of my iriver using rockbox ?
10:50:42***Saving seen data "./dancer.seen"
10:51:08LinusNnobody has done it yet
10:51:15Coldtoastyou can UN-brick your player with Rockbox tho :)
10:51:29Coldtoastf you ever get the "Read file system" hang
10:51:44LinusNyes, the rockbox boot loader is in fact safer than the original
10:52:06pikeok, then Im gonna try this method
10:52:11pikeunless you have a better way
10:52:20Coldtoastso even if you never install Rockbox, it's a good idea to use the bootloader
10:52:29LinusNpike: that's the way
10:52:39pikeoki then :)
10:54:04LinusNColdtoast: i managed to get an i2c trace of the volume bug last night
10:54:32LinusNit turns out that rockbox writes to an undefined address in the uda1380
10:54:42LinusNand the uda hangs
10:56:09CoCoLUSand why does it do that? :)
10:57:44LinusNif i only knew
11:01:37pikecurious, how come your mpc codec is almost 10times as large as ours
11:01:53pikeI know ours is from foobar
11:06:33LinusNx86, right?
11:06:59ReKleSSLinusN: sorry, had to go eat.... the ptach didn't work
11:07:05ReKleSSno effect
11:07:25LinusNdid you do "make clean"?
11:07:56ReKleSSstrlen and memcpy moved out of icode
11:08:00ReKleSSbut I still get FPE
11:08:27LinusNcan i see the map file somehow?
11:08:34ReKleSSsure, just a moment
11:08:47ReKleSSgr.... my ftp servers still don't work...
11:18:24LinusNi don't see anything obvious
11:19:36CoCoLUS<fn~LinusN> x86, right?
11:20:13LinusNafaik, mpc has tons of assembler optimizations for x86
11:21:39 Join mrelwood [0] (
11:22:14mrelwoodI find the iRiver on the daily builds. does it mean it can serve use for a ordinary user?
11:22:29CoCoLUSdepends on what you define as ordinary
11:23:31crwlif ordinary user doesn't need radio or recording, rockbox does everything better than the original fimrware, i'd say
11:23:38pikesorry yes, xbmc is also x86
11:23:41ReKleSSor remote
11:23:46crwlhum, except maybe those SRS effects and.. remote :)
11:23:54CoCoLUSand... volume changing :P
11:24:09crwlis there something wrong with it?
11:24:22ReKleSSI'll be getting onto the remote as soon as I have a working simulator or toolchain
11:24:52CoCoLUScrwl, volume changing currently hangs your player (sometimes, i think)
11:24:56mrelwoodohkay. i WOULD like to change the volume though... ;)
11:25:14ReKleSSwhat's wrong with the volume?
11:25:30CoCoLUS<fn~LinusN> it turns out that rockbox writes to an undefined address in the uda1380
11:25:31CoCoLUS <fn~LinusN> and the uda hangs
11:26:21crwlhm, i haven't seen that, it has become terribly slow though, if i've changed the volume much and quickly
11:26:53ashridahcrwl: you have seen it if volume slows down. the entire player doesn't hang
11:27:01crwlashridah, ah, ok
11:27:17crwli've never really run to it in daily use...
11:27:31crwlbut maybe that's because of replaygain support :)
11:27:36ashridahjust the volume changes don't end up having an affect
11:27:39ashridaheffect even
11:29:06LinusNdo any of you experience the volume bug today?
11:30:09LinusNi think i have an idea what it could be
11:30:22CoCoLUSyou said it wasn't fixed, didn't you?
11:30:41LinusNi mean i want one of you guys to do a test
11:33:30CoCoLUSi'm sorry, don't have my iriver with me here at work...
11:37:47FebsI can test it. Which build should I use?
11:38:07ReKleSSLinusN: just talked to ninj4 (the guy with the drowned iriver), he's not getting the volume bug
11:38:28ReKleSS<NINJ4> volume control died
11:38:40CoCoLUShow does one drown his iriver?
11:38:58FebsCoCoLUS, you'd be surprised at how many people drop them in toilets.
11:38:59ReKleSSCoCoLUS: accident with a raincoat pouch
11:39:25ReKleSSit runs... mostly... but rockbox doesn't run reliably on it
11:40:52LinusNis ninj4 the same guy as "tandoc" in the forums?
11:41:12LinusN"works like a charm." he said
11:41:23ReKleSSnow it does...
11:43:12 Join tandoc [0] (
11:43:22LinusNhi tandoc
11:43:26tandocallo allo
11:43:41LinusNrainman himself
11:44:33tandoci'm assuming you gave me the latest daily build of rockbox
11:44:44CoCoLUSwhat a felony... making his iriver wet... :)
11:44:47tandocsince my friend and i get the same volume bug
11:44:54tandocit's the damn jacket's fault
11:45:11ReKleSSI never said I get the volume bug
11:45:23ReKleSSalthough I probably do
11:45:31tandocoh wait
11:45:43tandocyou didn't upgrade to the latest daily build did you?
11:45:51ReKleSSnot yet
11:46:01tandocwell you told me about it, so i assumed you had it too
11:46:23LinusNif my theory is correct, the bug is easier to reproduce if you play a high bitrate file
11:46:46LinusNi get it with the latest build, btw
11:46:58CoCoLUSwe need that guy who had his whole collection @ 320 kbps :)
11:47:09LinusNholy moses
11:47:16tandochalf of mine is D:
11:47:23ReKleSSI think I've still got a few 500kbit vorbis files
11:47:34Febs320kbps ... waste of space.
11:47:39CoCoLUSkind of... how to put it... unnecessary
11:47:57tandocit's what the files came at, i don't feel like reencoding them...
11:48:14CoCoLUSbut that discussion has had it's place here...
11:48:14tandocnot that.. i.. download music.. illegally =/
11:48:23tandoci'm sure it has
11:48:40CoCoLUStoo often, if you ask me :)
11:49:23tandocwould you consider it blasphemy to cover your ihp with black electrical tape?
11:49:28LinusNok, i *seem* to have found the bug
11:49:46CoCoLUSi would consider it blasphemy if'd paint it white and scribble IPOD on it
11:49:53ReKleSSlol cocolus
11:50:11tandocoh good
11:50:12CoCoLUSblack is ok... as long as you don't write U2 on it... :)
11:50:18tandocmine's covered in electrical tape
11:50:21LinusNit's not an easy one to fix though
11:50:23tandocbecause i scratched it..
11:50:51CoCoLUStandoc, just admit it, it's a diy rain-shield :)
11:50:59tandocdamn straight.
11:52:26CoCoLUS<fn~LinusN> ok, i *seem* to have found the bug
11:52:57LinusNthe i2c controller doesn't like changing the bit rate prescaler on the fly
11:53:36LinusNso if rockbox boosts/unboosts the cpu during an i2c transfer, the i2c controller screws up
11:54:16Coldtoastdon't cover it in electrical tape
11:54:22CoCoLUShmm... that wasn't changed with the suspected timer change from amiconn, was it?
11:54:22Coldtoastdo the brushed metal mod :)
11:54:29tandocits not completely covered..
11:54:34tandocjust the scratches...
11:54:40tandocreally, really big scratches...
11:54:50tandocbrushed metal mod?
11:54:52LinusNCoCoLUS: no, but the backlight uses the timer, and also boosts the cpu
11:55:12LinusNso the timing might have changed, exposing the bug
11:56:00CoCoLUSic... how much work would it be to stop changing the cpu speed while a i2c transfer is in progress?
11:56:35LinusNunfortunately not that easy, but i'll work on it
11:57:07DBUGEnqueued KICK tandoc
11:57:07tandoc( LinusN ): so what did you change in rockbox to disable the hdd check, or whatever it happens to be?
11:57:29LinusNi removed the call to check_registers() in ata.c
11:57:57tandocah, so that'd involve compiling myself to rollback to an older rockbox =____=
11:59:11LinusNtandoc: i'll see if we can do something about it permanently
11:59:25LinusNi seem to recall that someone else had the same -32 error as you
11:59:30tandochmm, the problem is only on highbit rate files...
11:59:53LinusNtandoc: can you reproduce it?
12:00:28tandoc192kbit is perfectly fine
12:01:22tandochey sexy, i might do that mod...
12:02:33Coldtoastyeah. be sure to clearcoat it tho :)
12:02:59tandocsomething i probably couldn't do if my life, or mp3 player, depended on it
12:04:10tandocbut i'd probably fail at getting a brushed finish
12:04:10 Quit Coldtoast (Read error: 104 (Connection reset by peer))
12:04:29tandocbuh bye
12:05:45LinusNouch! the backlight handler calls cpu_boost() from an interrupt!
12:06:16LinusNbad bad bad
12:15:32ashridahwow. that does look nice.
12:15:49ashridahpity i suck with handy work. i'd probably flubb the varnish job
12:17:30tandoci'm happy with my electrical tape :D
12:19:44ashridahinterestingly, none of the paint has scratched off on mine
12:19:54ashridahand i've had it over a year and a half now
12:20:15tandochad mine the same amount of time
12:20:20tandoclots of scratches :P
12:20:32ashridahthe screen has some marks
12:20:35ReKleSSmine doesn't have a metal case... no paint to scratch :p
12:20:38ashridahbut the paint is fine
12:30:41LinusNthe backlight dimmer code is really nasty
12:30:57LinusNit boosts and unboosts like crazy
12:31:18ReKleSS...just for a little fade effect???
12:32:43LinusNit needs to boost during the fade
12:32:46ashridahReKleSS: yeah, it does pulse width modulation
12:33:03LinusNbut a design flaw makes it boost and unboost for every key event
12:33:27LinusNand it unboosts from an interrupt, a totally forbidden thing
12:33:36ashridahthat tends to be fairly heavy for the granularity of fade.
12:34:03ReKleSSit seems ridiculous, just for eye candy
12:34:17LinusNit's not really necessary to boost for performance reasons
12:36:02LinusNbut the timing changes if the cpu frequency is changed during the fade, causing it to flicker
12:41:24 Join Moos [0] (
12:41:39MoosGood Day all
12:42:28Mooshey Linus puzzled with the bug volume
12:50:46***Saving seen data "./dancer.seen"
12:51:12 Join thomjoha [0] (
12:51:17 Nick thomjoha is now known as preglow (
12:54:03pikeis rockbox planning to add audible ff/rw ?
12:54:10 Quit lostlogic (Read error: 110 (Connection timed out))
12:54:17piketesting rockbox on iriver now
12:56:44LinusNpike: no plans, but anyone is free to implement it
12:56:47preglowhmm, no
12:57:00preglowi asked the other people, and most of the devs dont want audible seeking
12:57:06preglowalthough id like it myself
12:57:13pikeor beef up remote so you can see position ?
12:57:28pikemaybe thats just skin related, I used rockbox for a full 10 minutes
12:58:04LinusNpreglow: if you manage to implement audible seeking, i won't stop you
12:58:16LinusNprovided there is an option
12:59:08preglowLinusN: its not that important to me, and indeed, itll be hard to adapt each codec to support it
12:59:21LinusNoh yes
12:59:53preglowmp3 will be easy, vorbis too, but i dont know about the other ones
13:00:39 Join lostlogic [0] (
13:00:56pikebut regarding remote, I just see the logo, and it's sure a nice logo ;) but maybe remote could be used for some info ?
13:01:12preglowwell have remote wps some happy dau
13:01:16preglowplease work on it
13:02:05Febspreglow, I saw on yesterday's IRC log that you were asking about suggestions for EQs.
13:03:04FebsI think that a simple 5 band EQ would probably do 90% of what most people need.
13:03:08Moospreglow is back? :)
13:03:20preglowsort of, give me another week and well see
13:03:39pikewhat speed (X) does it seek with when I FF using remote
13:03:55pikesame as main unit I suppose, but I dont know what that uses either
13:04:06FebsI'd like to see parametric EQ where one could set Q and frequency in addition to gain ...
13:04:21Febs...but I'm not sure whether that would be too confusing for most users.
13:04:46preglowwe could hide the center freq/q options somehow
13:05:04FebsThat was my thought too.
13:05:45FebsAnd of couse, people seem to love "presets" like "rock," "jazz" etc. ... though I think that those names are meaningless.
13:06:10tandocpeople use those?!
13:06:10preglowpretty much
13:06:23pike"eq" in org fw was pretty bad
13:06:34pikeit can only get better :)
13:06:34Febstandoc, yeah, you would be suprised by how many people think that if they are listening to rock, they need the "rock" eq.
13:06:36preglowwell, yes, it isnt a proper eq
13:06:49tandoci like my battery life...
13:07:21FebsI actually use EQ very little, but in certain situations would like the flexibility of a parametric EQ.
13:08:15FebsAlso, and this probably goes without saying, but I think that any EQ implementation should allow the user to cut frequencies as well as boost them.
13:08:34preglowof course
13:09:34pikea good eq design would be if you can never clip the signal
13:10:01pikeso instead of raising something , you would lower the rest
13:10:12preglowwell, that involves decreasing the volume
13:10:50preglowit will work like the current bass/treble controls work
13:11:05FebsIn terms of pre-scaling the volume, you mean?
13:11:08preglowif youre at 100 volume, everything but the band in question will get lower
13:13:42preglowtheres no way around that
13:16:35FebsUnderstood. Though I've seen people argue that they should be allowed to push the EQ into clipping if they want so that they can get more volume. LOL.
13:16:54preglowwell, i can always add an option...
13:17:01ReKleSS"idiot mode"
13:17:22ReKleSSjust provide a complex looking interface that does nothing
13:17:47FebsHa ha. Make it one of the presets: rock, classical, jazz, and ultrabass placebo.
13:18:30ReKleSSI just want an eq setting that reduces the bass a bit...
13:18:46LinusNwell, it still makes sense if the audio has a low level to start with
13:19:02pikeand thats what en EQ is for, to compensate for speakers
13:19:08preglowi actually want a flag to make the rockbox volume go above 100
13:19:44preglowtons of old records are recorded at a pretty low volume
13:19:51LinusNafaik, the uda can't boost the volume
13:20:00LinusN0db is max
13:20:01preglowi know, software will take care of the boosting
13:20:12preglowits a simple multiply
13:20:44LinusNi have been looking into missing fundamental bass boosting
13:20:51FebsOn the fly peak normalization might be cool. Is such a thing possible?
13:21:07FebsLinusN, like the SRS "Trubass"?
13:21:08preglowFebs: of course
13:21:14LinusNFebs: yes
13:21:18pikereally ?
13:21:28Febspreglow, I think that would be a feature that would be very popular.
13:21:46pikeit would have to correct realtime, and if song has a silent part, it would boost like he**
13:21:53preglowmissing fundamental boosting could be done by lowpass filering the signal, distorting it in some way, then adding that to the original signal
13:22:51LinusNthe algorithms i have studied involve removing the fundamental in the source before adding the harnmonics
13:23:12preglowi didnt think the fundamental was audible anyway
13:23:18preglowof course, it will eat headroom
13:23:23preglowand might cause clipping
13:23:46LinusNbasically a lowpass filter to find the fundamental, create the harmonics and att them to the signal with the fundamental removed
13:24:43FebsI think that the point of providing the harmonics is to compensate for speakers, headphones, etc. that can't reproduce the lower frequencies. If the fundamental is inaudible anyway, than removing them makes sense.
13:24:49preglowwell, removing the fundamental is just highpass filtering
13:25:04preglowbut does the algo also involve finding the exact frequency of the fundamental?
13:25:15LinusNnot necessarily
13:26:38preglowthat hairier
13:26:39LinusNthere are algos that try to synthesize the harmonics by analysing the frequencies of the source
13:27:00LinusNbut they are complicated, power hungry, and not necessarily better sounding
13:27:31 Join Sucka [0] (
13:29:27Febspike, going back to your point about boosting silent parts, I am not talking about dynamic range compression. I am talking about finding the peak, and then scaling the gain of the entire song so that the peak is at 0dB.
13:29:59preglowwell, youre more or less asking for a replaygain scanner
13:30:00FebsThat would boost silent parts and possible expose some noise, but no more so than turning up the volume or using replaygain.
13:30:27preglowso youd like the peak to be found prior the actually playing the track?
13:30:42preglowi need to find out how to make an apostrophe on this bloody keyboard
13:30:51FebsYeah, that would be the concept.
13:31:06preglowwell, might as well add a full blown replaygain scanner, then
13:31:39pikeFebs: isnt that called um ReplayGain ?
13:32:02pikeor you would have the player do the scanning ? (slooow) and you can only find the peak by scanning the whole song
13:32:08Febspreglow: suppose you could. I thought that peak normalization, while a little cruder, would be easier.
13:32:46Febspike, as I understand replaygain and mp3gain, they use some sort of process to calculate the apparent volume and compensate for that. They're doing something a little more complex than simply setting all files so that they peak at the same point.
13:33:18pikethey both fins the peak (afaik) and use that as reference point
13:33:24pikeyou must have a reference point
13:34:36FebsRight, but with simple peak normalization, a modern recording with really squashed dynamic range is still going to sound a lot louder than an older tune that has some high peaks but is at a lower average gain.
13:35:01FebsReplaygain−−as I understand it, which admittedly could be wrong−−compensates for those differences.
13:35:37pikenot sure what you mean, but how will you eliminate the scanning process ?
13:36:03Febs*I* wouldn't. Preglow would!
13:36:50FebsSeriously, though, I know how it works in theory, but I don't know the mechanics for implementing it on a DAP.
13:37:05pikehow does it work in theory ?
13:37:11pikeI never heard of anything similar
13:37:44pikethink I would have it if was practical or possible
13:38:05pikeif it*
13:38:16FebsI should rephrase: I understand the concept, rather than the mechanics. I shouldn't suggest that I understand the math behind it.
13:39:05FebsPeak normalization: scan the song, find the peak, calculate the multiplier needed to bring the peak to x (usually 0dB), and multiply the whole song by that constant.
13:39:31pikeyes, thats straightforward
13:40:27FebsReplaygain: Replaygain: scan the song, calculate the apparent volume, calculate the multiplier needed to adjust from that apparent volume to a certain fixed standard. Usually NOT 0dB or quieter songs would need to be clipped to bring them to the same level as louder songs.
13:41:06preglowreplaygain finds both the peak and the a-weighted average volume
13:41:41FebsAh, that makes sense.
13:42:35preglowpeak volume is a nice measure to have around anyway, especially since it tends to be higher than 1 for codecs with filter banks
13:42:45FebsWell, gotta go to work. Sadly, that will undoubtedly be far less interesting than this discussion.
13:42:52pregloweverything is, heh
13:43:10 Quit Febs (" HydraIRC -> <- Leading Edge IRC")
13:43:20preglowanywho, is there some way to make rockbox go to the next folder when its done with the current one?
13:43:28preglowlike, without my intervention
13:43:35ashridahdidn't someone add an option for that?
13:44:04preglowyes, but you need to skip the track by hand
13:44:22preglowit doesnt go the next folder if the last track finishes by itself
13:44:26preglowperhaps thats a bug?
13:45:37preglowim wrong
13:45:39preglowit works now
13:51:24preglowLinusN: well, yes, that describes more or less what i imagined
13:51:48preglowshouldnt be impossible, we can implement filters very efficiently
13:55:03 Join Rockdude05 [0] (
13:56:27Rockdude05hey, does anyone here use te solitaire plugin?
13:57:08Rockdude05its the only stable game whilst playing music, so would adding grey and fixing a few bugs be a big pain in the bu,?
13:59:13preglowprobably not, you just need someone to do it
13:59:30preglowi for one isnt even slightly interested in hacking on games
13:59:52preglowsomeone teach me proper english grammar before i make a larger fool of myself
14:00:17LinusNi think you've already reached the limit
14:00:29Rockdude05wel it's not quite hacking, just fixing silly things like not being able to select cards, or distinguishing between black+red cards, nothing important :)
14:00:50preglowgood, then i dont have to worry about it
14:01:01LinusNRockdude05: the most unsexy kind of programming
14:01:40CoCoLUSanyone who's using sexy and programming in the same sentence is kinda suspect to me...
14:02:34Rockdude05urm wel i dont get you there but im sure its meaningful ;) well in that case i must do my homework and learn all this.... i used to program loads so yeah... time to go make a large black paperweight
14:05:15Rockdude05oh ahem whilst im here also, is there a low battery sequence or not? i seem to recall some sort of change log about it a while ago but my player still goes off its nut on 0%
14:06:01LinusNthere is no low battery handling
14:06:09Rockdude05cheers :)
14:06:15LinusNthe only thing is that the boot loader warns if the battery is low
14:07:03Rockdude05i see
14:09:40CtcpIgnored 1 channel CTCP requests in 0 seconds at the last flood
14:09:40*preglow is finally coding rockbox again
14:11:54preglowhow is iram usage currently? 32kb core, 32 plugin and 32 codec?
14:12:27Rockdude05question time again ;) how much of the iriver resources are available after decoding audio? on average after mp3/ogg/wav for example. is there enough for, as mentioned, stereo width processing etc? or do they all still need optimizing?
14:12:40preglowmore optimising coming up
14:12:52preglowsome of them are pretty fast
14:12:58preglowmp3 is pretty fast, wavpack is very fast
14:13:03preglowvorbis is also getting there
14:13:17preglowmore than enough for stereo width processing
14:14:23Rockdude05yeah i saw some 10% speedup things a while back, which is nice :P also, with crossfade, can someone just quikcly exlain how that works.for example, do both songs have to be decoded at once, or is it buffered?
14:15:09Rockdude05yes because i noticed stereo width is already in the menu but not functional, so i assume thats in archos (although isnt the archos effects/decoding hardware orientated?)
14:15:42LinusNyes, all signal processing is in "hardware"
14:15:45LinusNin the archos
14:16:38LinusNthe archos decoder hardware has a pretty sophisticated mixer that allows us to tweak the stereo width
14:16:58Rockdude05thanks, sorry for the questions youve probably answered 1000 times already, but im sure theyre better than some ;)
14:17:08Rockdude05ok i see
14:17:49LinusNwe could add a similar mixer to the iriver
14:17:56preglowLinusN: but yeah, you got any idea about my iram question?
14:18:58preglowcodecs should have more than 32kb iram :/
14:19:01 Join oxygen77 [0] (
14:19:23preglowperhaps it would be a good idea to split mp3 and mp1/mp2 into different codecs
14:19:39preglowthey share some code, but not all
14:19:47Rockdude05i must say (no i wont go into this dribble about how rubbish srs is) that stereo width can be especially useful when using vorbis through line out, and more specifically through an amp or speakers, as the vorbis width always seems very small and i'm sure i read somewhere that it's a known issue with ogg (stereo image is quite, wel, joint still).
14:20:06preglowstereo is always joint in vorbis, i believe
14:20:18preglowbut yeah, stereo with should be a quickie to add
14:20:45preglowwidth, even
14:21:42LinusNhmmm, it looks like the codecs share the iram with plugins (!)
14:22:10preglowahh, yes, that is true
14:22:28LinusNso if a plugin uses iram the codec will crash
14:22:28preglowand i believe thats quite ok, plugins requiring iram will probably be too intensive to run when audio is playing anyway
14:22:34Rockdude05yes, until a point, but the image can be narrow if i'm understood, so sounds bad on good speakers. on the subject, do you know what percentage or settngs are line out on rockbox or iriver, and also if it in fact matters if i use the headphone jack or line out jack. also (phew) will (i've been doing this) sticking 2 headphones in each jack (line out+headphone) kill the player? (bass etc still... with line out)
14:23:03preglowRockdude05: it matters if youre using headphones, line out doesnt have an amp
14:23:14preglowRockdude05: but if youre connecting to an amp, it shouldnt matter
14:23:40Rockdude05so technically my headphones shouldnt be working from line out?
14:23:56preglowRockdude05: they do, but theyll distort a lot, since the line out cant drive them properly
14:24:04preglowRockdude05: at least my headphones distort like mad from line out
14:24:30zethey distort? hows that?
14:25:10Rockdude05someone's going to flinch at this, but i sometimes run 6 headphones from my iriver, with about 70% vol on each and low bass to reduce distortion, so my friends can hear in school etc. although this is pretty insane, will this damage my layer?
14:25:12zejust curious, i've never heard of headphones distorting from too weak of a signal
14:25:37preglowRockdude05: no
14:26:07Rockdude05just reduce battery life?
14:26:19preglownot by much, i believe
14:26:32Rockdude05well how efficient ;)
14:26:35preglowthe headphone amp can only give so much current
14:27:03Rockdude05i know... i dont know myself how i get it all going
14:27:15Rockdude05i get a few strange looks
14:27:15preglowze: the headphones themselves arent distorting, its the line out driver circuitry thats distorting, it isnt designed to be connected to a low-impedance load
14:27:26zepreglow: ah
14:27:59Rockdude05ah, therefore high impedence into low impedence = screwy sound
14:28:53preglowa headphone is around 16 ohms, or something, whereas a proper amp input should be several hundred kiloohms
14:29:34zemy headphones are 64, and i've seen several in the hundreds, maybe even thousands... never in the hundred thousands though hehe
14:29:39preglowLinusN: but where does the remaining 64k go? the core cant possibly need that much
14:30:05preglowhigh impedance headphones do exist, they used them in the olden days of amateur radio
14:30:21preglowthey could drive headphones from the power of radio waves alone
14:30:23preglowwhich is insane
14:30:33LinusNpreglow: the main stack eats most of it, iirc
14:30:34zeits not that insane...
14:31:05preglowLinusN: ahh, yes, but is that needed currently? the codecs are the most sensitive stack users, and theyve got their own stack currently
14:31:15zein fact transistor radios + peizo earpieces did it all the time, didn't they? heh
14:31:24LinusNi think we can reduce the main stack
14:31:33preglowtransistor radios were powered, crystal radios werent
14:31:34tandocbefore i sleep, i just want to thank you again linus for making rockbox work on my zombie of an mp3 player :D
14:31:43LinusNtandoc: you're welcome
14:31:47zeer oh crystal radios, sorry, you know what i meant
14:31:52preglowsure, hehe
14:32:03LinusNtandoc: make sure you report if anything else breaks
14:32:42tandocroger that
14:32:52zeand ya know tesla did all sorts of powering things with radio waves :p
14:32:54preglowthe codec stack needs to be pretty big, libmad for one requires at least 20k
14:33:37Rockdude05does anyone agree with me on this... with all the pop-up messages on r.b, should the background be a lighter grey? i simply cant read it sometimes
14:34:00preglowdont think ive ever had any problems with that
14:35:23Rockdude05well no but its a small thing that could help, especially when you use stupidly small fonts like me
14:36:47preglowbut i dont think we have a lighter shade of grey anyway
14:37:30Rockdude05*thinks*.... theres four. black, white, light grey and dark grey?
14:37:35LinusNno, we would have to adjust the palette
14:38:33Rockdude05so its not as simple as changing a couple of characters :P
14:39:21Rockdude05bloody windows users and their GUI's like me eh? ;)
14:41:14preglowoh well
14:41:17preglowi need to go
14:41:24 Quit preglow ("ex")
14:43:45Rockdude05yeah im off too, getting late here in aussieland
14:43:50 Quit Rockdude05 ("Chatzilla [Firefox 1.0.4/20050511]")
14:50:49***Saving seen data "./dancer.seen"
14:52:09oxygen77hello, any news on wav playback ?
15:03:52 Quit webguest20 ("CGI:IRC")
15:06:05LinusNwav playback for archos?
15:06:18LinusNnot that i know of
15:06:46oxygen77k, I've succesfully run archos wav codec on AV's MAS
15:24:34 Quit mrelwood ("CGI:IRC")
15:29:11 Join ep0ch_ [0] (n=ep0ch@
15:29:23 Nick ep0ch_ is now known as ep0ch (n=ep0ch@
15:30:02ep0chplease can someone had the peak meter range values as tags to WPS please :)
15:30:10ep0chhad = add
15:30:50ep0chso i can see that the bottom of the peak meter is -55 db and the top is 0 db
15:40:57 Part LinusN
15:42:56 Part oxygen77
16:10:23 Quit ashridah (Read error: 110 (Connection timed out))
16:50:53***Saving seen data "./dancer.seen"
16:55:33 Join niobos [0] (
16:56:27nioboshi all
17:04:56 Quit einhirn (Read error: 104 (Connection reset by peer))
17:07:26 Join einhirn [0] (
17:12:16 Join pabs_ [0] (
17:18:58 Join amiconn_ [0] (
17:22:51 Quit pabs (Nick collision from services.)
17:22:56 Nick pabs_ is now known as pabs (
17:24:35 Join bagawk [0] (n=lee@unaffiliated/bagawk)
17:29:45 Quit amiconn (Nick collision from services.)
17:29:46 Nick amiconn_ is now known as amiconn (
17:36:26 Quit niobos ("leaving")
17:54:48 Quit ep0ch ("Trillian (")
18:04:08 Join courtc [0] (
18:05:27 Join courtc_ [0] (
18:05:36 Quit courtc_ (Read error: 104 (Connection reset by peer))
18:07:26 Join Lear [0] (
18:19:26 Join Coldtoast [0] (
18:50:34 Join psychocydd [0] (
18:50:44 Part psychocydd
18:50:54***Saving seen data "./dancer.seen"
19:01:47 Quit bagawk ("Leaving")
19:08:22 Join Maxime`Mrn [0] (
19:08:23 Quit Maxime (Read error: 104 (Connection reset by peer))
19:25:48amiconnHmm, no Linus here :/
19:26:04 Join LinusN [0] (
19:26:14amiconnhi LinusN
19:26:21LinusNi feel like batman
19:26:25amiconnDid you monitor the log? ;)
19:26:27LinusNcoming when you call for me
19:26:37LinusNi just sat down to read it
19:26:40amiconnI wanted to talk about the backlight fading
19:26:46LinusNoh yes
19:26:59LinusNColdtoast: :-)
19:27:03amiconnI wonder what leads you to conclude it boost/unboosts frequently, and from the isr?
19:27:16amiconnDid you some do some bdm sessions?
19:27:16Coldtoasthard to do teh batsignal
19:27:20LinusNthe unboost is in the isr
19:27:32amiconnYes, the unboost, once, when the fade is complete
19:28:00LinusNthe way the code is written, it registers and starts the timer for every keypress
19:28:19LinusNthe isr concludes that the light is on and unboosts
19:28:27 Quit Coldtoast ("Peace and Protection 4.22")
19:28:40LinusNi logf()ed it
19:28:49amiconnIt concludes this *only* if 2 conditions are true
19:29:43amiconn(1) The pwm value reached the target value *and* (2) this target value is either full on or full off
19:30:11LinusNand both are of course true when the backlight is lit
19:30:27amiconnOr do you mean __backlight_on() is called for every keypress?
19:30:49amiconnThis would mean there's something wrong with the design of the backlight thread...
19:30:50LinusN__backlight_on() is called, and after that backlight_dim()
19:31:00amiconnYes of course
19:31:23LinusNthe backlight logic wasn't designed for fading
19:31:25amiconnThe thing is that this has nothing to do with the dimming code, but is a design flaw in the backlight thread
19:31:48 Join merbanan [0] (
19:32:08amiconnStill it doesn't make sense to call __backlight_on() over and over if the light is already on
19:32:30LinusNmaybe not, but it is simpler than mirroring the state in a variable
19:32:37LinusNkiss, you know
19:32:42amiconnI could add a protection
19:32:49 Quit banan__ (Read error: 104 (Connection reset by peer)) backlight_dim()
19:33:06LinusNsure, plus move the cpu_boost(false) from the isr
19:33:10amiconnBtw, I didn't change this part of the logic with my timer changes
19:33:17LinusNi'm not blaming you
19:33:41amiconnI only changed the way how the dimming logic decides whether it is okay to use the timer
19:33:59amiconnSo I wonder why these changes uncovered this problem
19:34:20LinusNbeats me
19:35:12amiconnbacklight_dim() should only start the dimming process if the new target value is different from the old
19:35:47amiconnHowever, I have no idea how to move the unboost out of the isr
19:36:03amiconnI also don't understand the problem with it being in the isr
19:36:39LinusNin the old version of the backlight code, backlight_start_timer() returned immediately if bl_timeractive was true
19:36:56amiconnYes, and it still does that
19:36:57LinusNthe boost counter isn't protected
19:37:11LinusNhmmm, yes
19:37:19amiconnI merely incorporated the code from backlight_start_timer() into backlight_dim()
19:37:44amiconnBoth functions were rather small, and backlight_start_timer() only being used there
19:38:09LinusNlet the isr send an event to the backlight thread
19:38:23LinusNthen the backlight thread can unboost
19:38:44amiconnThis is prone to a race condition...
19:38:54 Quit einhirn ("Miranda IM! Smaller, Faster, Easier.")
19:38:57amiconnHmm, perhaps not
19:39:18amiconnWhat if backlight_dim() is called before this event is processed?
19:39:27amiconn*called again
19:39:33LinusNthen we have two boosts
19:39:38LinusNand two unboosts
19:39:41amiconnYes, for a short time.
19:39:46amiconnShould be okay then
19:40:14amiconnHowever, it makes the dimming a bit more scattered
19:40:21LinusNthis is only one of the problems for the i2c, btw
19:41:06amiconnI have an idea what might be another problem
19:41:24amiconnWe always set the i2c prescaler last, after switching the cpu frequency
19:41:26LinusNany boost/ubnoost while running i2c is a problem
19:41:46amiconnHowever, this causes the i2c frequency being way too high for a short time when boosting
19:42:11amiconnWe need to increase the prescaler before boosting, but decrease after unboosting
19:42:24LinusNi'm not sure that's enough
19:42:36LinusNwe don't know how the prescaler works internally
19:42:37amiconnMaybe this problem manifested because of the increased i2c clock
19:42:55amiconnRemember, we accidentally ran it at half the desired frequency
19:43:03amiconn...that is 50 kHz
19:43:30amiconnNow we run it at the desired 100 kHz
19:43:47LinusNit might be necessary to protect the i2c comm from frequency changes
19:44:13LinusNbut your solution might just as well work
19:44:33amiconnI wonder what may cause these i2c problem if not only the clock being out of specs
19:44:42LinusNi wonder if the internal counter is reset when we write the prescaler
19:45:07LinusNi can see from a logic analyser trace that one clock period is insanely short
19:45:23amiconnAfaiu i2c should work even if the frequency changes within the transfer
19:45:32LinusNi2c itself yes long as it stays within the limit
19:45:47LinusNbut we don't know how the controller is implemented
19:46:00LinusNwe can guess though
19:46:20 Join dpassen1 [0] (
19:46:24LinusNand setting the prescaler before and after the change might be the solution
19:46:38amiconnMaybe it's not the frequency change, but the MFDR change while i2c is running
19:46:55LinusNthat's what i mean
19:47:12amiconnWhat about choosing MFDR in a way that the maximum allowed i2c clock isn't exceeded when boosting, and then letting it alone?
19:47:29amiconnIirc the maximum i2c clock allowed with most devices is 400 kHz
19:47:37 Join MO-Pantsu [0] (
19:47:43LinusNthat would make it very slow in the normal frequency
19:47:57MO-PantsuAre there any plans to enabled the radio?
19:47:58LinusNthe controller can only do 100khz
19:48:03amiconnWe would then run at 160 kHz at the normal frequency
19:48:03LinusNMO-Pantsu: of course
19:48:12MO-Pantsuk :)
19:49:01LinusN"The interface operates up to 100 kbps with maximum bus loading and timing."
19:50:24LinusNi love the i2c timing specs in the manual
19:50:30LinusN"tbd ms"
19:51:06LinusNevery single value is tbd
19:51:41 Join banan_ [0] (
19:52:00 Quit merbanan (Read error: 104 (Connection reset by peer))
19:58:43 Join einhirn [0] (
19:58:55LinusNamiconn: so we set the i2c prescaler after setting the pll in bypass
19:59:22LinusNthen there is no risk of overclocking it
20:09:18 Join XavierGr [0] (
20:09:31XavierGrHi all!
20:29:02LinusNamiconn: setting the i2c prescaler after setting the pll in bypass mode did not help
20:29:27LinusNso it is probably the writing of the prescaler that causes it
20:36:34 Nick dionoea is now known as charlie_brown (
20:36:47 Nick charlie_brown is now known as dionoea (
20:43:03LinusNthis isn't good at all
20:43:27LinusNit leaves us with two options:
20:43:37LinusN1) always boost during i2c communication
20:43:59 Nick banan_ is now known as merbanan (
20:44:00LinusN2) inhibit frequency changes during i2c communication
20:44:15LinusNhmmm, three options
20:44:56LinusN3) let set_cpu_frequency() wait for the current i2c byte transfer before switching frequency
20:45:26LinusNthat might actually be the "cleanest" solution
20:45:26LearThe wait in 3 is quite short?
20:46:01LinusNit could be several milliseconds
20:46:19LinusNthe uda1380 is pretty slow with the ack's
20:46:34LearThat's what I mean by short... :)
20:46:42LinusNoh .-)
20:47:14amiconnLinusN: 2) and 3) are no viable options imho
20:47:36LinusNwhy not 3)?
20:48:03amiconnBoth options delay the frequency change. Imho not good if we want to boost because we need the cpu power...
20:48:24amiconnI think leaving mfdr alone after init would be kiss
20:48:47amiconnEven with 100 kHz at 120 MHz, this would still run around 40 kHz at 48 MHz
20:48:49LinusNprobably, but then we would have to run it very slow at the normal frequency
20:48:50Learamiconn: shouldn't be a problem for playback at least...
20:49:03amiconnI guess we don't do really large i2c transfers...
20:49:08LinusNno we don't
20:49:25LinusNi'll try that
20:49:25amiconnErm, 48 MHz is the normal frequency?
20:49:53amiconnOr do you mean the default 11 MHz, which we normally won't use for prolonged times, except in USB mode?
20:50:17LinusNno i don't mean 11
20:50:18amiconnOf course this would run i2c at a mere 9 khz
20:50:36LinusNit will do that during the frequency switch
20:50:44LinusNbut not for more than a few ms
20:50:46amiconnIf all timings are tbd, you could try to measure the possible maximum
20:50:55***Saving seen data "./dancer.seen"
20:51:11amiconnMy guess is it will run way beyond 100 kHz
20:51:33amiconnRemember that we're effectifely overclocking the MAS on archos when pitching up?
20:51:47LinusNi think we should ask freescale
20:52:02 Quit XavierGr ()
20:52:08amiconnWe can pitch up to 200%, meaning the MAS pll will run at ~48 MHz instead of ~24 MHz, yet it runs stable for extended times
20:52:41 Join hardeep [0] (i=hardeeps@norge.freeshell.ORG)
20:53:39LinusNlooks promising
20:53:43LinusNno hang
20:54:16amiconnDoes some code yield() while an i2c transfer is running?
20:54:37amiconnHmm, ok :/
20:54:40LinusNwhile it waits for each byte to be transferred
20:54:57LinusNand acked
20:55:35LinusNlooks like we have nailed the sucker
20:56:10LinusNwe should still change the backlight handling though
20:56:33LinusNwill you have a look at it?
21:00:00amiconn<sigh> I think I should do that
21:00:17amiconnThe first part is rather simple, the second part needs a bit more thinking
21:00:36amiconnBtw, did you already have a look at the NULL pointer access on archos?
21:00:42LinusNnot yet
21:02:18LinusNbtw, we have had at least two irivers that fail the check_registers() test in ata.c
21:02:21amiconnI also still have your oldplayer around... waiting for a button from Jörg
21:02:47LinusNone of them works perfectly with the test removed
21:02:57amiconnYes, that's strange
21:03:03LinusNi don't know about the other one
21:03:09amiconnDo all irivers use the Toshiba disks?
21:03:15LinusNi think so
21:03:51amiconnToshiba MK4004GAH here...
21:04:19amiconnI wonder what may cause the test to fail, if everything else works...
21:04:35LinusNscares me
21:05:24*LinusN is running the logic analyser with win98 in vmware
21:05:47LinusNsaves me from rebooting when i want to run the analyzer
21:06:19amiconnAh, so your main OS isn't windows on this box
21:06:31LinusNnot if i have a choice
21:07:12LinusNvmware is such a cool piece of software
21:07:46amiconnYes indeed
21:07:55amiconnOnly I use it the other way round...
21:08:02LinusNyeah, i know
21:08:08LinusNmakes it even cooler
21:16:05amiconnHmm, is there a timing specification for the ata register test?
21:16:55amiconncheck_registers() performs a maximum of 64 tries. Perhaps this is too short for some disks on iriver?
21:17:57LinusNi find it interesting that it would need several retries in the first place
21:18:25amiconnAlso, there is an interesting comment at line 1420 in ata.c
21:18:56amiconnDid that setting of IDECONFIGx already happen at the point check_registers() is called?
21:19:35amiconnI think there must be a reason for the 64 tries...
21:22:43amiconnAfaik such a thing never happened on archos (check_registers() failing on a unit otherwise working fine), at least since I joined the project
21:25:37LinusNit was added for the gmini, god knows why
21:26:07LinusNand yes, set_cpu_frequency() is called before ata_init()
21:28:27LinusNoh, the coldstart detection doesn't work on the iriver
21:31:36LinusNhmmm, maybe it does
21:32:07LinusNnope, it is broken
21:32:33LinusNso there won't be any wait_bsy() call before check_registers
21:33:10LinusNbtw, why is the wait_bsy() conditional at all?
21:33:18LinusNshould never hurt
21:34:17Learlinusn: that i2c prescaler change, does that fix the volume hang bug?
21:34:26amiconnLinusN: Where?
21:34:33LinusNLear: yes
21:34:51LinusNin init_and_check()
21:39:38amiconnI don't k now the exact reason for this. I unified some code and made up this function, mainly to solve the problem with the archos failing to boot when pressing ON in the charging screen back then
21:39:51amiconn(I added the retry with always using hard reset)
21:40:10LinusNi think the loop should go away and the wait_bsy() should be unconditional
21:40:22amiconnI didn't change the sequence itself
21:40:42amiconnDo you mean the loop in check_registers()?
21:41:12LinusNsomething is really broken if you have to retry register writes
21:41:48amiconnI think you said the coldstart detection is broken?
21:41:54LinusNyes it is
21:42:09amiconnHowever, this shouldn't trigger this check_registers() problem
21:42:15LinusNbut i don't see why the wait_bsy() shouldn't be there anyway
21:42:44amiconnThe retry in ata.c lines 1439..1445 should catch it
21:43:35amiconnWell, it's an unnecessary call when not coldstarting (I think), so it saves a bit of boot time not doing it
21:46:02amiconnWhy the heck does an ext3 file system need an fsck?
21:46:51amiconnA regular check, I mean
21:47:21LinusNi don't know, it does that every x boots on my system
21:47:36 Join Coldtoast [0] (
21:47:39amiconnYes, here too (for the first time now in my vm)
21:54:13ColdtoastI can't seem to reproduce the volume bug at all now
21:54:22MoosHey Lear, thanks for your pre-amp support :)
21:55:50LinusNColdtoast: which build?
21:56:51Coldtoastthe one before the spurt of build in teh last couple of hours
21:57:00 Join tvelocity [0] (
21:57:14Coldtoasthere we go. the 23:19 build
21:58:37ColdtoastI'll try the latest
22:00:33Coldtoastsame with the latest
22:00:39ColdtoastI was getting it 100% of the time
22:00:48Coldtoastnow I'm getting it 0% of the time it seems
22:07:48Coldtoastcool. with the replaygain implementation, you can pump the bass up and use replaygain to get the volume back
22:08:45Learwith lots of clipping? :)
22:09:14Coldtoastheh. well, it's a matter of adjusting th epreamp just right tho :)
22:09:46dpassen1any difference between preamping and raising the volume?
22:09:50Coldtoastit's sure easy to get it to clip tho :)
22:10:05Coldtoastyeah. with the bass right up, volume gets limited
22:10:22Learyes, preamp works on the sample values, rather than the volume "knob"...
22:18:04amiconnLear: This new id3 info screen is looking rather strange to me :/
22:18:45Learamiconn: what do you mean?
22:18:52Coldtoastbass set to 8, treble set to 2, replaygain preamp at 7 seems to sound ok
22:19:23Learcoldtoast: remember that preamp is only applied to files with replaygain information...
22:19:24amiconnLear: I find it harder to read and use than the old one-tag-per screen implementation
22:19:41ColdtoastLear: yeah. I replaigained my whole collection the othe rday
22:19:58amiconnEspecially irritating is the 2-line alternating between the field name and content
22:20:16amiconnLooks really strange on my recorder with rockfont-8
22:20:36Learyou have a point, but I thought it looked silly with only two rows on text on a screen that fits 10+, so I tried to do something about it...
22:21:36amiconnYes, and I know that having field name and content side-by-side isn't that good an idea either. The displays aren't that large, even on H1x0
22:22:28amiconnI think this would only work nicely with icons for the fields, but then we would need decent and resource-conserving vector icons...
22:22:35Coldtoastwhat sort of impact will all this replaygain stuff have on battery life?
22:23:02Learvery little. I can't see any difference in boost rate at least...
22:23:34Coldtoastheh. I've not charged my player in 2 weeks... just realised
22:24:04ColdtoastI think since putting the 2200mAH battery in, I've charged it 3 times in teh last month
22:24:18Coldtoastonly using it about 15hrs a week tho
22:24:23Moosapear you don't use it a lot
22:24:28Moosa ok
22:29:08 Join hanklords [0] (
22:37:18Learlinusn: in your mpa.c update, what was the reason for putting the first call to recalc_samplecount() inside the while loop? It was outside before the change...
22:41:08LinusNi didn't see a need to call it outside the looå
22:42:04Learwell, I see no need to call it inside the loop... :)
22:42:04LinusNit needs to be called inside the loop anyway if the frequency divider changes
22:42:18amiconnHmm, could someone with a better knowledge of perl please fix to not include an empty codecs/ dir for hwcodec units?
22:42:22Learwell, you have the second call for that, in the "if frequency changed" block.
22:42:37Bagderamiconn: sure, I'll give it a check
22:42:51LinusNit was late :-)
22:43:28LearI'm looking at gapless improvements, so I can take that...
22:43:40Learstop_skip should be used...
22:43:53LinusNi'm struggling with the fm radio i2c
22:44:28Learah, so it is difficult... good news that you're working with it though. :)
22:44:48LinusNshould be very easy, but i can't get it to work for some reason
22:45:04amiconnI'm currently testing my updated german translation
22:45:13amiconnReplaygain gave me a hard time ....
22:47:07Learusing stop_skip seems to completely remove the glitch in the sine test case. :)
22:47:56Learamiconn: Probably better off not translating it...
22:48:01LinusNyeah, i didn't bother to fix that in my update
22:48:36Learnow I just need to make sure it doesn't quit too early...
22:48:57Coldtoastwriting ID3 tags isn't going to affect replaygain info is it?
22:49:05Coldtoastprobably a silly question
22:49:50Learas long as the program updating the tags leaves the TXXX frames, no...
22:50:25ColdtoastI'll give foobar2k a try
22:50:31ColdtoastI usually use Tag & Rename
22:50:32 Join elinenbe [0] (
22:50:56***Saving seen data "./dancer.seen"
22:52:14amiconnLear: I don't think so. Not translating it would lead to many so-called (in german) "denglisch" phrases, which I severely dislike...
22:53:11amiconn...or I would have to leave many more expressions untranslated, which jeopardises the purpose of a language file...
22:53:39LinusNas i see it, Replaygain is a name, much like a trademark
22:53:58LinusNnot supposed to be translated
22:54:24LinusNlike "Windows"
22:54:37amiconnLinusN, different question for you: What would I have to do to get some optimised asm routines considered for inclusion by the gcc team?
22:54:59LinusNsend a patch to the gcc mailing list
22:55:09LearInteresting... Samplecount seems to be very reliable, but the time estimate is can be a couple of seconds off (for a long file).
22:55:20amiconnI can't do a proper patch against the gcc source
22:55:35amiconnI don't know how gcc includes its library routines
22:55:51amiconnI'm talking about my optimised 64 bit multiplication routines
22:56:13LinusNjoin the mailing list and ask them
22:56:34LinusNi don't really know myself
22:56:40amiconnThe SH1 routine is around 2.5 times faster than the (obviously compiled from plain C) version, and the coldfire routine is ~10% faster than the already optimised gcc routine
22:57:03amiconn...and of course both routines are also smaller than the originals
22:57:17LinusNdo they work on all coldfire variants?
22:57:37amiconnThey should work on all coldfire v2 variants
22:58:00amiconnNo exotic instructions used
22:58:21amiconnPerhaps they work on even more 68k derivates; I can't test...
22:59:12amiconnThe SH1 routine should also work on SH2 and SH-DSP, but I don't know whether gcc already has optimised routines for these
22:59:31amiconn...and of course it wouldn't be the optimal routine for these
22:59:36Learmost exotic is mulu.l, afaict, so it should work on most...
22:59:58amiconnmulu.l is just 32x32->32bit
23:00:26amiconnI am relying on that truncation
23:00:37Learyes, but not all cpu:s have them, afaicr. E.g., 68000 lacks it, I think.
23:00:55amiconnYes, the very old variants don't have that
23:04:49 Join Cassandra [0] (
23:05:43CassandraHello all.
23:06:12amiconnhi Cassandra
23:06:26CassandraI swear there is some sort of conspiracy. The feature freeze coincides with my holiday. I'll have about 5 days of freeze to do the manual in.
23:10:35Coldtoastheh. pointless game of the day: translate a phrase from English to some other language using Babelfish then translate the result back to English
23:10:41amiconnCassandra: Certainly not from my side. I was on a trip to Rome when Daniel announced the freeze...
23:11:18Cassandraami: Oh, I'm not blaming anyone. Just bad luck.
23:11:31CassandraI'll see if I can get some done next week anywayl.
23:11:41 Quit Coldtoast ("Peace and Protection 4.22")
23:12:21Cassandra*sigh* Player now has a working hard disk in it, but still won't boot.
23:12:45CassandraI was hoping to have it running in time for the 2.5 manual, but looks like I'm going to have to manage without it.
23:13:08CassandraI'm impressed by how thoroughly someone managed to knacker this unit.
23:18:56 Join stripwax_ [0] (
23:21:04 Quit Rick (Read error: 104 (Connection reset by peer))
23:21:33 Join Rick [0] (
23:23:36amiconnCassandra: You should get in contact with [IDC]Dragon
23:24:08amiconnHe has a big pile of archoses (mostly players) from an aucktion of defective units
23:24:39amiconnSome of them are probably only missing a harddisk to get them working again
23:26:05 Quit Rick (Read error: 104 (Connection reset by peer))
23:27:11 Join Rick [0] (
23:30:40amiconnLinusN: Btw, the protection from extraneous calls also fixes a glitch in Info->Debug->CPU frequency that I observed some time ago
23:32:19stripwax_When I'm looking at the playback thread debug info on rockbox, it looks like the pcm buffer never gets fully full. is that expected? also it never gets anywhere near empty either (seems to get to about 60% full before boost kicks in when playing q5 oggs -> boost ratio of about 25%). Is this not aggressive enough?
23:33:19amiconnPressing SELECT very short did set the CPU to 11 MHz, but holding it a bit longer resetted it again to 48 MHz. Pressing Left/Right or other unassigned buttons did the same - now I know why...
23:35:22Learstripwax_: the "watermark" of the pcm buffer is quite high, that's why boost kicks in soon. I've tried with a reduced watermark, and it seems to work well...
23:35:22LinusNamiconn: glitch? you mean that it flickers beween 120 and 48 mhz?
23:35:44amiconn[23:33:19] <amiconn> Pressing SELECT very short did set the CPU to 11 MHz, but holding it a bit longer...
23:36:31amiconnThat was because of the button events triggering that very short boost/unboost sequence...
23:36:52stripwax_Lear - any idea why it's set so high? also any idea why (it seems like) the buffer never gets fully filled?
23:38:15Learnot really, no. It made some sense to have it that large when the pcmbuffer was 3 times larger, but perhaps I just wasn't reduced when the pcmbuf was reduced...
23:38:29Learas to filling, I don't know really...
23:38:44stripwax_Lear - ahhhh.... didn't know pcmbuf was reduced. yeah, that could well be it
23:39:21 Join Strath [0] (
23:39:48 Join ender` [0] (
23:47:07 Join Craig__ [0] (
23:48:09LinusNamiconn: are you working on the unboost fix too?
23:48:17amiconnJust committed...
23:48:56amiconnIt was indeed as simple as to send an event to the backlight thread, and unboost from there
23:52:02Craig__hi all. anyone interested in a patch "prompt user to save modified current playlists if some action is about to wipe it"?
23:53:03amiconnI think this would be rather annoying...
23:53:43Craig__more annoying than losing a playlist it took an hour to make?
23:54:15amiconnThat never happened to me, being a rockbox user for over 2 years now
23:55:21Craig__I'm an iRiver user, and currently the difference is between a long and a short push. It's come up in the forums before I believe.
23:55:30amiconn(referring to both loosing a playlist unintentionally, and also making a playlist taking that long)
23:55:58LearHe, I'm not sure if I've ever saved a playlist from Rockbox (other than by mistake)...
23:56:11amiconnYes I know what the difference is. It's the same on archos, not from the beginning, but for quite some time now
23:56:27amiconnI don't understand how you can get this wrong
23:57:17amiconnThe actions are assigned in a way that the safer action happens (just displaying the context menu) if you accidentally push longer than intended
23:57:25Craig__Use case: sitting around the camp fire. Passing the iRiver around the friends saying "pick the next few tracks". They will always lose it
23:58:22Craig__No, short push is make new dynamic playlist from directory. Long push is go to menu to add to playlist.

Previous day | Next day