Jump to content
IGNORED

SACD Ripping using an Oppo or Pioneer? Yes, it's true!


ted_b

Recommended Posts

12 hours ago, mindset said:

Try this patch if you didn't do so when you compiled sacd_extract for ARM.  This will get you 3x speed up in .dsf generation (=DST decompression). 

 

Hello mindset, thanks for your patch ? - I'll try to mix it into my next compile. 

 

The problem is much more basic though, as I ran into major obstacles while compiling the source.

The first were the SSE instructions which I had to remove and the latter were memory allocation instructions for which no malloc.h was generated. Guess I got lucky and my dirty fix approach worked ?. Any idea whom of the developers, I could bother with this?

 

12 hours ago, mindset said:

Despite this improvement, Raspberry Pi is way too slow so probably will not be very useful for anything that involves DST decompression which is very CPU intensive.

 

Indeed you are correct, ripping performance on the Pi was 8-TIMES! slower compared to my 8-core AMD x64 CPU!

But then again nobody uses a Raspberry Pi because of its raw power.

 

On the playback side, I was really impressed with the sound quality output of LibreELEC.

Without any issues 2ch DSD is outputted as a stereo 192kHz PCM signal via HDMI, and 6-channel DSDs get a 96kHz PCM 6ch treatment via HDMI.

The sound experience is really superb. ??

Link to comment
  • 3 weeks later...
On 9/8/2018 at 10:19 PM, mindset said:

To users of sacd_extract using the server method:

 

I have been working on improving the sacd_extract client program from the currently inactive original sacd-ripper repository past few months.  I thought I would share that in case someone is interested.  Here is the git repository: https://github.com/setmind/sacd-ripper/  (Sorry, you need to compile the code to use it).

 

In addition to performance improvement and bug fixes, I have added features like concurrent extraction of ISO and DSF/DSDIFF in a single scan of a disc, padding-less DSF generation for some players that cannot handle DSF tail padding properly, extraction of multi-channel and single-channel tracks in one shot, and addition of more ID3v2 tags from TOC to DSF.  Details with compilation instruction are described in https://github.com/setmind/sacd-ripper/blob/master/readme.rst and performance comparison with the original is here https://github.com/setmind/sacd-ripper/wiki

 

It seems to work fine on Linux and Windows, but unfortunately is unverified for macOS since I do not have a Mac.  If anybody has a chance to try this on Mac, please report back.  I welcome any feedback.

 

Thanks.

 

Hello mindset,

 

I was very eager to test your DST decompression boost but got stuck somehow.

Compiling your sources (on Ubuntu x64) went fine, but upon finishing extraction of the first track sacd-extract always runs into the following error:

 


Exporting CUE sheet [Dire Straits - Brothers In Arms - 20th Anniversary Edition.cue] 
 
Processing [Dire Straits - Brothers In Arms - 20th Anniversary Edition/01 - Dire Straits - So Far Away.dsf] 
(1/9).. 
Completed: 100% (219,9MB), Total: 9% (219,9MB) at 2,36MB/sec

sacd_extract: /.../sacd-ripper/libs/libdstdec/buffer_pool.c:138: buffer_pool_free: Assertion »count == pool->made« not satisfied.

 

 

On a playback note:

Has anyone laid hands on this interesting SACD plugin for Kodi ? ISO playback sounds nice, but SACD-R support would be the ultimate goal.

Link to comment
19 hours ago, mindset said:

Aren't you using one of the old commits from github?  With the latest code, there is actually no way to get a cue sheet and dsf in one shot like your output is showing, and there was a bug in thread handling which terminates the process after the first track extraction.

 

@mindset

I stand corrected, your sacd_extract is indeed working but is incompatible with the java GUI [iso2dsd_gui.jar] in certain circumstances.

 

DST to DSD conversion errors:

sacd_extract: /.../sacd-ripper/libs/libdstdec/buffer_pool.c:138: buffer_pool_free: Assertion »count == pool->made« not satisfied.

or

