AIMP v3.60

Что нового наc ожидает с выходом обновления v3.60?

Новый API для плагинов

Пожалуй, это самое важное нововведение из всех остальных. В первую очередь хочу отметить, что новое API довольно серьезно было переработано. Чтобы перейти на него, придется править код плагинов, простой перекомпиляцией не обойтись, но оно того стоит, поверьте.

1. ООП

По всему API теперь применяется объектно ориентированный подход. Переход к ОО модели позволил существенно упростить и обезопасить работу с данными, а так же увеличить производительность программы за счет того, что интерфейсы-обертки работают напрямую с оперируемыми плеером объектами (без дополнительной конвертации данных, которая присутствовала в предыдущем API)

2. ARC

ARC — автоматический подсчет количества ссылок. Смысл подхода заключается в том, что объект автоматически убивается, как только количество ссылок на него становится равным нулю. Таким образом, в новом API все объекты будут убиваться автоматически — вам больше не нужно об этом заботиться.

3. Расширяемость

У плагинов появилась возможность расширять существующие возможности API. Таким образом, теперь можно писать плагины для плагинов, используя только движок плеера.

4. Справка

Наконец-то API обзавелся нормальной документацией (пока только на русском), на английский язык документация будет переведена ближе к релизу.

5. Рабочая папка плагина

Изначально я планировал сделать это только к v4, но по просьбе разработчиков решил сделать сейчас. Теперь каждый плагин имеет свою рабочую папку, в которой должны располагаться все необходимые для его работы файлы.
Во-первых, в папке с плагинами больше не будет бардака. Во-вторых, теперь удаление плагина из UI программы, удаляет его полностью, а не только основной файл.

6. Локализации

Локализации плагинов теперь автоматически интегрируются в пространство имен общей локализации плеера. Об этом нововведении более подробно описано в справке к API

7. Многопоточность

Проведен аудит по поддержке многопоточности в тех или иных объектах. Теперь, если объект не поддерживает многопоточный доступ и к нему идет обращение из другого потока — API выдаст ошибку (раньше этого не было). Такое поведение позволит повысить стабильность и избежать случайных ошибок, вызванных рассинхронизацией.

8. Новые возможности

 

Совместимость с прошлыми версиями

1. Плагины

В связи с введением рабочей папки для плагинов, сторонние плагины после обновления придется устанавливать заново. Стоит отметить, что старый API все так же поддерживается, таким образом плагины от старых версий без проблем заведутся на новой.

2. Папка Modules

Папка Modules была полностью расформирована, в место нее появились папки .\System, .\System\Data, .\System\Encoders

3. Ядро

Файл ядра (AIMP3.DLL) был разделен на две части — библиотеку с плееро-независимым кодом (AIMP.Runtime.DLL) и библиотеку с общим кодом для всех утилит программы (AIMP.Shared.DLL)

4. Мини-плеер aka TrayControl

Небольшое изменение в терминологии: отныне TrayControl будет называться мини-плеером.

 

Новые возможности

1. Поддержка технологий DEP и ASLR

2. Обложки альбомов

Как я уже упоминал в топике о  планах на этот год, поиск обложек альбомов был полностью переосмыслен. Теперь поиск ведется в отдельном потоке, а результат кэшируется в виде оптимальных для отображения миниатюр в локальной БД. Такой подход позволил уменьшить время переключения между треками, для которых имеются обложки альбомов (особенно большие), а так же уменьшить количество обращений к диску.

Добавились настройки поиска обложек, а так же возможность поиска обложек в интернете. Стоит отметить, что последняя функция реализуется с помощью сторонних плагинов, в базовой поставке за это отвечает плагин для сервиса Last.fm.

Настройки поиска обложек альбома

CoverArt Downloader в привычном нам понимании был убран, вместо него вы можете автоматически скачать обложку с интернета, перейти в тот или иной поисковик по автоматически сгенерированной ссылке. Кстати, стоит сказать, что поле редактирования обложки альбома в быстром и расширенном редакторах тегов теперь принимает ссылки на удаленные ресурсы с помощью drag-n-drop.

3. Менеджер звуковых эффектов

В менеджере звуковых эффектов добавилась отдельная вкладка с более детальной настройкой параметров нормализации громкости. В частности, была добавлена возможность указать значение по умолчанию для ReplayGain, а так же величину поправки.

