Что такое mono
Перейти к содержимому

Что такое mono

  • автор:

Mono

Mono — проект по созданию полноценного воплощения системы .NET Framework на базе свободного программного обеспечения.

Mono включает в себя компилятор языка C# — dmcs, среду исполнения .NET — mono (с поддержкой JIT) и mint (без поддержки JIT), отладчик, а также ряд библиотек, включая реализацию WinForms, ADO.NET и ASP.NET, а также компиляторы smcs (для создания приложений для Moonlight) и vbc (для приложений, написанных на VB.NET).

В рамках проекта также разрабатываются привязки для графической библиотеки GTK+ на платформу .NET.

Mono содержит альтернативу структуре WPF-приложений (XAML + C# или любой другой язык, который поддерживается в данной среде исполнения). Данный язык называется Glade, при помощи него можно собирать GTK-приложения.

Программное обеспечение

Больше информации по теме

Отладка проекта
  1. Выполнить команду
docker pull akosinsky/monodevelop-ember:latest
docker run -dti --network host -e "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/projects/scripts" -e "DISPLAY=" -e "http_proxy=http://" -v с:/catalog:/childrencatalog developer/monodevelop-ember:latest /usr/bin/mate-terminal --disable-factory
monodevelop&
  • Открыть нужный проект и в свойствах указать:
  • В Visual Studio указать: MdbConverter.exe. с:/catalog:/childrencatalog Чтобы собрать MdbConverter необходимо:
    1. Выполнить git clone https://github.com/Flexberry/mono
    2. git checkout MdbConverter
    3. Открыть в Visual Studio проект mono\mcs\tools\pdb2mdb\MdbConverter.csproj
    4. Выполнить Build.
  • В итоге можно выполнять отладку:
  • Моно или стерео: какой формат лучше использовать при работе с музыкой

    Чем отличаются два формата звука и какой из них предпочтительнее для дорожек в DAW.

    Моно или стерео какой формат лучше при записи музыки

    ПОДЕЛИЛОСЬ
    SAMESOUND в Телеграме
    Подписывайтесь на SAMESOUND в Телеграме

    Моно и стерео — два столпа современного производства музыки. Несмотря на то, что стерео давно правит музыкальной индустрией, моно до сих пор играет важную роль в процессе создания музыки. Звукорежиссёр и продюсер Майкл Хан специально для блога LANDR рассказал об отличиях двух форматов с точки зрения производства музыки. SAMESOUND приводит адаптированный перевод материала.

    Когда вы создаёте новый трек в проекте, перед вами встаёт вопрос: в каком формате звука работать — в моно или стерео? Ответ на вопрос не так очевиден, как может показаться на первый взгляд. Давайте разберёмся, в чём отличия моно и стерео, как оба формата воспринимаются нашим слухом и какие сигналы лучше оставить в стерео, а какие — перевести в моно.

    Что такое моно

    Моно — одноканальный формат звука. Моносигнал достигает ушей одновременно и поступает строго по центру. Моно не несёт отдельной информации о содержимом правого и левого канала и не даёт представления о нахождении сигнала относительно слушателя.

    Моно был первым форматом для записи музыки. Большинство аудиосистем и проигрывателей начала-середины XX века оснащалось одним динамиком, поэтому вся музыка записывалась в одноканальном формате.

    Сигнал в моно

    Многие популярные композиции, записанные до 1960-х годов, существуют только в моноформате. В наши дни одноканальные записи встречаются крайне редко — миром правит стерео и многоканальный звук. Тем не менее моно до сих пор играет важную роль в производстве музыки.

    Что такое стерео

    Стерео — двухканальный формат звука. В отличие от моно, стереосигнал передаёт информацию по двум независимым каналам: данные в левом и правом канале могут различаться.

    Записанный в стерео сигнал полагается на бинауральный эффект, имитирующий восприятие звука двумя ушами. Сигнал левого канала предназначается для левого уха, правого — для правого. Отличия в уровне громкости, тайминге и тембре сигналов в двух каналах подсказывают мозгу, где находится тот или иной звук.

    Расположение звуков в стереополе называется пространственностью (спатиализацией), играющей важную роль в психоакустике. Умение правильно выбрать позицию и уровень громкости звуков — один из ключевых навыков для звукорежиссёра.

    Первые эксперименты с записью стереосигнала датируются 1930-ми годами, хотя сами принципы двухканального звука были заложены ещё в 1881 году. Из-за сложности и дороговизны систем записи многоканального звука стерео не получил должного распространения. Ситуация изменилась только в 1950-х годах, когда стереозапись стала проще, а на рынке появились первые стереомагнитофоны и проигрыватели.

    Сигнал в стерео

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

    Когда использовать дорожки в моно?

    Практически всегда. Нам кажется, что большое количество монодорожек сделает микс плоским и узким, но дело обстоит ровно наоборот: чем больше монотреков в проекте, тем чище микс.

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

    Самый простой способ добиться микса с широким звучанием — структурированно расположить треки в пространстве. Идея в том, чтобы разместить некоторые элементы микса максимально слева и справа в стереополе, оставив остальные ближе к центру. Какие звуки куда помещать каждый решает сам в зависимости от аранжировки и композиции.

    Когда использовать дорожки в стерео?

    Стереотреки используются в тех случаях, когда нужно сохранить и передать естественные пространственные свойства записываемого сигнала. К примеру, дорожки оверхедов ударных и микрофонов комнаты, запись рояля, синтезаторов и бэк-вокала можно лучше оставить в стерео. Шины и посылы, собирающие информацию от эффектов, — реверберации и дилэя — также стоит держать в стереоформате.

    Стереоисточники звука создают в миксе ощущение реализма и придают дополнительный объём звучанию.

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

    При полном совпадении данных в левом и правом канале звук собирается строго посередине и ничем не отличается от моносигнала. Когда информация слева и справа отличается по тембру, уровню громкости и таймингу (привет, даблтрек!), сигнал занимает собственное место на стереополе и не мешает другим звукам.

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

    При большом количестве стереодорожек информация суммируется и занимает всё пространство микса. Данные в моно внутри стереотрека начинают преобладать в общем звуке, совершенно разные по характеру звуки собираются в центре и мешают друг другу. Всё это приводит к нарушению панорамы и ширины стереокартины — микс становится узким и зажатым.

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

    Сведение музыки в моно

    При стремлении к широко звучащему миксу моно всё равно остаётся основным форматом для работы с дорожками. Сведение в стерео даёт представление об итоговом звучании микса для слушателя, однако усложняет определение серьёзных конфликтов между сигналами.

    Панорамирование становится ещё одной переменной, усложняющей работу. Сигналы расходятся по стереополю и вроде бы не мешают друг другу, но на деле ситуация может обстоять противоположным образом.

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

    Сведение музыки в моно

    Для проверки проекта на предмет конфликтов достаточно переключить мастер-канал в моно, суммировав все сигналы на нём. Все программы для записи музыки умеют суммировать мастер-трек, не нарушая цепочки прохождения сигнала.

    Моносовместимость

    Временное суммирование мастер-канала также позволяет протестировать микс на моносовместимость трека с различной аппаратурой. Моносовместимость показывает, как микс звучит в «боевых условиях» — на обыкновенной потребительской аппаратуре при «насильственном» объединении в один канал.

    Может показаться, что такая монофикация музыки невозможна, ведь мир давно живёт в мире стереозвука — все продающиеся аудиосистемы обязательно работают в стерео. Однако на деле большинство стереосистем не настолько стерео, как может показаться на первый взгляд.

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

    При прослушивании через смартфоны, планшеты, ноутбуки, беспроводные колонки и прочие подобные устройства расстояние становится ещё меньше. Пространство настолько маленькое, что практически неотличимо от мономикса.

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

    Мы постоянно слышим в различных уроках, что микс в моно и стерео должен звучать идентично. Проверка в моно нужна не только для устранения конфликтов, но и для проверки микса с точки зрения конечного слушателя.

    Если при суммировании в моно наблюдаются проблемы с моносовместимостью, ищите причину в структуре проекта и используемых эффектах. Среди основных причин плохой моносовместимости:

    • Слишком большое количество стереотреков;
    • Плагины расширения стереополя;
    • Слишком большое количество реверберации или дилэя;
    • Фазовые проблемы между микрофонами.

    Моно или стерео

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

    Что должно быть в моно

    • Дорожки инструментов;
    • Дорожки вокала;
    • Все сигналы, не обладающие собственными стереоэффектами.

    Что должно быть в стерео

    • Дорожки оверхедов ударных;
    • Дорожки микрофонов, снимающих комнату;
    • Рояль;
    • Синтезаторы с объёмными стереопатчами;
    • Бэк-вокал (не всегда, лучше смотреть по ситуации);
    • Шины и посылы эффектов — реверберации и дилэя;
    • Все сигналы, которые должны сохранить собственные пространственные свойства.

    LiveStreet

    Вторая часть рассказа о технологиях Mono/.Net ( первая тут ). Описываются юридические вопросы и общая структура проекта.

    Mono — проект по созданию полноценного воплощения системы .Net на базе свободного программного обеспечения. В основе проекта лежат спецификации на С# и CLI, переданные Microsoft в организации по стандартизации. Но Mono — это не просто клон .Net, здесь есть свои собственные технологии и библиотеки, которых нет в MS .NET. Цель Mono — помочь в переносе написанных для Windows .Net-программ под Linux и другие ОС.

    Компилятор С# и инструментарий Mono предоставляются по лицензии GNU General Public License (GPL), библиотеки исполняющей среды — по лицензии GNU Lesser General Public License (LGPL), а библиотеки классов — по лицензии MIT.

    Проект Mono разрабатывается довольно долгое время — с 2001 года, но до сих пор окончательно не ясен правовой статус этого программного продукта. В 2003 г. корпорация Microsoft получила патент США 20030028685, фактически охватывающий весь каркас .NET Framework. И с тех пор ситуация с патентами на С# и CLI остается неоднозначной. Эта причина сдерживает широкое и повсеместное использование платформы.

    За реализацию С# и CLI отвечают стандарты ЕСМА-334, ЕСМА-335, наличие которых подразумевает свободу на использование описанного функционала и отсутствие всяческих ограничений (использование на не дискриминационных условиях, не требующих авторских выплат — royalty-free, reasonable, non-discriminatory terms).

    Но вышеупомянутые «не дискриминационные условия» нигде не описаны, а неоднократные попытки выяснить этот вопрос (в ЕСМА, в Microsoft и у разработчиков Mono) были безуспешны (возможно, компания Microsoft сознательно затягивала предоставление необходимой информации). В июле 2009 года все же было опубликовано Community Promise (Обещание Сообществу), официально заявляющего отсутствие патентных или иных притязаний на стандартизированные таким образом разработки.

    После этого события Mono был разделен на две ветки: одна, занимающаяся реализацией ECMA стандартов и попадающая под действие Community Promise; вторая, реализующая свободные версии ASP.NET, ADO.NET, Winforms и других технологий (которые не были стандартизированы ECMA/ISO). Тем не менее, многие считают, что Community Promise не дает полной гарантии от возможных патентных претензий. Разработчики Mono рекомендуют обходить нестандартизированные API, а на случай изменения лицензии .NET, параллельно разрабатывается API, являющийся полностью собственной разработкой Mono.

    Как уже было упомянуто выше, .Net генерирует код, который, теоретически, может исполняться на различных операционных системах. Но на практике совместимость между платформами (Mono и .Net) не полная и использование их на различных операционных системах связана с рядом проблем.

    Условно Mono можно разделить на три части — ядро, стек разработки для Mono/Linux и стек компонент Microsoft:
    ? К компонентам ядра относятся компилятор С# (mcs), виртуальная машина (mono) и библиотеки классов. Эти компоненты основаны на стандартах ЕСМА-334 и ЕСМА-335 и предоставляют соответствующую стандартам свободную версию платформы .Net.
    ? Стек разработки для Mono/Linux предоставляет инструменты для разработки приложений с использованием различных свободных библиотек. К ним относится: библиотеки для разработки графических интерфейсов пользователя (Gtk#), обертки к OpenGL (Tao Framework) и Mac OS X toolkit (Cocoa#), библиотеки Mozilla для работы с системой рендеринга Gecko (Gecko#), библиотеки Unix, библиотеки для работы с базами данных (Mono. Data), стек компонент безопасности и язык описания XML-схем RelaxNG
    ? Стек компонент Microsoft предоставляет средства переноса приложений для Windows .NET на Linux-платформу. К этим компонентам относятся ADO.NET, ASP.NET, Windows.Forms и другие.

    FastReport Mono. Что это, и для чего?

    Моно — это платформа разработки с открытым исходным кодом на основе .NET Framework, позволяет разработчикам создавать кросс-платформенные приложения. Реализация Mono .NET основана на стандартах ECMA для C # и Common Language Infrastructure.

    Разработанный компанией Novell, Xamarin, а теперь Microsoft и .NET Foundation, проект Mono имеет активное и энтузиастское сообщество. Mono включает как инструменты разработчика, так и инфраструктуру, необходимую для запуска клиентских и серверных приложений .NET.

    Платформа Mono состоит из нескольких компонентов:

    Компилятор C # — поддерживает C # стандарта 1.0, 2.0, 3.0, 4.0, 5.0 и 6.0 (ECMA).

    Mono Runtime — среда выполнения ECMA Common Language Infrastructure (CLI). Среда исполнения предоставляет компилятор Just-in-Time (JIT), компилятор Ahead-of-Time (AOT), загрузчик библиотек, сборщик мусора и др.

    Библиотека классов .NET Framework. Платформа Mono предоставляет реализацию библиотек WinForms, ADO.Net, ASP.Net и других.

    Mono Class Library – было создано множество классов с дополнительной функциональностью специально для Mono, которые выходят за рамки библиотеки базового класса, предоставляемой Microsoft.

    Несмотря на предвзятое отношение разработчиков к платформе Mono, многие известные компании используют его. Например:

    • Novell использует Mono для клиентских и серверных приложений;
    • Unity Technologies использует Mono в инструменте моделирования компьютерных игр Unity 3D. Это дает возможность создавать кросс-платформенные видеоигры;
    • Artisteer использует Mono для переноса своего веб дизайнера на другую платформу. Начиная с версии 2.2, можно запустить свое программное обеспечение с помощью Mono.

    Так как кросс-платформенных генераторов не так уж и много, а действительно хороших, так вообще по пальцам посчитать можно, FastReports решила создать генератор отчетов для Mono. Тем более, что уже есть готовый популярный генератор отчетов FastReport.Net, на базе которого и был создан FastReport.Mono. Он появился в 2013 году, и на тот момент повторял функционал FastReport.Net. Однако сейчас, между ними есть различия. Что уж таить, FR.Net значительно продвинулся вперед. Тем не менее FastReport.Mono остается сильным конкурентом в своей нише. И лично я не знаю других генераторов отчетов под фреймворк Mono с таким богатым функционалом.

    Что же предлагает FastReport.Mono?

    • Удобный и функциональный дизайнер отчетов;
    • Подключение к любой БД, и не только. Даже текстовые файлы могут быть источниками данных, не говоря уже об XML и JSON;
    • Наличие встроенного скрипта отчета. Что наделяет отчет огромными возможностями. Ведь вы можете использовать библиотеки Mono прямо в отчете, для произведения преобразований данных, а также работать с объектами отчета;
    • Веб отчеты, на основе ASP.Net;

    Давайте рассмотрим детальнее. Итак, с FastReport.Mono можно работать в разных операционных системах. Ну конечно же, Mono кросс-платформенный фреймворк. Поэтому нам доступны системы: Windows, MacOs, семейство Linux.

    Для работы с Mono, а соответственно и с FastReport.Mono подходят следующие среды разработки:

    Microsoft Visual Studio (под Windows), MonoDevelop (Windows, MacOs, Linux) и Embarcadero Delphi Prism (Windows, MacOs, Linux).

    Языки программирования, для работы с FR.Mono: C#, VB.Net, Oxygene (Embarcadero Delphi Prism).

    Язык встроенного скрипта отчета: C#, VB.Net. Все также, как и в FastReport.Net.

    Источники данных, доступные по умолчанию: XML, CSV. А для подключения к базам данных нужно использовать источник данных пользовательского приложения, или внешние коннекторы, устанавливаемые в систему.

    Интересные особенности генератора отчетов:

    • диалоговые формы – перед отображением отчета можно вывести форму с элементами управления. Таким образом пользователь отчета может задать параметры отображения отчета. Например, отфильтровать нужные значения;
    • наследование отчетов – возможность использовать отчет как базовый шаблон для других. Это удобно, когда вы делаете много подобных отчетов. Кроме того, изменения в базовом отчете отобразятся во всех наследованных отчетах. Это тоже можно отнести к плюсам. Ведь не нужно изменять большое количество отчетов, если требуются правки базового шаблона;
    • Компонент предварительного просмотра отчета – позволяет просматривать отчет и делать его экспорт, отправлять email, а также управлять просмотром отображая план отчета, переходить между страницами;
    • Дизайнер отчета может быть вызван отдельно как самостоятельная программа, может быть вызван во время разработки пользовательского приложения, а также во время выполнения пользовательского приложения. Последний вариант очень интересен. По сути вы встраиваете дизайнер в свою программу и даете пользователю возможность редактировать отчеты самостоятельно.
    • Продвинутый режим печати – еще один продуманный инструмент. Настройки печати очень богатые.

    Веб отчеты реализуются посредством технологии ASP.Net и ASP.Net MVC. Что тут сказать — современный и востребованный подход.

    Список возможных экспортов отчета достаточно большой:

    • Acrobat PDF;
    • Images Jpeg/PNG/BMP/GIF/TIFF;
    • RichText;
    • Word OOXML (docx);
    • PowerPoint OOXML (pptx);
    • HTML;
    • MHT (web archive);
    • Microsoft XPS;
    • Excel OLE;
    • Excel XML;
    • Excel binary (xls);
    • Excel OOXML (xlsx);
    • Comma separated values (CSV);
    • DBF (table);
    • Open Document Speadsheet (OpenOffice);
    • Open Document Text (OpenOffice);
    • Email;
    • PostScript;
    • Json;
    • LaTex;
    • FTP;
    • Text File / Matrix Printer;
    • Clouds (DropBox);
    • Clouds (Box);
    • Clouds (FastReport Cloud);
    • Clouds (GoogleDrive);
    • Clouds (OneDrive).

    Обратите внимание, последние элементы списка – Clouds – это по сути сохранение отчета в облачные сервисы.

    Формат файла отчета – frx, такой же, как и в FastReport.Net. Да, собственно, отчеты совместимы между FR.Net и FR.Mono.

    Разработчики, выбирая логотип для FastReport.Mono, проявили остроумие. Судите сами. Вот логотип платформы Mono:

    А вот логотип FastReport.Mono:

    В заключение хочу отметить, что перенос FastReport.Net на платформу Mono, было стратегически верным решением. Сейчас это актуально как никогда, в контексте «Импортозамещения» и «Гослинукса».

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

    Ваш адрес email не будет опубликован. Обязательные поля помечены *