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 | 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 2021-07-21

00:02:27***Saving seen data "./dancer.seen"
00:10:26 Join dconrad [0] (~dconrad@
00:14:51 Quit dconrad (Ping timeout: 255 seconds)
01:38:37 Join ZincAlloy [0] (~Adium@2a02:8108:943f:d824:359b:249c:dcdd:f70f)
01:43:14 Quit ZincAlloy (Ping timeout: 255 seconds)
01:49:16 Join ZincAlloy [0] (~Adium@2a02:8108:943f:d824:359b:249c:dcdd:f70f)
01:53:51 Quit ZincAlloy (Ping timeout: 255 seconds)
01:59:42 Quit Bobathan_ (Ping timeout: 268 seconds)
02:02:28***Saving seen data "./dancer.seen"
02:13:10 Join ZincAlloy [0] (
02:17:34 Quit ZincAlloy (Ping timeout: 246 seconds)
04:02:31***Saving seen data "./dancer.seen"
04:25:04 Join Telehubis [0] (
04:25:14Telehubisamachronic: thanks!
04:26:05 Quit Telehubis (Client Quit)
04:55:34 Quit ufdm (Read error: Connection reset by peer)
05:18:21 Join munkis [0] (
06:02:32***Saving seen data "./dancer.seen"
06:47:38 Join ufdm [0] (
06:59:30speachyhuh, now coverity's emails get through promptly.
07:20:04_bilgusideas on checking filedescriptors before passing to close()
07:22:32_bilgusI think all sane implementations should be fine..
07:26:16rb-bluebotBuild Server message: New build round started. Revision 48c29e3b3b, 303 builds, 8 clients.
07:38:04rb-bluebotBuild Server message: Build round completed after 708 seconds.
07:38:06rb-bluebotBuild Server message: Revision 48c29e3b3b result: All green
07:40:14rb-bluebotBuild Server message: New build round started. Revision 8cd4b8da84, 303 builds, 8 clients.
07:50:18 Join massiveH [0] (
07:51:28rb-bluebotBuild Server message: Build round completed after 673 seconds.
07:51:31rb-bluebotBuild Server message: Revision 8cd4b8da84 result: All green
07:52:28yangwhich is the most modern rockbox player, that is being fully supported?
07:55:06 Join yang-idle [0] (~yang@user/yang)
07:59:47speachymunkis: btw, I didnt' see anything untowards in the buildserver log, your builder disconnected at some point and never came back.
08:00:58_bilgusI never did figure out how I was supposed to add a new build to coverity
08:02:33***No seen item changed, no save performed.
08:17:19Arsenhow can I expand on I ran the battery benchmark with a random mix of media, around 5k tracks, majority of which were 320k mp3s, but with some flacs in there too, which should immitate the average usecase, and people may like to see my results too
08:18:25_bilgusyou mean like you want to edit it?
08:19:04_bilgusjust need a wiki account
08:23:06Arsenah, sure
08:24:15speachyArsen: send me a message with your full anme and email address, and I'll create the account for you.
08:24:28speachy(spammers are _still_ slamming the disabled registration page. sigh)
08:25:47speachyyang: The FiiO M3K is probably the answer to your question. But there are a lot of options depending on your dsired feature and prive points.
09:13:41 Quit massiveH (Quit: Leaving)
09:36:54yang-idlewhich is a more recent fully supported player?
09:37:56yang-idlelike, made after 2015?
09:40:04yang-idleok speachy, thank you for reply
10:02:34***Saving seen data "./dancer.seen"
10:05:02yang-idleis there any sound quality difference from listening music from fiio m3k compared to listening mp3s from an xiaomi mobile phone (newbie question)
10:19:45ArsenI reckon that's pretty likely, but who knows
10:19:56Arsendepends on the dac in the phone/headphone adapter
10:28:45speachyplus quality of the headphones and the actual music files..
10:31:30 Quit munkis (Ping timeout: 252 seconds)
10:33:45 Join munkis [0] (
10:37:49munkisI was trying to figure out if it was dns issues, but it looks like it's not even on my network.
10:38:03munkisrebooting itis gonna suck.
10:38:47speachymunkis: am I correct in rememmbering it's a laptop shoved somewhere?
10:38:56speachymaybe it overheated or got unplugged or something like that.
10:39:45munkisjust checked the hardware link light is light on both the builder and the laptop.
10:40:29munkisthat's why I didn't think to check the router control panel untill a few minutes ago.
11:06:29rb-bluebotBuild Server message: New build round started. Revision f0e3a36fe4, 303 builds, 8 clients.
11:06:37yang-idlespeachy i looked up fiio m3k, its nice and costs 85 eur. are there other similar devices on the new market, or is m3k best supported (how many devs own one?)
11:07:13speachyit's the cheapest supported device that is still actively sold/supported by the manufacturer.
11:08:03yang-idleis it required to open it and solddr/desolder anything to install rockbox firmware?
11:10:09braewoodsyang-idle: anything "stable" doesn't require that unless it needs repairs.
11:12:17speachythe same goes for "unstable" ports. There has to be a reasonable installation method documented that does not require disassembly or special tools.
11:17:40rb-bluebotBuild Server message: Build round completed after 670 seconds.
11:17:41yang-idleok great
11:17:42rb-bluebotBuild Server message: Revision f0e3a36fe4 result: All green
11:18:36yang-idleas i managed to briefly glance the instructions, m3k doesnt use u-boot to boot?
11:49:29braewoodsyang-idle: every embedded platform is different
12:02:37***Saving seen data "./dancer.seen"
12:18:26 Join lebellium [0] (~lebellium@2a01:cb10:2e:2000:adb3:bc70:bf84:fa90)
12:47:18 Quit dys (Remote host closed the connection)
13:17:35 Join ZincAlloy [0] (
14:02:40***Saving seen data "./dancer.seen"
14:19:50 Join dys [0] (~dys@user/dys)
15:00:07 Quit akaWolf (Ping timeout: 268 seconds)
15:26:45 Join akaWolf [0] (
15:47:37yangI like that it's possible to use dual boot with fiio m3k
15:58:48 Quit lebellium (Quit: Leaving)
16:02:43***Saving seen data "./dancer.seen"
16:10:59braewoodsyang: most ports have that. there's only one i know of that doesn't.
17:28:56 Quit munkis (Remote host closed the connection)
18:02:47***Saving seen data "./dancer.seen"
18:29:58 Quit ZincAlloy (Quit: Leaving.)
18:30:09 Quit tomato (Ping timeout: 255 seconds)
18:30:37 Join tomato [0] (~tomato@user/tomato)
19:47:46 Join dconrad [0] (~dconrad@
19:49:44dconradwho would be the person to talk to about the pcm/software volume code? Presumably there's someone who knows it like the back of their hand?
19:52:16speachyhmm. of us active folks, I'm probably it
19:53:17dconradsweet - do you think you could take a look at g#3603 sometime and see if I'm on the right track to do 32-bit software volume scaling?
19:53:20rb-bluebotGerrit review #3603 at : Start of 32-bit software volume for native players by Dana Conrad
19:53:51dconradit's a pretty rough copy-paste job from the hosted port, but I'm not sure what else might need to be changed to make it work
19:54:53speachythe internal audio path is 16-bit. that's baked into pretty much everything
19:54:54dconradI think the general idea is use the digital volume factor for the actual scaling up to the 32-bit format (conveniently enough, we already have a double buffer, right?)
19:55:26speachyyes, but you're going to have to do it in the target pcm driver, by faking HW volume control
19:55:28dconradas far as I can tell, the double buffer is the last thing before the port-specific code/dma takes over
19:55:59dconradso I guess I thought it might make sense to make that 32-bit
19:56:42dconradmaybe that's not a good approach?
19:56:43speachymoving the whole core to being able to handle >16bpp wouldn't be a bad thing, but it's a pretty substantial undertaking.
19:57:03speachyI'd stick to doing it within the pcm driver for the time being
19:57:15dconradalright, safer anyway I suppose
19:58:42dconradso it would probably actually need another buffer after pcm_dbl_buf, or bypass pcm_sw_volume.c entirely?
19:59:04speachythe latter. you can look at the hosted pcm alsa driver for an example
19:59:13dconradalright, sweet
19:59:36speachythe whole thing should be pretty easy to #ifdef away for targets that have hw volume control
20:00:07speachythankfully on the erosq we have lots of RAM and double the CPU performance of the second-closest SoC. :)
20:01:33dconradI did see it's 1 GHz, it truly is 2021!
20:02:15dconrad(if only the aic module did 32-bit audio data to the dac...)
20:02:48***Saving seen data "./dancer.seen"
20:04:12speachyhmm, I'd have a look at the driver in the m3k linux kernel sources. That needed needed 32-bit audio supplied.
20:04:41dconradI imagine they would have just truncated it down to 24-bit...?
20:04:57dconradI suppose I aught to see if that's true
20:05:10speachypossibly.. but confirming what was done where would be informative
20:06:04dconradoh god now I have to remember how that codebase is organized haha
20:10:31speachyI wonder. might also be conceivable that the codec is set to 32-bit @ X KHz, but the AIC thinks it's at 16-bit @ 2X KHz. same number of bits in the same amount of time either way.
20:11:27dconradthat would be weird
20:11:40dconradI mean, there's no way that would work though, right?
20:11:56dconradoh, no wait I think I get it
20:11:56speachyno inherent reason why not; as long as the bit ordering is set correctly on both ends
20:12:11dconradoh that would be very clever if it would work
20:12:40speachyhardware folks being "clever" is responsible for half my missing hair. :D
20:12:59dconradlol hey at least it's exciting
20:13:57dconrad...except you would have to do 2 L samples in a row, then 2 R samples, as far as the AIC knows. Not sure if it would let you do that?
20:15:46speachydepends; typically things switch L/R on every clock cycle.
20:16:38speachybut yeah, might have to repack the data manually on the host side.
20:19:46speachyI guess it ultimately depends on what the PCM510x codec accepts −− do ou have to clock out the entire L or R sample?
20:21:17speachy...nope, it appears that it needs the entire sample clocked out before LRCK toggles.
20:22:22dconradah bummer
20:22:47speachybut if you're doing rejiggering of the samples anyway, there's nothing stopping you from manually re-interleaving them.
20:23:54speachywait, nevermind. the AIC's going to toggle LRCK after 16/24 bits anyway, so bah.
20:24:11dconradyeah that was going to be my next question hah
20:25:04dconradwhy they didn't just add 32-bit mode I don't get... they already require a 32-bit container for 24-bit audio anyway
20:25:26speachythe AIC FIFO requires 32bit padded samples for >16bit data anyway
20:25:47dconradjust a weird omission
20:28:30speachythe mainline driver for the ingenic AIC is limited to 16bit @ 48KHz
20:30:03speachyingenic kernel is 24bit @ 96KHz
20:30:14dconrad... one more weird possibility: maybe tell it it's doing "4 channel" stereo, packed 16-bit?
20:30:55dconradThen it, according to the programming manual anyway, does R1 R0, L1 L0?
20:30:57speachythe pcm5102 doesn't support that so it's moot.
20:31:14dconradI guess I mean the AIC
20:31:25speachythat too. two channels only
20:31:31dconradah dang
20:31:45speachy(well, it can automatically do mono-to-stereo promotion)
20:32:13dconradI thought maybe the AIC could do "4 channels" that might happen to look like 2 channels to the dac
20:32:51speachyit supports a non-pcm mode, allowing arbitrary data
20:33:43speachybut that might be sp/dif only, don't know if the digital interface would be compatible with the pcm5102
20:36:44dconradhow do more than 2 channels over i2s work anyway?
20:37:18dconradyou've got bit clock, l/r clock, and the system clock, how would you indicate more than 2 channels?
20:39:01speachydepends on the codec's needs.
20:39:36speachythe "LRCK" is just an edge-triggered "next sample" indication
20:41:16dconradso the dac would just assume that for instance, it would go perhaps l1 r1 l2 r2 regardless?
20:41:31dconradI guess that makes sense
20:54:05speachywell, as long as the transmitter and receiver both agree on the logical sample ordering... who cares. :)
20:58:55dconradhere's another baffling thing in the programming manual... it claims that 32-bits are always clocked out regardless of the sample bit depth anyway (if I'm reading it right)
20:59:12dconradjust that it's padded with 0's out to 32
20:59:18speachyyes, unless you're using packed 16-bit mode
20:59:39speachy(If I read it correctly)
20:59:51dconradjust kinda baffling haha
21:00:39speachyif you look at the pcm5102 manual, it seems to indicate that any data clocked in after what it needs for the given sample will be ignored.
21:00:53dconradI think amachronic has said there's a lot of incorrect/undocumented behavior too in the PM
21:01:15speachythere always is for non-mass-market parts like this
21:01:35speachybut it's still worht looking at the fiio kernel sources
21:01:50speachysince it's such a hacky mess they might have done something that is undocumented
21:02:00dconradthat makes sense
21:05:26speachydoesn't look like it at first glance.
21:06:13dconradit's pretty vanilla?
21:06:25 Join F3l1x_10m_ [0] (~Al3x_10m@user/f3l1x-10m/x-3393542)
21:09:13speachyat least the jz47xx i2s drivers are.
21:09:40speachythey might have hacked someting completely independent in there
21:09:54 Quit F3l1x_10m (Ping timeout: 240 seconds)
21:10:06dconradI mean, those devices actually have... y'know... volume controls
21:10:17dconradso no need for wizardry
21:11:13speachyactually now that I think about it, the m3k uses the x1000's built-in codec so this is all moot
21:11:28speachyalsa probably truncates the 32-bit audio to 24-bit
21:12:21speachythe m5 kernel has some custom stuff
21:12:23dconrad... how could that be? I was talking to amachronic about that and he was saying the internal codec is itself a dac (goes like aic −−> icodec)
21:12:48speachyit's not using the i2s controller.
21:13:20dconradnot using aic at all?
21:13:23speachythe m3k isn't technically using the aic, just the i2s.
21:14:17speachyie "PCM interface" for the latter, "AIC" for the former. Chapter 7 and 8 of the Programming manual, respectively.
21:15:19speachyno wait, I might be wrong there. might be an internal pinmux going on.
21:16:14speachynevermind, you're right, the AIC is bolted onto the side of the I2S interface, which is muxed with the external pins.
21:16:34dconradok, yeah that tracks with amachronic's explanation
21:17:53dconradI will admit I got excited reading the icodec documentation due to all the volume control stuff, but it wasn't clear to me that it cannot drive an external i2s dac
21:18:14dconradthere is no free lunch, apparently :-P
21:18:16speachyand the m3k/m5 kernels have a non-mainlined ingenic alsa driver.
21:19:02speachywhich is hacked further by FiiO. :D
21:19:26 Join f1reflyylmao [0] (
21:19:32 Quit f1refly (Ping timeout: 255 seconds)
21:19:40speachysupposedly handling 384KHz sample rate...
21:19:44 Nick f1reflyylmao is now known as f1refly (
21:20:30dconradthat seems a wee bit overkill
21:20:36speachyonly 24-bit from what I can tell so far
21:21:26 Quit braewoods (Quit: WeeChat 2.8)
21:22:02speachy8/16/24 I should say
21:22:41speachyactually I take that back, the PCM driver is 8/16 only
21:23:27speachybut I2S is up to 24 bits
21:24:06speachyassuming of course the kernel sources we have are what they're using on the m3k (which we know they're not)
21:24:45dconradso either the AIC or PCM peripherals can use the I2S pins, as far as I can tell?
21:25:45speachymore accurate to say the I2S peripheral is switchable between the internal AIC or external pins
21:26:31dconradoh, sure
21:28:07speachyso to summarize a long winded bit of exposition, it's most likely the erosq's driver is truncating 32-bit audio samples to 24-bit before sending them to the pcm5102
21:28:46dconradthat makes sense
21:29:49dconradI'll figure on trying to truncate the audio data to 24-bits to do the same
21:32:52speachyjust do the existing 32-bit conversion+scaling and then >>8 before dumping over
21:33:25dconradok, I was wondering if that was the proper way to convert it
21:33:45dconrador if it was more complicated than just bit shift
21:34:36speachyit's not optimal but it should be good enough to get the audio pipeline sorted out.
21:35:24speachyI don't recall if amachronic ever got circular DMA working but I suspect we're going to need it, especially at higher sample rates.
21:35:59speachy(since we're going to be doing a lot more work to refill the buffers)
21:36:45dconradthere is a note on the m3k's wiki page about using too much dsp at high sample rates, I think. Not sure if it's still applicable though
21:40:59 Join braewoods [0] (~braewoods@user/braewoods)
22:02:52***Saving seen data "./dancer.seen"
22:47:26 Quit dconrad ()

Previous day | Next day