Настройки нормализации громкости

 

4. Плагин для сервиса Last.fm

  • Новый плагин работает с сервисом напрямую — без посредника в виде родного клиента.
  • Добавлена возможность использования поля AlbumArtist вместо Artist-а.
  • Добавлена возможность добавить трек в «любимые» и убрать из этого списка.
  • Добавлена возможность отображения информации о проигрываемом треке в виде дополнительного окна:

Last.fm -  Информация о файле

5. Информационная лента

  • Добавлена возможность указать, на каком экране отображать ленту
  • Добавлена возможность показывать ленту всегда

6. Плейлист

  • Добавление файлов в плейлист теперь выполняет в отдельном потоке, с возможностью отмены.
  • Уменьшено количество обращений к файлам при загрузке плейлиста / добавлении файлов в плейлист. Скорость добавления в плейлист выросла на 30%
  • Воспроизведение «вразнобой»: очередь воспроизведения теперь сохраняется для каждого плейлиста (а не только для проигрываемого)
  • Воспроизведение «вразнобой»: улучшен алгоритм — старается равномерно проигрывать файлы из разных групп, не допускать последовательного проигрывания двух подряд идущих файлов.

 

Хочу заметить, что здесь перечислены лишь основные изменения — полный список изменений будет представлен на нашем сайте после старта публичного бета тестирования.

Публичное бета тестирование запланировано на день рождения проекта, 8 августа 2014 года.

