Форум » Прочие темы » Traders Tool: mp3Scaner » Ответить

Traders Tool: mp3Scaner

Wild User: Программа для сканирования альбомов в формате MP3 и OGG на предмет незаполненных тэгов, массового создания / удаления плейлистов, редактирования тэгов и переименования треков и папок альбомов. Имеется экспорт просканированного в файлы форматов XLS/CSV/HTML. Также можно использовать как простейший музыкальный менеджер. Скриншот - click here Программа - click here Или скачать у Urkraft -a click here Просьба высказывать мнения, пожелания, советы и сообщения о багах тут, по e-mail или ICQ 246825708.

Ответов - 153, стр: 1 2 3 4 5 6 7 8 All

mel0man: Если ты про УИД, то сначала скажи, какой путь у тебя был к стартовой папке? в том виде была именно папка с альбомом, а не к группе. с уидом ясно. но там также видно что пусты и остальныее менее важные колонки. Расположение колонок на следующий запуск у меня тоже не запоминает. И ещё, не пробовал проверить такие альбомы с помощью Flac Tester из утановочного пакета FLAC? Или Audiotester-ом AudioTester 3 files scanned in 3.95 seconds --- 0 files failed --- 3 files passed H:\1\2\Arcade Fire - 2005 - Arcade Fire\02 - I'm Sleeping In A Submarine.flac H:\1\2\Arcade Fire - 2007 - Neon Bible\03 - Neon Bible.flac H:\1\2\Elliott Smith - 2004 - From A Basement On The Hill\08 - Ostriches & Chirping.flac FLACTester [1/3] H:\1\2\Arcade Fire - 2005 - Arcade Fire\02 - I'm Sleeping In A Submarine.flac...OK [2/3] H:\1\2\Arcade Fire - 2007 - Neon Bible\03 - Neon Bible.flac...OK [3/3] H:\1\2\Elliott Smith - 2004 - From A Basement On The Hill\08 - Ostriches & Chirping.flac...OK 3 files, 0 errors и эти же треки в сканере: Arcade Fire Arcade Fire 2005 16,91 0:00:00 Arcade Fire Neon Bible 2007 12,56 0:00:00 Elliott Smith From A Basement On The Hill 2004 2,89 0:00:00 трек 3мб