sacd_extract: /.../sacd-ripper/libs/libdstdec/dst_decoder.c:307: write_thread: Assertion »dst_decoder->decode_head == NULL && peek_lock(dst_decoder->decode_have) == 0« not satisfied.

 

If the CLI is used, the output is valid:

 

sacd_extract -i 192.168.178.53:2002 -2 -c -s -t 1

sacd_extract -i 192.168.178.53:2002 -m -c -p -t 2

 

@ALL

 

If you aim for ISO output or just a plain DST extraction of the tracks (without a decompression to raw DSD), you can use the GUI with minset's sacd_extract.

 

If you desire uncompressed DSD files as output you should avoid the GUI and use the CLI directly. The speed gains are considerable!

Link to comment
39 minutes ago, mindset said:

Are you sure that you are using the latest code from github?  Some of the older commits (before my announcement here) had that problem.

 

I surely hope so, here are the MD5sums from /sacd-ripper/libs/libdstdec/ :

 

FileName	MD5 HashValue				FileSize
buffer_pool.c	12A90BD0344CAF6CBEBD34FE37B3F544	4,04 KiB
buffer_pool.h	856D9528D1BD05F87AA8C8F48E7AAEE2	3,33 KiB
ccp_calc.c	25B1B2D50354DA869DCDCFD02234D281	5,06 KiB
ccp_calc.h	BE4781DEB9190414174014671B9D5449	2,41 KiB
conststr.h	03BBD4D776AE5E40F7F3F3850E64ED14	6,58 KiB
dst_ac.c	551E582FDE6AF7D41786BE2667C10219	7,31 KiB
dst_ac.h	CA547BE4985B1864130AABAD761919FD	2,75 KiB
dst_data.c	977A8C19ECB4A3B2B06E2FF20106A875	14,25 KiB
dst_data.h	AD956EACFBB848371B20CCA7A1D82228	3,46 KiB
dst_decoder.c	27A71B5B85A669A8536BF6790D8FB2A3	13,46 KiB
dst_decoder.h	9BA16B26D0CAA684A69F4573A164E25C	1,47 KiB
dst_fram.c	18D58AA6EFD161BFA033D34EFDC73438	17,76 KiB
dst_fram.h	5BCFC4B0DFB08CC0E3893C8CD5F65178	2,93 KiB
dst_init.c	95804B316D5CB1125F44E24B3A8735DB	13,45 KiB
dst_init.h	AD9A4FDA75D866DC710131B72DB59B34	2,69 KiB
types.h		A3C28858774FD4A07B2E1740E5C7A9D3	9,36 KiB
unpack_dst.c	6F9D6BD5A9CA8CB4BC7CDFF35D767E90	35,93 KiB
unpack_dst.h	6633B0C66D04C51A142688DC60E111F0	2,71 KiB
yarn.c		F9778BE276FEDC00DC5D59BD2EEDB576	10,5 KiB
yarn.h		3D5CDB9442C5B9491B33B6E1809DF485	6,3 KiB

 

 

ISO extraction via CLI successfully finished:

 

sacd_extract -i 192.168.178.53:2002 -I
Processing [Mark Knopfler - Shangri-La.iso] (1/1)..
Completed: 100% (3656,3MB), Total: 100% (3656,3MB) at 1,59MB/sec

Yet still no playback - thats enough I will fire up Windows to get confirmation whether the ISO is really faulty or not.

Link to comment
Just now, mindset said:

Could you please post md5sums of sacd-ripper/libs/libsacd instead?

 

 

Sure:

 

