С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
https://dl.dropboxusercontent.com/u/.../autotitus.zip
Работает так:
1. в папку с программой кидаем mp3
на выходе получается папка с именем mp3, в которой еще 3 папки
канал А, канал B и их сумма.
TAP переведенные с ошибкой помечаются ERROR.
Почему mp3? Потому что когда оцифровываешь 50 кассет wav файлы занимают уж очень дофига места. А mp3 на качестве никак не сказывается.
Я использовал 320kbp/48khz/16bit/Stereo
wav программа вроде бы тоже кушает.
Вот исходник на PureBasic:
PHP код:#low_priority = 1
Procedure SetLowPriority(z)
If #low_priority
Pid = ProgramID(z)
proc = OpenProcess_(#PROCESS_ALL_ACCESS,0,Pid)
SetPriorityClass_(proc, 16384)
CloseHandle_(proc)
EndIf
EndProcedure
Procedure.l MarkTapes(Directory$, name$, Channel$ )
ReadFile(0, Directory$+name$+"\"+Channel$+"\Log.txt")
While Eof(0) = 0
t$ = ReadString(0)
pos = FindString(t$, "Filename: ", 1)
If pos
tap_name$ = Trim(StringField( t$, 2, ":" ))
error = 0
ElseIf error = 0 And FindString(t$, "Checksum: Error", 1) And tap_name$
new_tap_name$ = Left(tap_name$, Len(tap_name$)-4)+" [ERROR].tap"
RenameFile( Directory$+name$+"\"+Channel$+"\"+tap_name$, Directory$+name$+"\"+Channel$+"\"+new_tap_name$ )
error = 1
on_error = 1
EndIf
Wend
CloseFile(0)
EndProcedure
Procedure.l mp3TOwav(mp3$, wav$, Channel$)
CreateDirectory( wav$ )
CreateDirectory( wav$+"\"+Channel$ )
PrintN(" mp3 -> wav [channel "+Channel$+"]")
If Channel$ = "mixdown"
z = RunProgram( GetPathPart(mp3$) + "ffmpeg.exe", " -i " +Chr(34)+ mp3$ + Chr(34)+" -y -ac 1 -ar 48000 -acodec pcm_s16le "+Chr(34) + wav$+"\mixdown\Untitled.wav"+ Chr(34), "", #PB_Program_Open|#PB_Program_Hide )
Else
z = RunProgram( GetPathPart(mp3$) + "ffmpeg.exe", " -i " +Chr(34)+ mp3$ + Chr(34)+" -map_channel 0.0."+Channel$+":0.0 -y -ar 48000 -acodec pcm_s16le "+Chr(34) + wav$+"\"+Channel$+ "\Untitled.wav"+ Chr(34), "", #PB_Program_Open|#PB_Program_Hide )
EndIf
SetLowPriority(z)
ProcedureReturn z
EndProcedure
Procedure.l wavTOtap(Directory$, dest$, Channel$)
CopyFile( Directory$+"Tape_Recover.exe", dest$ + "\"+Channel$+"\Tape_Recover.exe" )
PrintN(" wav -> tap [channel "+Channel$+"]")
SetCurrentDirectory( dest$ + "\"+Channel$ )
z = RunProgram( "Tape_Recover.exe" ,"","",#PB_Program_Open | #PB_Program_Hide)
SetLowPriority(z)
ProcedureReturn z
EndProcedure
Procedure ClearAss(Directory$, name$, Channel$)
DeleteFile( Directory$ + name$ + "\"+Channel$+"\Tape_Recover.exe" )
DeleteFile( Directory$ + name$ + "\"+Channel$+"\Untitled.wav" )
EndProcedure
Procedure Process(ch0, ch1, ch2)
Repeat
Delay(100)
ConsoleTitle( LSet("", nm, "|") )
nm = (nm +1) & 7
Until ProgramRunning( ch0 ) = 0 And ProgramRunning( ch1 ) = 0 And ProgramRunning( ch2 ) = 0
EndProcedure
OpenConsole()
ConsoleTitle("Auto Titus v0.8")
Directory$ = GetCurrentDirectory()
Repeat
exit = 1
If ExamineDirectory(0, Directory$, "*.*")
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
exit = 0
name$ = GetFilePart( DirectoryEntryName(0) )
clear_name$ = Left(name$, Len(name$)-4)
ext$ = GetExtensionPart(name$)
If ext$ = "mp3" Or ext$ = "wav"
PrintN( name$ )
PrintN("")
ch0 = mp3TOwav( Directory$+name$, Directory$+clear_name$, "0" )
ch1 = mp3TOwav( Directory$+name$, Directory$+clear_name$, "1" )
ch2 = mp3TOwav( Directory$+name$, Directory$+clear_name$, "mixdown" )
Process(ch0, ch1, ch2)
ch0 = wavTOtap( Directory$, Directory$+clear_name$, "0" )
ch1 = wavTOtap( Directory$, Directory$+clear_name$, "1" )
ch2 = wavTOtap( Directory$, Directory$+clear_name$, "mixdown" )
Process(ch0, ch1, ch2)
Delay(2000); flush Titus buffers
MarkTapes(Directory$, clear_name$, "0" )
MarkTapes(Directory$, clear_name$, "1" )
MarkTapes(Directory$, clear_name$, "mixdown" )
Delay(1000); some shit
ClearAss( Directory$, clear_name$, "0" )
ClearAss( Directory$, clear_name$, "1" )
ClearAss( Directory$, clear_name$, "mixdown" )
PrintN(" ")
RenameFile( Directory$ +"\"+ DirectoryEntryName(0), Directory$ +"\"+ GetPathPart(DirectoryEntryName(0))+clear_name$+"\"+name$ )
EndIf
EndIf
Wend
FinishDirectory(0)
Delay(3000)
EndIf
Until exit
![]()
Последний раз редактировалось newart; 09.04.2015 в 18:07.
Пробовал поработать с AutoTitus. Не повезло
Здесь одна сторона кассеты с которой я работал. Формат мп3, размер 70 мб:
https://www.sendspace.com/file/cb7nkj
Сделал AutoTitus09.exe test.mp3 Програма 5 минут работала, что-то писала в консоле но ничего не сделала.
Что я плохо делал?
Ralf, попробуй эту - http://zx-pk.ru/showthread.php?t=25002
И не заливай файлы на sendspace.com. Там ссылки умирают очень быстро. Если уж класть, то http://www.sderni.ru/ (месяц, плюс месяц после последнего скачивания), или http://rghost.ru/ (по умолчанию стоит 5 дней, но там можно продлить теперь до 90 дней, плюс месяц после последнего скачивания). Регистрация нигде не нужна.
---------- Post added at 23:35 ---------- Previous post was at 23:28 ----------
А 70Mb, тогда туда. На те файлообменники не больше 50Mb можно залить.
Может, мы обидели кого-то зря,
Сбросив пару лишних мегатонн,
И горит зелёным пламенем земля,
Там, где был когда-то Пентагон!..
Profi-576 v3.2/AY-3-8912A GI/FDD-5.25'
AutoTitus уже не актуальна. Пользуйтесь Tape Recover 2.0.
Ссылка выше, Андрей.![]()
Может, мы обидели кого-то зря,
Сбросив пару лишних мегатонн,
И горит зелёным пламенем земля,
Там, где был когда-то Пентагон!..
Profi-576 v3.2/AY-3-8912A GI/FDD-5.25'
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)