Conversation
Notices
-
Embed this notice
:ihavenomouth: (inginsub@clubcyberia.co)'s status on Saturday, 03-Jan-2026 17:40:37 JST
:ihavenomouth:
i found another bug, but it was not the bug (fixing it didn't even change anything because it only affected mixed blocks, and there were none in test tracks) -
Embed this notice
:ihavenomouth: (inginsub@clubcyberia.co)'s status on Saturday, 03-Jan-2026 19:12:55 JST
:ihavenomouth:
as a side note, the PCM output of the decoder can go outside this range, so I guess this statement means that it should be clamped and not what it seems to mean -
Embed this notice
:ihavenomouth: (inginsub@clubcyberia.co)'s status on Saturday, 03-Jan-2026 19:12:56 JST
:ihavenomouth:
ok, turns short blocks need a second reordering (which is never mentioned in the spec) after the first one (which is explained in a confusing and nonsensical way). there are still some problems left, but the audio isn't as broken anymore (I also can't hear the difference) -
Embed this notice
:ihavenomouth: (inginsub@clubcyberia.co)'s status on Saturday, 03-Jan-2026 19:12:56 JST
:ihavenomouth:
actually this happens in areas where the audio goes outside the [-1, 1] range. if i convert the track to wav, the difference almost disappears, because it clamps the values -
Embed this notice
:ihavenomouth: (inginsub@clubcyberia.co)'s status on Saturday, 03-Jan-2026 22:24:16 JST
:ihavenomouth:
It says to reorder the frequency lines in subband order. Subbands are blocks of 18 frequency lines representing contiguous frequency regions.
Initially the data in scalefactor band order, with each line of the table repeated three times for three windows. The data must be transposed as 3 x L matrices by scalefactor band, so for the first six bands the order will be
1 5 9 2 6 10 3 7 11 4 8 12
13 17 21 14 18 22 15 19 23 16 20 24
25 29 33 26 30 34 27 31 35 28 32 36
37 41 45 38 42 46 39 43 47 40 44 48
49 55 61 50 56 62 51 57 63 52 58 64 53 59 65 54 60 66
67 75 83 68 76 84 69 77 85 70 78 86 71 79 87 72 80 88 73 81 89 74 82 90
grouped by scalefactor band here.
Grouping them by subband (for demonstration purposes, no shuffling around here):
1 5 9 2 6 10 3 7 11 4 8 12 13 17 21 14 18 22
15 19 23 16 20 24 25 29 33 26 30 34 27 31 35 28 32 36
37 41 45 38 42 46 39 43 47 40 44 48 49 55 61 50 56 62
51 57 63 52 58 64 53 59 65 54 60 66 67 75 83 68 76 84
69 77 85 70 78 86 71 79 87 72 80 88 73 81 89 74 82 90
there subbands aren't ordered by frequency, but since all initial blocks were divisible by 3, the values are still interleaved in window1, window2, window3 order, and can be trasposed as 6 x 3 matrices by subband to restore the correct order.
1 2 3 4 13 14 5 6 7 8 17 18 9 10 11 12 21 22
15 16 25 26 27 28 19 20 29 30 31 32 23 24 33 34 35 36
37 38 39 40 49 50 41 42 43 44 55 56 45 46 47 48 61 62
51 52 53 54 67 68 57 58 59 60 75 76 63 64 65 66 83 84
69 70 71 72 73 74 77 78 79 80 81 82 85 86 87 88 89 90
and now it's ready for IMDCT.
(yes, I typed all of that by hand)
So the specification said "put data in the correct order", and left figuring out what the correct order is supposed to be as an exercise for the reader.
Maybe if I knew anything about signal processing that would be immediately obvious to me. -
Embed this notice
:ihavenomouth: (inginsub@clubcyberia.co)'s status on Saturday, 03-Jan-2026 22:24:17 JST
:ihavenomouth:
i think i have figured out what the specification was trying to say. it’s the type of thing obvious in hindsight, but impossible to decipher without already knowing what it means (will explain later) -
Embed this notice
:ihavenomouth: (inginsub@clubcyberia.co)'s status on Saturday, 03-Jan-2026 22:24:36 JST
:ihavenomouth:
cc @binkle is this something self-evident to you? -
Embed this notice
:ihavenomouth: (inginsub@clubcyberia.co)'s status on Sunday, 04-Jan-2026 01:51:07 JST
:ihavenomouth:
@ctr that's also a question for @binkle -
Embed this notice
ten (ctr@clubcyberia.co)'s status on Sunday, 04-Jan-2026 01:51:08 JST
ten
@Inginsub how do you get into dsp :ihavenomouth: likes this. -
Embed this notice
binkle (binkle@clubcyberia.co)'s status on Sunday, 04-Jan-2026 02:32:03 JST
binkle
@Inginsub @ctr for the basics I would recommend pic related to start. From there you can branch out into more complex topics depending on your interests. There's also https://ccrma.stanford.edu/~jos/ (specifically the textbooks section) but those are difficult to understand without some grounding in the subject already :ihavenomouth: likes this.
-
Embed this notice