4bf7d260755dbe795d0d2d72da4ec0dc *libsacd\cuesheet.c
ee7797f38983b2c5a32ffaeb341d50c5 *libsacd\cuesheet.h
0cfe0bfa1720abac77104d306e953263 *libsacd\dsdiff.c
b2fb43a6c430f88e5a5f0abd5128e9a9 *libsacd\dsdiff.h
48096935af12146efbf1bd5e36d12f00 *libsacd\dsf.c
c24309f90c6b7ae72a14f1b371841e2a *libsacd\dsf.h
907c2750f060dbe6766127ec76f933bf *libsacd\dst_decoder_ps3.c
d43f36e112cafffb77bd6366fa8ef60e *libsacd\dst_decoder_ps3.h
6bc2865c768863e1b6c00d49ba3c1683 *libsacd\endianess.h
910998e04a5ffafffebfb5e2926d525c *libsacd\ioctl.c
8817902d77aadc3b31a770fdb6518b92 *libsacd\ioctl.h
c2331d84481b77ceb6b91fe1478c4d23 *libsacd\iso_writer.c
78b757c2db232ca1c418b98a04b8face *libsacd\Makefile
fcac2b183cd5ea94702f5a38bc241eac *libsacd\sac_accessor.c
4c8579f012d27511ea6e1f19e5708ec7 *libsacd\sac_accessor.h
f401439a984dfdd205115528a01e37f4 *libsacd\sacd_input.c
ea2878580b8119cfb687520616abc1dc *libsacd\sacd_input.h
5ce96ec15c7814596d3969991af018b8 *libsacd\sacd_pb_stream.c
671a793f4e6a4ccd2aed18e214ed3d72 *libsacd\sacd_pb_stream.h
aecacb5e2063a77ac355a21bcc1f4ccf *libsacd\sacd_read_internal.h
1183d93166df75ee8491b52b497d530f *libsacd\sacd_reader.c
53195ccf505f33155bbfa0d36d8d07c6 *libsacd\sacd_reader.h
a05f948b6afce3911587620fefa8e6d5 *libsacd\sacd_ripper.pb.c
1675b3dd3281be83948a7e322a3fdabe *libsacd\sacd_ripper.pb.h
3ec49fa842233bc6f6eaf94665a7b8de *libsacd\sacd_ripper.proto
35a299349c733761e5136036fdd48738 *libsacd\scarletbook.c
6fe58f9dbcc6cc0fe673e63e0709efe7 *libsacd\scarletbook.h
2adcfc86719941b69d1b2ead5ad653a8 *libsacd\scarletbook_helpers.c
eb85b896f0b4e4af083d452d2cb8fa4b *libsacd\scarletbook_helpers.h
1d2b2179e5e91d7c443367539dcd974b *libsacd\scarletbook_id3.c
5dd9db4904ad28938666f167310ccdcd *libsacd\scarletbook_id3.h
82370f631c3eb8ad3f07d92606c3dd23 *libsacd\scarletbook_output.c
a468553adfea5575312a27ec796181d5 *libsacd\scarletbook_output.h
978e5014deeefbbdb496498dc9ace598 *libsacd\scarletbook_print.c
db53e092e1682452dd12aa22f168869c *libsacd\scarletbook_print.h
83b7e34c694ddce324cd74c3bded5d76 *libsacd\scarletbook_read.c
5f4fa36055da2b71a58eabc67b1fa0f5 *libsacd\scarletbook_read.h
afc2736cfb871b24956ebf56bc86d806 *libsacd\version.h

 

Link to comment
12 hours ago, mindset said:

You are actually using pretty old codes.

 

Ohh boy ?, guess I have to start from scratch then - thanks for pointing that out! 

 

 

14 hours ago, BluRay444 said:

 

Don't know what version sacd_extract.exe is ...

 

 

That's a huge problem IMHO by now, as most "bundled sacd_extracts" are a bit outdated.

 

For instance if sacd_extract -? does not provide the argument -t (for invididual SACD track extraction) it's rather pre 2015 sourced or versionwise 0.3.6 or older:

CHANGELOG of original sources:

version 0.3.8

    - fixed a bug where a DSF export truncated sample data (Chuck Anderson)

version 0.3.7

    - fixed a bug where arranger phonetic was referenced incorrectly during print (-P)
    - option to allow individual dsf/dsdiff track extraction
    - added (foobar) compatible escaping to cuesheets
    - added user optional output filename/folder (last parameter)

version 0.3.6

    - network speed improvement
    - added native OS X support
    - gapless is on by default for individual tracks
    - fixed issue where CUE export wrote to wrong filename

