pippin wrote: > I want to support native DSD in iOS. > I can't find anything about how that "native" format looks like. Is that > what you transcode to if you transcode to DSD? > What does the player do with it if it needs to convert back to e.g. DoP?
When you 'transcode' PCM to DSD you transcode to dsf, dff or other few file/stream formats. Dsf and Dff are the two major format introduced by SONY and PHILIPS, but we have few others. In all we have 1 bit dept samples at very hight rate. dsf could have tags, dff could not just like wav. i.e. DSD64 = 2822400Hz = 64 * 44100Hz = 5.684.800 b/sec for a 2 channel stream. DSD128 is the double an so on. But as you well know there is nothing like 'bitstream' in computer world, we talk about bytes and structures, so when we need to 'move' form the disk (or the memory) to the driver and so on, we move bytes. Here comes "DSD over PCM", meaning you encapsulate somehow DSD RAW data inside PCM frames and move them allover. When we talk about 'native' (a wrong name if any) we reffer to pack i.e. 5684800 DSD frames (1 second of music) into 88200 frames of 32 bits, that look exactly like PCM 88200/32, adding just an header with all the information (lenght included) about the stream at the really beginning, with a negligeable overhead. What is called DOP, is just a specific 24bit format, where 16bit are data and 8 are reserved for a 'marker' always wth a fixed value. The standard says that is DOP when 5 consecutives frames has the marker, is not DOP anymore but PCM if just one frame is without marker. This could prevent problems when mixing DOP and PCM streams, but at the cost to double the bit rate, infact DSD64 converted to DOP become a 176KHz, 32 bit stream. That's why 'native' are prefered. In both cases the player receive a bit steam, then it has to pack the bits in bytes and in specific formats. One point is that different interfaces uses different 'native' formats, where the difference is the endianess, so - depending on the format required - the player should revert the order of bits in byte. that's almost all. Until few month ago, the only drivers capable of 'native' DSD where the originals and proprietary ASIO drivers both in Win and Mac Osx. Now ALSA could handle 'native' dsd too, but only for XMOS devices, see https://github.com/lintweaker/xmos-native-dsd for refference and details. Wich support you want to add? To just controll LMS I'm quite sure you don't need anything more than profiles defined and enabled via custom-convert.conf or C-3PO in LMS, For playback I don't know, but if I well recall you use some sort of squeezeplay arent you? maybe you could have a look here:https://github.com/marcoc1712/squeezelite-R2 dsd.c, dop.c an doutput_alsa.c is what you are looking for. Inside daphile_patches folder you'll find the original patches to Triode's squeezelite, but first be sure you have some non DOP DSD enabled dirvers to use in iOs. ____________________________________________________________ SB+, Klimo Merlino + Kent Gold, Monitor Audio Studio 20 Gold SE+, Klimo reference and DIS Interconnect. ------------------------------------------------------------------------ marcoc1712's Profile: http://forums.slimdevices.com/member.php?userid=34842 View this thread: http://forums.slimdevices.com/showthread.php?t=106956 _______________________________________________ Squeezecenter mailing list [email protected] http://lists.slimdevices.com/mailman/listinfo/squeezecenter