AIMP v3.60: 94 комментария

  1. Долматов Алексей (Алекс)

    Не совсем ясен пункт «Рабочая папка плагина», где будут храниться настройки плагина?
    На основе API в личной папке плагина в папке пользователя\ином месте?
    Если API указывает расположение рядом с файлов DLL, то плагин будет храниться в своей папке с настройками в папке пользователя или в программных файлах?
    Что произойдёт, если плагин и прилагающиеся файлы будут добавлены без своей папки, автоперенос части файлов?
    С нестабильными плагинами как, будет перекидываться в unstable вся папка и настройки?

    1. Artem Автор записи

      Не совсем ясен пункт «Рабочая папка плагина», где будут храниться настройки плагина?

      Настройки, как и раньше, должны храниться либо в общем файле настроек, либо в отдельном, но в файле профиля. В рабочей папке хранить настройки нельзя.

      Что произойдёт, если плагин и прилагающиеся файлы будут добавлены без своей папки, автоперенос части файлов?

      Плеер не увидит плагин.

      С нестабильными плагинами как, будет перекидываться в unstable вся папка и настройки?

      Основной файл будет переименован, папка останется на месте

  2. EVIL555

    А мож сделать так чтоб после перемешенные песни в другую папку, она все ровно играла просто после переустановки винды меняется на жд диске буква и приходится все править весь плейлист
    в виндовом медия плеера так работает что вам стоит сделать это?

    1. Rainman

      Это не проблема плеера на самом деле, Артём верно написал, что событие переустановки оно крайне редкое, к тому же буква диска легко меняется в диспетчере дисков системы, а если уж действительно надо поправить пути в плейлисте — просто откройте его блокнотом и сделайте авто замену, плейлист это обычный текстовый файл, так же можно сохранить плейлист в папке с музыкой…

      О, кстати, а вот реальная задача для плеера — сохранение списков файлов с относительными путями 🙂 если такое поддерживается стандартом хорошо было бы галочку при сохранении (экспорте из плеера т.е.) плейлиста реализовать.

  3. born-80

    Лучше бы поддержку VST Плагинов добавили, плюс неплохо было бы если папку плагинов можно было выбрать, это для того, что в корневой т.е. в главной папке бывают и VSTi инструменты, не только эффекты и они не работают, бывает программа пусть и поддерживает VST но с некоторыми конфликтует или сам плагин не работает и для этого лучше было бы возможность выбрать папку, при этом можно будет создать отдельную папку и копировать туда нужные плагины!

    1. Artem Автор записи

      VST среди наших пользователей не очень пользуется популярностью, поэтому эта задача не стоит в первых рядах. А гибкий и мощный API давно был нужен.

      Кстати, VST можно использовать через VST-Host плагин для Winamp.

  4. Rainman

    Новое API восхитительно, возможности, честно говоря, просто удивительные. Особо порадовали плагины к плагинам, теперь наращивать функционал станет гораздо легче, а у толстых плагинов появится возможность стать модульными не создавая своих собственных API.

  5. Rainman

    Наверно немного не по теме, но всё же, а когда стоит ждать скроблинга на ласт.фм в плеере для android? По идее можно вообще довольно простым способом (имею ввиду со стороны плеера на устройстве) реализовать его — на устройстве сохранять лог где нибудь на mnt/sdcard, а компьютерной версией этот лог импортировать.

    1. Rainman

      Да и не только для скроблинга это будет полезно — рейтинг композиций в базе плеера будет учитываться, в общем предлагаю подумать над этой идеей.

    2. Artem Автор записи

      Работа с сетью в мобильной версии будет после релиза 1.0. Генерировать лог для старшего брата не имеет смысл, мобильный плеер должен быть самодостаточным, тем более мобильный телефон сам в состоянии без проблем подключиться к Интернет

  6. Куля

    Кстати радует переход на ARC. Возможно ресурсов плагины меньше будут кушать. Если я правильно понял — это же на подобии сборщика мусора в C#? Жаль только этих самых плагинов не видно уж давным давно(новых) :(. Вероятно Сизифов труд.

    1. Artem Автор записи

      ARC — это противоположная концепция, да объекты так же грохаются автоматически, но у вас в приложении нет отдельного потока, который в какой-то момент времени запускается и копается в куче, анализируя связи с объектами. При должном построении архитектуры плагины, программист может на 100% сказать, когда какой объект убьется и освободит память, при GC такого нет.

      На счет новых плагинов:
      1. Если раньше все стандартные «модули» имели свой собственный API, и работали с ядром программы напрямую (т.к. Plugins API просто не имел должного функционала), то теперь все они используют общий для всех API.
      2. Раньше документации не было вообще. Я думаю, что сейчас порог вхождения будет пониже.
      3. Новый API максимально расширяем, на его базе я планирую очень многое построить для AIMP4. Даже, если он не пригодится людям сейчас — пригодится позже.

  7. docck

    Спасибо за возможность теститрования нового релиза. Попробовал дома и на работе.
    Относительно скробблинга. Первое, что бросилось в глаза: нет возможности добавить нескольких пользователей. То есть, чтобы была кнопка «войти под другим именем» и при наличии нескольких пользователей можно было бы переключаться радиобаттоном каким. Для меня это критично: дома на одном компьютер аж три аккаунта ластфм, в нативном клиенте переключение осуществлялось без проблем.
    Продолжил испытания на работе и был неприятно удивлен тем, что оффлайн скробблинга либо нет, либо он работает нестабильно. Пришлось откатиться пока на 3.55 в связи с этими проблемами.
    Надеюсь, что эти мелочи будут исправлены к следующему билду, и я с радостью продолжу тестировать этот замечательный плеер

    1. Artem Автор записи

      У вас дома несколько человек сидит за одним компьютером? Если так — более правильно было бы создать каждому по учетной записи, тогда необходимость переключения профилей не возникла вообще.

      Пожалуйста, обо всех возникающих проблемах в деталях сообщайте, иначе ошибки так и останутся не исправленными

  8. AlexzundeR

    Отличная интеграция с Last.Fm! А нет в планах полученную обложку опционально сохранять в проигрываемом файле? Для того, чтобы например при переносе музыки на мобилу, там аимп тоже показал обложку?
    И возможно ли поправить теги проигрываемого трека на ластфмовские?

  9. ABTOP

    Артём, приветствую!

    А можешь сделать в плейлисте возможность выбрать цвет для текста проигрываемой композиции + добавить возможность назначить фон с возможностью выбора из палитры цветов, в том числе и прозрачный?

  10. des

    Доброго времени. Добавил в папку «Плагины» aimp_vkontakte. Создал папку для него и запустил программу. Строчка в меню добавилась, он открыл окно, ввел имя пользователя и нажал на запуск. Он считал все песни с моей странички и в конце издал звук. Композиции не появились в плейлисте. А после закрытия плеера выдал окно с ошибкой: Memory leak detected

    1. Artem Автор записи

      Приветствую.
      aimp_vkontakte уже давным давно не работает адекватно, связано это с тем, что поменялось API в VK. Для AIMP есть новый плагин — http://www.aimp.ru/forum/index.php?topic=42711.0 . Хочу еще отметить, что подобные вопросы лучше задавать непосредственно авторам плагинов.

  11. Serj C.

    Артём, приветствую!

    А зачем не добавляете в <> скины вроде Euphoria, Silveria -> скины где значки «Play», «Stop», и т.д.. изображены прямо на кнопки и звук можно нормализировать при Drag & Drop, а не с помошию Mouse Click? Так четко и удобно.

    Про встроенный Last.fm Scrobbler, зачем не показать информацию про артиста — так как на самом деле показывает отдельный Last.fm Scrobbler плагин, потому-что про всех артистов есть доступная информация, a про треки — не про всех есть информация.

      1. Serj C.

        Встроенный Last.fm Scrobbler показывает информацию про треки, зачем не отображать информацию про артиста — так как на самом деле отображает отдельный Last.fm Scrobbler плагин, потому-что про всех артистов есть доступная информация, a про треки — не про всех есть информация на Last.fm.

      1. ABTOP

        У меня довольно большой плейлист. И иногда возникает желание послушать несколько композиций из конца списка не один раз. Но не всегда успеваешь уследить, что воспроизведение последнего трека подходит к концу . Как результат приходится прокручивать список вниз.

  12. ABTOP

    B подскажи пожалуйста, как можно ли и как это сделать — вынести команды контекстного меню проводника из подменю в основное меню, меня интересуют три команды — Воспроизвести, Добавить в плейлист и Добавить в очередь.

  13. Infinity

    Здравствуйте!

    В последней бете появился баг, как показано на скриншоте — время композиции везде различное, а раньше правильно писалось. Это как на CUE листах, так и на обычных треках. Раньше такого не было.
    Скриншот: http://savepic.net/6193699.png

    Также спасибо, что исправили баг с будильником в своё время. Штука очень нужная!! Используется как основной будильник. И тут есть идея по усовершенствованию его использования. А именно — каждый день приходится его выставлять вручную, иначе он не будет работать. Можно ли сделать так, чтобы был режим повтора будильника. Ну например, ежедневно. Или по определённым дням, если усложнить. (вообще бы в идеале сделать планировщик с календарём, наподобие как в uTorrente, чтоб можно было тонко настраивать, или как в телефонах бывает). Но для начала всё просто — просто сделать повтор ежедневно (галочку например). Ну а так спасибо!!!

    Хороше

  14. qqqaaawww002

    Ребят, а эта функция «Обложки альбомов» не будет менять(дополнять) файлы?
    Просто ненравится когда сторонние программы меняют оригинал файлов, пусть то музыка или фото

      1. qqqaaawww002

        ок. Просто вот у меня пока что стоит версия 3.55 (в 3,6 незнаю как устроено).
        Вообщем в ней если нажать «информация о треке» под обложкой альбома ключена галочка «вложить в файл». Это собственно и немного напрягало))

          1. qqqaaawww002

            тю, так вроде вы говориле выше, что «нет». Ну или я насколько понял, в файле не меняется информация касающаяся музыки, а просто к файлу добавляется картинка?
            Если это так, то сдесь есть и плюсы и минусы. Вот например недавно в папке на раб. столе лежало несколько мп3 файлов с музыкой, я туда временно кинул одну «левую» фотку. В плеере потом показывалась эта фотография как обложка. Тоесть если я перенесу мп3 файлу допустим на флешку, они подхватят с собой эту обложку?

  15. VikWinchester

    После обновления 3.60 исчез режим миниплеера (в виде полоски). Плеер теперь просто сворачивается в трей. Это же совсем неудобно. Как вернуть прежний режим?

  16. 6y4

    Здравствуйте я использую IZOTOPE OZONE FOR WINAMP 1.0
    его приходится записывать руками, там фал dsp_iZOzone.dll раньше в 3.55 я его клал в папку Plugins и он отображался в меню, в новой версии так не получается, как записать этот dsp плагин? какая папка отвечает за плагины dsp?

Добавить комментарий