تحويل الدفعات والتسجيل


وضع الدفعات

يدعم DpdoEngine معالجة عدة ملفات دفعة واحدة عبر سكربتات الصدفة. لا يوجد علم --batch مخصص — حلقة صدَفة تؤدي المهمة بسهولة.

تحويل دفعات بالصدفة

مثال Bash — دفعة FLAC → DSF:

#!/bin/bash
	for f in *.flac; do
	  DpdoEngine -i "$f" "${f%.flac}.dsf" --oversampling 128 --order 7
	done
	

معالجة متكررة للمجلدات الفرعية:

#!/bin/bash
	find /music/pcm -name "*.flac" | while read f; do
	  outdir="/music/dsd${f#/music/pcm}"
	  mkdir -p "$(dirname "$outdir")"
	  DpdoEngine -i "$f" "${outdir%.flac}.dsf" --oversampling 128 --order 7
	done
	

تحويل متوازٍ متعدد الأنوية

استخدم xargs أو GNU parallel لاستغلال المعالجات متعددة الأنوية بالكامل:

# xargs — 4 مهام متوازية لكل دفعة
	find . -name "*.flac" -print0 | xargs -0 -n1 -P4 -I{} sh -c \
	  'f="{}"; DpdoEngine -i "$f" "${f%.flac}.dsf" --oversampling 128 --order 7 -opencl'
	
	# GNU parallel (موصى به)
	find . -name "*.flac" | parallel DpdoEngine -i {} {.}.dsf --oversampling 128 --order 7
	

تلميح: مع --opencl يكون تسريع GPU فعالاً بشكل خاص في سيناريوهات تعدد المهام.


وضع الأنبوب

يفعّل --pipe الأنابيب من stdin إلى stdout بحيث يمكن دمج DpdoEngine مع أدوات سطر أوامر أخرى لبناء خطوط معالجة مرنة.

الاستخدام الأساسي

# قراءة PCM من stdin والكتابة إلى stdout
	cat input.wav | DpdoEngine -i pipe output.dsf --oversampling 64 --pipe
	
	# التسلسل مع ffmpeg
	ffmpeg -i source.flac -f wav - | DpdoEngine -i pipe output.dsf --oversampling 128 --pipe
	

أمثلة على الخطوط

سلسلة متعددة المراحل:

# مصدر PCM → تطبيع الجهارة → تشكيل الضجيج → خرج DSD
	ffmpeg -i track.flac -f wav - | \
	  DpdoEngine -i pipe track.dsf --oversampling 128 --order 7 --lufs -16 --pipe
	

مراقبة لحظية مع DpdoPlayer:

# التحويل والمراقبة عبر DpdoPlayer في الوقت نفسه
	DpdoEngine -i input.flac output.dsf --oversampling 64 --pipe | DpdoPlayer - -vol 80
	

وضع التسجيل

يستطيع DpdoEngine التسجيل مباشرة من واجهات صوتية متوافقة. الهدف تسجيل بلا فقد مباشرة إلى DSD.

التسجيل الأساسي

# بدء التسجيل إلى ملف DSF
	DpdoEngine --record recording.dsf
	

خيارات التسجيل

المعاملالوصفمثال
--recordتفعيل وضع التسجيل (أحادي افتراضياً، اضغط q للإيقاف)--record
--record-device NAMEاسم جهاز التسجيل (الافتراضي: افتراضي النظام)--record-device "USB Mic"
--record-samplerate HZمعدل عينات الالتقاط (0=تلقائي)--record-samplerate 44100
--record-channels Nقنوات الالتقاط (0=تلقائي)--record-channels 2
--record-duration SECإيقاف تلقائي بعد SEC ثانية (0=يدوي)--record-duration 300
--record-buffer Nالإطارات لكل مخزن مؤقت (64–65536، الافتراضي 512)--record-buffer 512
--record-headroom DBهامش dB (الافتراضي 3.0)--record-headroom 3
--list-devicesسرد أجهزة الصوت المتاحة--list-devices

تتحدد صيغة الإخراج من امتداد ملف الإخراج (.dsf / .dff).

تسجيل DSD أصلي

بالنسبة للواجهات الصوتية ذات خرج DSD الأصلي، يسجل DpdoEngine تيار DSD مباشرة (DoP أو ALSA raw DSD):

# وضع DoP (PortAudio، توافق واسع)
	DpdoEngine --record-dsd --dsd-mode dop live.dsf
	
	# الوضع الأصلي (ALSA raw DSD_U32_BE، يتطلب دعم الجهاز)
	DpdoEngine --record-dsd --dsd-mode native live.dsf
	

لا يمر تيار DSD المسجَّل أبداً بصيغة PCM وسيطة — يذهب تيار PDM من محول ADC مباشرة إلى ملف DSF، ما يبقي سلسلة التسجيل نظيفة إلى أقصى حد.

التسجيل + المراقبة اللحظية

سجّل وراقب عبر DpdoPlayer في آن واحد، بلا زمن انتقال:

DpdoEngine --record recording.dsf --pipe | DpdoPlayer - -vol 70
	

الإحصاءات والتسجيل

الإحصاءات

DpdoEngine -i input.wav output.dsf --oversampling 128 --stats
	

تشمل الإحصاءات المبلَّغة: - معدلات عينات الإدخال/الإخراج - زمن المعالجة والاستخدام - مستويات القمة وRMS - أرضية الضجيج - المدى الديناميكي

التسجيل المطوَّل

بشكل افتراضي يطبع DpdoEngine التقدم في الطرفية. لحفظ سجل:

DpdoEngine -i input.wav output.dsf --oversampling 128 2>&1 | tee conversion.log
	

مرجع سكربتات الأتمتة

تحويل ألبوم كامل (مع البيانات الوصفية)

#!/bin/bash
	# تحويل ألبوم كامل دفعة واحدة مع إضافة البيانات الوصفية لكل مقطع
	ALBUM="Symphony No. 9"
	ARTIST="Beethoven"
	YEAR=2024
	
	for f in *.flac; do
	  TITLE="${f%.flac}"
	  DpdoEngine -i "$f" "${f%.flac}.dsf" \
	    --oversampling 128 --order 7 \
	    --artist "$ARTIST" \
	    --album "$ALBUM" \
	    --title "$TITLE" \
	    --year "$YEAR"
	done
	

مراقبة مجلد + تحويل تلقائي

# راقب مجلداً بـ inotifywait وحوّل الملفات الجديدة تلقائياً
	inotifywait -m /watch/folder -e close_write --format '%f' | while read f; do
	  if [[ "$f" == *.flac || "$f" == *.wav ]]; then
	    DpdoEngine -i "/watch/folder/$f" "/output/${f%.*}.dsf" --oversampling 64 --order 7
	  fi
	done
	

تأليف ألبوم دفعة واحدة مع DpdoPackSACD

#!/bin/bash
	# تحويل دفعة → تأليف SACD ISO
	for f in *.flac; do
	  DpdoEngine -i "$f" "${f%.flac}.dsf" --oversampling 128 --order 7 \
	    --artist "Artist" --album "Album" --title "${f%.flac}"
	done
	
	# تأليف SACD ISO
	DpdoPackSACD --album "Album" --artist "Artist" -cover cover.jpg *.dsf