version 0.3.5

    - added ID3 tags to Edit Master for multiple ID3 tagging
    - added option to export individual CUE Sheets
    - fixed DSTI table where DST Edit Master > 2GB
    - fixed SACD to ID3 genre conversion table

version 0.3.4 (bug fix release, please update if running 0.3.3)

    - fixed a bug where DSTI was incorrectly part of DSD chunk

version 0.3.3 (bug fix release, please update if running 0.3.2)

    - fixed a bug where a wrong DSDIFF header was written for edit masters

version 0.3.2

    - added DSDIFF Edit Master (single DSD file) support
    - added CUE Sheet support for Edit Master
    - added DST frame buffer overflow protection
    - added DST frame index chunk support
    - removed gapless support (replaced by DSDIFF Edit Master)
    - merged Maxims optimized FIR decoder
sacd_extract -?
Usage: sacd_extract [options] [outfile]
  -2, --2ch-tracks                : Export two channel tracks (default)
  -m, --mch-tracks                : Export multi-channel tracks
  -e, --output-dsdiff-em          : output as Philips DSDIFF (Edit Master) file
  -p, --output-dsdiff             : output as Philips DSDIFF file
  -s, --output-dsf                : output as Sony DSF file
  -z, --dsf-nopad                 : Do not zero pad DSF (cannot be used with -t)
  -t, --select-track              : only output selected track(s) (ex. -t 1,5,13)
  -I, --output-iso                : output as RAW ISO
  -w, --concurrent                : Concurrent ISO+DSF/DSDIFF processing mode
  -c, --convert-dst               : convert DST to DSD
  -C, --export-cue                : Export a CUE Sheet
  -i, --input[=FILE]              : set source and determine if "iso" image, 
                                    device or server (ex. -i 192.168.1.10:2002)
  -o, --output-dir[=DIR]          : Output directory (ISO output dir for concurrent processing mode)
  -y, --output-dir-conc[=DIR]     : DSF/DSDIFF Output directory for concurrent processing mode
  -P, --print                     : display disc and track information

Help options:
  -?, --help                      : Show this help message
  --usage                         : Display brief usage message

 

@mindset How feasible would it be to implement the following arguments for better version information and source origin?

 

  -v, --version			  : shows official version number
  -gr,--git-repo		  : displays the git repository from which the source package originated
  -gp,--git-patch-date		  : states the date of the latest patch comitted to the sources

 

Link to comment
1 hour ago, BluRay444 said:

I only need the DSF version because it's uncompressed  DSD (which is what I want) and has better native support for metadata (DFF can store metadata ID3 format in the DFF's internal data block, but the DFF file player must also be capable of recognizing ID3 chunks).

 

Indeed DSF seems to be very popular.

But let's say full ISO backups are not desired and external playback (DSD files via USB stick on blu-ray players or amplifiers) isn't the aim either, have you considered giving WavPack a try?

 

It supports DSD lossless compression profiles since Version 5 and offers full tagging support.

 

Link to comment
1 minute ago, Kal Rubinson said:

Is there a good reason to consider Wavpack?

 

 

1. Basically all the good reasons why NOT to store PCM sound data as WAVE or AIFF anymore, translocated into the DSD world.

2. Its lossless, hence the original input file (.DSF or .DFF) can be recreated  down to the last bit and file hash value.

3. Has several compression profiles, to fit any hardware decompression capability.

4. Supports TAGs with embedded cuesheets and cover arts

5. Can act as a lossless converter .DFF -> .WV -> .DSF

6. Its a free format and actively developed

 

 

Link to comment
1 hour ago, Kal Rubinson said:

I may give it a try and see how much space I save and how much overhead is with multichannel DSF.

 

The compression ratio is ~40 per cent for stereo, should improve for multichannel.

 

wavpack *.dsf -h -v

 WAVPACK  Hybrid Lossless Audio Compressor  Linux Version 5.1.0
 Copyright (c) 1998 - 2017 David Bryant.  All Rights Reserved.


01 - Sandy Lam - Di Han.dsf:
created (and verified) 01 - Sandy Lam - Di Han.wv in 38.75 secs (lossless, 44.35%)                                