Wild User: Залил v1.5a билд 17.12.07 * - (хотелось бы надеяться) - проблема с индексами. Сейчас, проверил, всё прячется-показывается как надо. * - Открытие куй-файла в плеере. + - Запоминание ширины колонок, положение панелей и размеров окон, последнего пути для сканирования и сохранения. + - Хоткеи (список в текстовике приложен). Будут ещё... @ - Чуть доработал "вычленятор" - при автоподборе шаблона сначала "примеряется" последний удачно найденный шаблон и только потом подбирается. Должно повысить скорость "вычленирования" при большом количестве шаблонов... @ - кнопка расширения-сужения колонок теперь работает по-другому. Переключение "вместить колонки в видимую область" -> "расширить колонки по содержимому" -> "задать запомненные величины" работает по кругу. По "проблемным" FLAC-ам: Собака зарыта в ATL - библиотеке, что я использую. Так вот, читаются блоки метаданных, определяются их типы и, соответственно, что-то делается. По спецификации ФЛАС существуют такие блоки: * 0 : STREAMINFO * 1 : PADDING * 2 : APPLICATION * 3 : SEEKTABLE * 4 : VORBIS_COMMENT * 5 : CUESHEET * 6-127 : зарезервированы Далее, различные флаги (это я про ATL) характеризуют "валидность" файла. Одним из флагов является поле структуры FSamples, которое сбрасывается в 0, если индекс типа блока "не такой". Отсюда и полное неопределение параметров файла, как то - битрейт, время и.т.д... Я пока (временно) заблокировал сброс FSamples ноль, что позволяет нормально отбразить характеристики файла. Далее. У формата ФЛАК своего "родного" типа тэга нет. Основным считается Vorbis Comment, но можно записывать и ID3 v2x. Так вот в таких проблемных файлах индекс типа блока также не определяется, что делает невозможным считать содержимое тэга. Тут код подробнее: function TFLACfile.GetInfo( sFile: WideString; bSetTags: boolean ): boolean; var SourceFile: TTntFileStream; aMetaDataBlockHeader: array[1..4] of byte; iBlockLength, iMetaType, iIndex: integer; bPaddingFound: boolean; begin result := true; bPaddingFound := false; FResetData( true, false ); try { Read data from ID3 tags } FID3v2.ReadFromFile(sFile); // Set read-access and open file SourceFile := TTntFileStream.Create( sFile, fmOpenRead or fmShareDenyWrite); FFileLength := SourceFile.Size; FFileName := sFile; { Seek past the ID3v2 tag, if there is one } if FID3v2.Exists then begin SourceFile.Seek(FID3v2.Size, soFromBeginning) end; // Read header data FillChar( FHeader, SizeOf(FHeader), 0 ); SourceFile.Read( FHeader, SizeOf(FHeader) ); // Process data if loaded and header valid if FHeader.StreamMarker = 'fLaC' then begin with FHeader do begin FChannels := ( Info[13] shr 1 and $7 + 1 ); FSampleRate := ( Info[11] shl 12 or Info[12] shl 4 or Info[13] shr 4 ); FBitsPerSample := ( Info[13] and 1 shl 4 or Info[14] shr 4 + 1 ); FSamples := ( Info[15] shl 24 or Info[16] shl 16 or Info[17] shl 8 or Info[18] ); end; if (FHeader.MetaDataBlockHeader[1] and $80) <> 0 then exit; //no metadata blocks exist iIndex := 0; repeat // read more metadata blocks if available SourceFile.Read( aMetaDataBlockHeader, 4 ); iIndex := iIndex + 1; // metadatablock index iBlockLength := (aMetaDataBlockHeader[2] shl 16 or aMetaDataBlockHeader[3] shl 8 or aMetaDataBlockHeader[4]); //decode length if iBlockLength <= 0 then exit; // can it be 0 ? iMetaType := (aMetaDataBlockHeader[1] and $7F); // decode metablock type if iMetaType = META_VORBIS_COMMENT then begin // read vorbis block FVCOffset := SourceFile.Position; FTagSize := iBlockLength; FVorbisIndex := iIndex; ReadTag(SourceFile, bSetTags); // set up fields end else if (iMetaType = META_PADDING) and not bPaddingFound then begin // we have padding block FPadding := iBlockLength; // if we find more skip & put them in metablock array FPaddingLast := ((aMetaDataBlockHeader[1] and $80) <> 0); FPaddingIndex := iIndex; bPaddingFound := true; SourceFile.Seek(FPadding, soCurrent); // advance into file till next block or audio data start end else begin // all other if iMetaType <= 5 then begin // is it a valid metablock ? if (iMetaType = META_PADDING) then begin // set flag for fragmented padding blocks FPaddingFragments := true; end; AddMetaDataOther(aMetaDataBlockHeader, SourceFile, iBlocklength, iIndex); end else begin //FSamples := 0; //ops... !!!!!!!!!!!!!!!! Corrected by WU !!!!!!!!!!!!!!!!!!! //exit; end; end; until ((aMetaDataBlockHeader[1] and $80) <> 0); // until is last flag ( first bit = 1 ) end; finally if FIsValid then begin FAudioOffset := SourceFile.Position; // we need that to rebuild the file if nedeed FBitrate := Round( ( ( FFileLength - FAudioOffset ) / 1000 ) * 8 / FGetDuration ); //time to calculate average bitrate end else begin result := false; end; FreeAndNil(SourceFile); end; end; Почему так происходит - это отдельный вопрос. Возможно библиотека неправильно декодирует индекс типа блока - х.з... Или, действительно что-то с файлами не то... Других версий, в общем, пока нет...

Metalforeigner: Залил v1.5a билд 17.12.07 МАЛАДЕС!


mel0man: Почему так происходит - это отдельный вопрос. Возможно библиотека неправильно декодирует индекс типа блока - х.з... Или, действительно что-то с файлами не то... Других версий, в общем, пока нет... спасибо за пояснения! вопрос, если таковые флаки разжать и по новой сжать и проставить в фубаре теги, это же меняет положение вещей? - Открытие куй-файла в плеере. + - Запоминание ширины колонок, положение панелей и размеров окон, последнего пути для сканирования и сохранения. + - Хоткеи (список в текстовике приложен). Будут ещё... ураа)) вот теперь думаю интерфейс будет отвечать лично моим требованиям на все 100%!

Wild User: mel0man пишет: думаю интерфейс будет отвечать лично моим требованиям А я думаю, что глюки ещё всплывут какие-нибудь... В планах добавить добавление Аудио СД - типа сунул диск, определил на фриДБ или забил вручную и добавил в табличку...

