On Mon, Mar 14, 2011 at 08:56:17PM +0100, manner.moe@gmx.de wrote: > > from SonicStage downoad: > 0x8050: 00 00 00 00 00 00 00 00 00 01 00 03 00 04 00 00 > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 01 03 00 B0 00 01 00 01 01 E2 10 01 D9 10 00 00 > 01 0F 50 00 00 04 00 00 00 52 E4 26 C3 6E F4 A8 > 2F 29 8C 25 00 00 00 00 00 00 00 00 01 00 40 00 > 0x30010: 00 00 00 00 00 00 00 00 00 00 01 D9 00 0D 00 00 > > Now it looks like this: > 0x8050: 60 20 00 00 00 00 00 00 00 01 00 00 00 00 01 00 > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 01 03 00 B0 00 01 00 01 01 E2 10 01 D9 10 00 00 > 02 03 00 00 4C 3B 6F E8 0D EF BA 33 2D 44 8F 80 > EF 5C 37 E6 60 20 00 00 60 20 00 00 01 00 40 00 > 0x30010: 00 00 00 00 00 00 00 00 00 00 01 D8 00 1D 00 00 So, me and Michael did some debugging on the write code today and we found two problems: 1. The write code encrypted blocks even when they were smaller than 8 bytes. This is incorrect behavior, since only full blocks are supposed to be encrypted. Blocks smaller than 8 bytes are to remain unencrypted. This has been fixed in the latest commit f3d8634. 2. The fields for the playback license validity (0044 and 0048 hex) within a track descriptor are wrong. They have to be set to zero to disable license expiration, see [1]. Comparing the above two hexdumps for the track descriptor of track 1 of a HiMD written with SonicStage and himdcli, the difference immediately becomes obvious. While SonicStage set those fields to "00 00 00 00 00 00 00 00", himdcli sets them to "60 20 00 00 60 20 00 00". So the obvious fix will be setting these fields simply to zero like SonicStage does to finally fix the "Cannot play" problem after transferring an MP3 track with himdcli. We haven't tackled the second bug yet since we discovered some other bugs in the write code which prevented writing an MP3 track onto a blank disk: copies of the trkidx0X.hma are not properly numbered so that the current track index file is not valid (SonicStage creates copies of the trkidx0X file and increases the counter X). But this should be an easy fix. Then, there's only the problem with with track information (artist, title, album etc) sometimes not being properly written. But we will look into that as well. So, writing tracks should be working soon enough so we can actually integrate it into the graphical user interface (qhimdtransfer) :). Adrian [1] https://wiki.physik.fu-berlin.de/linux-minidisc/doku.php?id=himddiskformat#the_track-index_file