02 - Sandy Lam - Huang Hun.dsf:
created (and verified) 02 - Sandy Lam - Huang Hun.wv in 34.58 secs (lossless, 40.06%)                                

03 - Sandy Lam - Ji Qing.dsf:
created (and verified) 03 - Sandy Lam - Ji Qing.wv in 39.04 secs (lossless, 42.13%)                                

04 - Sandy Lam - Zi Zhi Kong Jian (Album Version.dsf:
created (and verified) 04 - Sandy Lam - Zi Zhi Kong Jian (Album Version.wv in 35.63 secs (lossless, 38.49%)                                

05 - Sandy Lam - Ming Yun Shi Fou Zhe Yang.dsf:
created (and verified) 05 - Sandy Lam - Ming Yun Shi Fou Zhe Yang.wv in 38.02 secs (lossless, 40.33%)                                

06 - Sandy Lam - Jue Jue.dsf:
created (and verified) 06 - Sandy Lam - Jue Jue.wv in 34.75 secs (lossless, 43.56%)                                

07 - Sandy Lam - Ye Xing Ren.dsf:
created (and verified) 07 - Sandy Lam - Ye Xing Ren.wv in 41.04 secs (lossless, 43.97%)                                

08 - Sandy Lam - Xin Sui Xiang.dsf:
created (and verified) 08 - Sandy Lam - Xin Sui Xiang.wv in 31.61 secs (lossless, 38.43%)                                

09 - Sandy Lam - Hui Se.dsf:
created (and verified) 09 - Sandy Lam - Hui Se.wv in 34.30 secs (lossless, 38.96%)                                

10 - Sandy Lam - Hui Se Hua Zhuang.dsf:
created (and verified) 10 - Sandy Lam - Hui Se Hua Zhuang.wv in 31.95 secs (lossless, 37.84%)                                

11 - Sandy Lam - Zui Jia Nan Zhu Jia (Album Version).dsf:
created (and verified) 11 - Sandy Lam - Zui Jia Nan Zhu Jia (Album Version).wv in 33.81 secs (lossless, 39.92%)                                

12 - Sandy Lam - Zao Chen.....dsf:
created (and verified) 12 - Sandy Lam - Zao Chen.....wv in 39.96 secs (lossless, 40.73%)                                

13 - Sandy Lam - Chang Jie Di Yi Jiao.dsf:
created (and verified) 13 - Sandy Lam - Chang Jie Di Yi Jiao.wv in 35.19 secs (lossless, 40.07%)                                

14 - Sandy Lam - Xia Yu Tian (Album Version).dsf:
created (and verified) 14 - Sandy Lam - Xia Yu Tian (Album Version).wv in 45.41 secs (lossless, 38.79%)                                

15 - Sandy Lam - Tai Yang San Xia.dsf:
created (and verified) 15 - Sandy Lam - Tai Yang San Xia.wv in 30.30 secs (lossless, 35.91%)                                

16 - Sandy Lam - Dong Fang Xi Fang.dsf:
created (and verified) 16 - Sandy Lam - Dong Fang Xi Fang.wv in 37.69 secs (lossless, 38.19%)                                

 **** 16 files successfully processed ****

 

Stereo comparison chart - DST vs DSF vs WV:

DST-DSD-WavPack_comparison.thumb.png.6d236ceb885194a4f67cd342c45273ea.png

 

 

1 hour ago, One and a half said:

Is there a restriction on the size of the cover art files for DSF?

 

The WavPack manual states:

 

Quote

--allow-huge-tags = allow tag data up to 16 MB (otherwise it's 1 MB)

 

Link to comment
4 hours ago, mindset said:

That is a really old Mac.  I am sure you will encounter problems because it's not Intel-based.

 

 

Right you are ... as usual ?, it was pain in the @rs€ and took some time as well.

 

The preparation steps for compiling on a PowerPC were:

 

Quote

1. Download and install Xcode v3.1.4

 

2. Install Tigerbrew (PowerPC flavoured fork of Homebrew)

 

ruby -e "$(curl -fsSkL raw.github.com/mistydemeo/tigerbrew/go/install)"

 

3. Install curl , git & cmake

 

brew install curl

brew install git

brew install cmake

 

4. Build sacd_extract

 

git clone https://github.com/setmind/sacd-ripper.git

cd sacd-ripper/tools/sacd_extract

cmake .

make

 

The building stage unfolded quite well,

$ cmake .
-- git commit hash: 0.3.9@setmind-1-gf7419fdf1639cf6a88e95ca7ed45d00a99a78a2a
-- git repo url: https://github.com/setmind/sacd-ripper.git
-- The C compiler identification is GNU 4.0.1
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Check for working C compiler: /Developer/usr/bin/cc
-- Check for working C compiler: /Developer/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/MACoding/sacd-ripper/tools/sacd_extract

 

but then this struck:

$ make
Scanning dependencies of target sacd_extract
[  2%] Building C object CMakeFiles/sacd_extract.dir/getopt.c.o
[  4%] Building C object CMakeFiles/sacd_extract.dir/getopt1.c.o
[  6%] Building C object CMakeFiles/sacd_extract.dir/main.c.o
/Users/MACoding/sacd-ripper/tools/sacd_extract/main.c: In function main�:
/Users/MACoding/sacd-ripper/tools/sacd_extract/main.c:360: warning: s_wchar is used uninitialized in this function
[  8%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/charset.c.o
/Users/MACoding/sacd-ripper/libs/libcommon/charset.c: In function charset_convert�:
/Users/MACoding/sacd-ripper/libs/libcommon/charset.c:68: warning: passing argument 2 of iconv from incompatible pointer type
[ 10%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/fileutils.c.o
[ 12%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/log.c.o
[ 14%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/logging.c.o
[ 16%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/pb_decode.c.o
[ 18%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/pb_encode.c.o
[ 20%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/socket.c.o
[ 22%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/timeout.c.o
[ 25%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/usocket.c.o
[ 27%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/utils.c.o
[ 29%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libcommon/wsocket.c.o
[ 31%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libdstdec/buffer_pool.c.o
/Users/MACoding/sacd-ripper/libs/libdstdec/buffer_pool.c: In function buffer_pool_get_space�:
/Users/MACoding/sacd-ripper/libs/libdstdec/buffer_pool.c:77: warning: implicit declaration of function posix_memalign
[ 33%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libdstdec/ccp_calc.c.o
[ 35%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libdstdec/dst_ac.c.o
[ 37%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libdstdec/dst_data.c.o
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_data.c: In function FIO_BitGetChrUnsigned�:
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_data.c:208: warning: tmp may be used uninitialized in this function
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_data.c: In function FIO_BitGetIntUnsigned�:
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_data.c:248: warning: tmp may be used uninitialized in this function
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_data.c: In function FIO_BitGetIntSigned�:
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_data.c:287: warning: tmp may be used uninitialized in this function
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_data.c: In function FIO_BitGetShortSigned�:
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_data.c:332: warning: tmp may be used uninitialized in this function
[ 39%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libdstdec/dst_decoder.c.o
[ 41%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libdstdec/dst_fram.c.o
[ 43%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libdstdec/dst_init.c.o
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_init.c: In function MemoryAllocate�:
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_init.c:84: warning: implicit declaration of function _mm_malloc
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_init.c:84: warning: assignment makes pointer from integer without a cast
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_init.c: In function MemoryFree�:
/Users/MACoding/sacd-ripper/libs/libdstdec/dst_init.c:93: warning: implicit declaration of function _mm_free
[ 45%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libdstdec/unpack_dst.c.o
[ 47%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libdstdec/yarn.c.o
[ 50%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libid3/id3.c.o
[ 52%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libid3/id3_frame.c.o
[ 54%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libid3/id3_frame_content.c.o
[ 56%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libid3/id3_frame_text.c.o
[ 58%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libid3/id3_frame_url.c.o
[ 60%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libid3/id3_tag.c.o
[ 62%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libid3/unicode.c.o
[ 64%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/cuesheet.c.o
[ 66%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/dsdiff.c.o
[ 68%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/dsf.c.o
[ 70%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/dst_decoder_ps3.c.o
[ 72%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/ioctl.c.o
[ 75%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/iso_writer.c.o
[ 77%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/sac_accessor.c.o
[ 79%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/sacd_input.c.o
[ 81%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/sacd_pb_stream.c.o
[ 83%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/sacd_reader.c.o
[ 85%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/sacd_ripper.pb.c.o
[ 87%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/scarletbook.c.o
[ 89%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/scarletbook_helpers.c.o
[ 91%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/scarletbook_id3.c.o
[ 93%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/scarletbook_output.c.o
In file included from /Users/MACoding/sacd-ripper/libs/libsacd/scarletbook_output.c:41:
/Users/MACoding/sacd-ripper/tools/sacd_extract/../../libs/libcommon/sys/atomic.h: In function sysAtomicAddReturn�:
/Users/MACoding/sacd-ripper/tools/sacd_extract/../../libs/libcommon/sys/atomic.h:580: warning: implicit declaration of function __sync_add_and_fetch
/Users/MACoding/sacd-ripper/tools/sacd_extract/../../libs/libcommon/sys/atomic.h: In function sysAtomicSub�:
/Users/MACoding/sacd-ripper/tools/sacd_extract/../../libs/libcommon/sys/atomic.h:585: warning: implicit declaration of function __sync_sub_and_fetch
/Users/MACoding/sacd-ripper/tools/sacd_extract/../../libs/libcommon/sys/atomic.h: In function sysAtomicInc�:
/Users/MACoding/sacd-ripper/tools/sacd_extract/../../libs/libcommon/sys/atomic.h:595: warning: implicit declaration of function __sync_fetch_and_add
/Users/MACoding/sacd-ripper/tools/sacd_extract/../../libs/libcommon/sys/atomic.h: In function sysAtomicDec�:
/Users/MACoding/sacd-ripper/tools/sacd_extract/../../libs/libcommon/sys/atomic.h:600: warning: implicit declaration of function __sync_fetch_and_sub
/Users/MACoding/sacd-ripper/tools/sacd_extract/../../libs/libcommon/sys/atomic.h: In function sysAtomicCompareAndSwap�:
/Users/MACoding/sacd-ripper/tools/sacd_extract/../../libs/libcommon/sys/atomic.h:615: warning: implicit declaration of function __sync_bool_compare_and_swap
[ 95%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/scarletbook_print.c.o
[ 97%] Building C object CMakeFiles/sacd_extract.dir/Users/MACoding/sacd-ripper/libs/libsacd/scarletbook_read.c.o
[100%] Linking C executable sacd_extract
Undefined symbols:
  "_posix_memalign", referenced from:
      _buffer_pool_get_space in buffer_pool.c.o
  "__mm_malloc", referenced from:
      _AllocateArray in dst_init.c.o
      _AllocateArray in dst_init.c.o
      _AllocateArray in dst_init.c.o
      _AllocateArray in dst_init.c.o
      _DST_InitDecoder in dst_init.c.o
      _DST_InitDecoder in dst_init.c.o
      _DST_InitDecoder in dst_init.c.o
      _DST_InitDecoder in dst_init.c.o
      _DST_InitDecoder in dst_init.c.o
      _DST_InitDecoder in dst_init.c.o
      _DST_InitDecoder in dst_init.c.o
      _DST_InitDecoder in dst_init.c.o
      _DST_InitDecoder in dst_init.c.o
  "__mm_free", referenced from:
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _DST_CloseDecoder in dst_init.c.o
      _AllocateArray in dst_init.c.o
      _AllocateArray in dst_init.c.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [sacd_extract] Error 1
make[1]: *** [CMakeFiles/sacd_extract.dir/all] Error 2
make: *** [all] Error 2

 

@mindset

I might be able to cope with "__mm_malloc", but what about the other two - any ideas?

Link to comment
6 minutes ago, mindset said:

I might incorporate this to my code.

 

That would be great ? - adding ARM & PPC support alone would justify jumping to v0.4.0 ?.

 

 

When I compiled sacd_extract for my Raspberry Pi couple of weeks ago, I was unaware of Azeria07's patch.

I simply "borrowed" a file called mm_malloc.h from some Android project and changed the references.

Link to comment
  • 2 weeks later...
On 9/14/2018 at 1:34 AM, Phthalocyanine said:

Is there a compiled version of this for osmc on raspberry pi 3?

I'd love to try it out.

 

Hi,  I have managed to compile this SACD ISO Kodi addon:

 

 

kodi-sacd-addon-details.jpgkodi-sacd-tracklist.jpg

 

 

MD5:		6D8AD6826D4F75AB22F350BC63C9E033
SHA-1:		945C3E27FC4C5E7FB9DD7C6467247E70E84DAE82
SHA256:		B94680284C12C143DDFA18640A25D995CB7F554FB48881BDDAC25F7C1D81BF28
SHA512:		F42C275FA84D16A15B125207057169A34F2334ECA602BA29C05207C735FFB108A19FE7957CE24A8E8815D109F6DF88E8163B19F901638C07A3D98954B221C9A0
xxHash64:	9CCB784823B43648


If you aim to use it on Ubuntu get the latest Kodi v18.0 Beta 3 Leia from the unstable repository, for other distros you'd have to compile the sources manually.

 

  • Windows addon will follow as soon as certain compilation issues have been addressed.
  • Raspberry Pi / LibreELEC addon might follow if popular demand is high and the technical hurdles low.

 

After installing the ZIP file via additional addons please restart Kodi, enter the music section and feed the location of your SACD ISO.

 

It DOES NOT support the playback of SACD-Rs directly as foobar2000 (via plugin) does.

 

Creating the ISO is fairly easy on Linux: 

sudo dd if=/dev/dvd of=~/sacd.iso

 

Last but not least: 

USE IT AT YOUR OWN RISK!

Link to comment
  • 2 weeks later...

Good evening,

 

some of you already know that ARM support has been added to @mindset's sacd_extract.

Here are the binaries compiled on a Raspberry Pi 3 Model B+, but they should work also on the Pi 1s, 2s and the Zeros:

 

Linux armhf (32bit) package: 

sacd_extract-LINUX-armhf-RPi-v0.3.9@setmind_git_2018-10-08.zip

[works on Raspbian & should be useable on any other distro too]

MD5:		F9C26BBFD0C80C32AD50B6626B903BD9
SHA256:		A3AE75996AC6ACC58F7F51BAD931097A87848C4AB6F8F7B381615BEAC8F4A05E

 

 

Whats the best rip without the appropriate player? I have compiled the latest beta of DeaDBeeF which can handle all sorts of DSD types (incl. DST and Wavpack-DSD): 

deadbeef_1.8.0-beta2-RPi-2018-10-19_armhf.deb

[runs on Rapsbian Stretch and might be useable on UbuntuMATE as well]

 

MD5:		A40554D8BBAE4DBE62C232EB3E55F069
SHA256:		C8AD542F6EB5693616ECA8CFE1FB9E936BA9E685EBDD1FCF75881D14FB005608

You should pick "PulseAudio" as audio renderer, as it offers better playback quality (but slower track seeking).

 

 

SACD_Ripping_on_Raspberry-Pi.thumb.jpg.4ff1b11f33ddbc2408c5563988543942.jpg

 

 

Who would have thought 15 years ago, that ripping SACDs and playing DSD streams via a ~30$ device was anything but fiction?

 

 

 

Link to comment
  • 2 weeks later...

Hello MikeyFresh,

 

well since I compiled the GUI on each and every platform, I used a JDK on Raspbian as well.

 

You are correct Raspbian is a bit "stupid" when it comes to .jar files and tries to decompress them.

 

Just start a terminal session and check your JRE with:

 

java -version

 

Afterwards switch  into your sacdextract folder and execute:

 

java -jar SACDExtractGUI.jar

 

Just in case you want to try out the DeaDBeeF audio player as well, make sure to change the audio renderer to "PulseAudio".

 

Good luck!

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...