mel0man: при экспорте был отлючен стоблец "битрейт" но включены "b value" and "b type" в ексель отправились все три, хотя первого по идеи там быть не должно. и еще матюкается перед запуском и также запуском окна экспорта, скорее всего в режиме "вместить колонки в видимую область" да и столбец "УРЛЫ" тоже попал в экспорт, хотя с него галку снимал.

Wild User: Я так и знал, что где-то просмотрел, задолбали уже эти индексы... Out of range - это как раз и есть обращение к несуществующему индексу. Придётся экспорт помучать ещё... Можно скинуть в личку описание, какие именно колонки были включены? Или скрин выложить..

mel0man: Или скрин выложить.. http://img412.imageshack.us/img412/2032/gui1kv3.png http://img412.imageshack.us/img412/8647/gui2cf5.png

Wild User: Подправил экспорт - в файл отправлялись не те колонки... А ошибка вылетала из-за сохранения / загрузки размеров. Чёртовы виртуальные индексы... Удалил нахрен сохранение размеров, ибо сейчас не постигну, где наколбасил. Будут ли вообще размеры сохраняться - неизвестно пока. Закинул исправление - оно хоть работает, перепробовал по всякому прятать-тусовать колонки, глюков не было, всё выводится вроде куда надо.

mel0man: Будут ли вообще размеры сохраняться - неизвестно пока. Закинул исправление - оно хоть работает, перепробовал по всякому прятать-тусовать колонки, глюков не было, всё выводится вроде куда надо. по мне так главное чтоб порядок колонок сохранялся, ато каждый раз передвигать 10-15 колонок в соотвествии с каталогом... а размер можно кнопкой справа одним шелчком выбрать, более или менее подходящий :)

Wild User: 2 mel0man Всё, пока ничего не буду туда лепить, пока не вылечатся все заморочки. Черкани, не вылазит ли какой фигни? Надеюсь, никого особо не задолбал своими выкрутасами

mel0man: 2 mel0man Всё, пока ничего не буду туда лепить, пока не вылечатся все заморочки. Черкани, не вылазит ли какой фигни? сейчас всё запоминает и ничего не матюгается, с экспортом всё отлично, ничего лишнего. Надеюсь, никого особо не задолбал своими выкрутасами всё отлишна, спасибо за особополезный софт!

stolzen: Туды-сюды колонки потасовал, вроде бы все отлично, фигни не вылазит

Wild User: Прилепил добавление Аудио СД. Экспериментально. Смысл примерно такой - пихнули диск, нажали поиск на ФриДБ, нажали добавить, next...

Gensek: 2 Wild User А где её сейчас качнуть? А то старая ссылка не работает.

Wild User: Gensek пишет: А где её сейчас качнуть? 5 страница, 7-й пост сверху. Фигово, что шапку не поправить никак... + сайт в профиле и подписи + в эбаутах программы

Wild User: Блин, косячок нарыл - при добавлении Аудио СД не очищается список треков для всплывающего коммента и треки туда могут добавиться несколько раз. Вечером будет исправлено.

Metalforeigner: Холмс, а хде оно:Прилепил добавление Аудио СД. Экспериментально. Смысл примерно такой - пихнули диск, нажали поиск на ФриДБ, нажали добавить, next... ?

Wild User: Metalforeigner пишет: Холмс, а хде оно: Ну же, Ватсон! Кнопарь с изобрАжением СиДи справа от кнопки сканирования... Вылезет окошко, вот оно и показано в скрине. Исправил предыдущий дефект. Оно хоть и проявлялось при добавлении одного и того же СД несколько раз (а вдруг?), но было не есть хорошо, а потому пофиксено. Ну, теперь, один шаг остался до автопроверки альбомов. Типа, просканировал, нажал кномпочку, и оно взяло и проверилось, поискалося и сравнилося с ФриДБ. Вот что и на что проверилось и куда это дело вывелось - это ещё надо мыслить... Теоретически, если альбом обнаружился в базе, то количество, расположение и длительность треков должны быть гуд. То, что не нашлось - выводить в файл, по которому смотреть потом и искать "ручками". Есть какие предложения? Иначе будет как я сам придумаю и потом про юзабилити никаких криков что бы не было

Metalforeigner: Кнопарь с изобрАжением СиДи справа от кнопки сканирования... Вылезет окошко, вот оно и показано в скрине. Падн ми, Холмс. Всё, пьянству - бой. Протупил я, не новую версию запускал. Таперь вижю. Холмс, а как насчёт растянуть чудо-окошко, нельзя ли сделать возможным, во весь экран, хотя б? А то список песенкаф не помещаеца.



полная версия страницы