Решайтесь на великие поступки — ASCII / Хабр
ASCII — это самый простой из существующих коммуникационных протоколов и единственный формат данных, который может декодировать любая из существующих компьютерных систем.
Момент посадки на Марс ровера NASA Perseverance (Настойчивость) стал историческим событием. Человечество впервые увидело нечто подобное. Многие люди с замиранием сердца наблюдали за происходящим. «Настойчивость» многие годы будет служить для нас источником вдохновения.
Каждое изображение, поступающее с Марса после успешной посадки ровера, содержало в себе какой-то сюрприз. Одним из таких сюрпризов стало сообщение, зашифрованное в раскраске парашюта марсохода.
Интернет-ищейки заявили о том, что им удалось расшифровать скрытое сообщение, нанесённое на купол парашюта, который помог роверу безопасно приземлиться на поверхность Красной планеты. Как оказалось, фраза «Dare Mighty Things» («Решайтесь на великие поступки») — девиз лаборатории реактивного движения NASA (Jet Propulsion Laboratory) — была закодирована на парашюте с использованием красных и белых полос, представляющих двоичный компьютерный код. Этот код, что неудивительно, можно, используя некоторые вычисления, перевести в кодировку ASCII и, в итоге, понять то, что в нём скрыто.
Ровер сделал этот снимок парашюта в процессе посадки на поверхность Марса
Пользователи Reddit и Twitter обратили внимание на то, что красно-белый узор похож на нечто, способное нести в себе какой-то смысл. Они расшифровали послание, решив, что красные фрагменты представляют единицы, а белые — нули.
Эта история разлетелась по всему миру, благодаря ей кодировка ASCII, о которой говорят не особенно часто, оказалась у всех на слуху.
В этом материале мы поговорим об ASCII, немного коснёмся истории этой кодировки, разберём пример её применения в программном коде. Прочитав эту статью, вы поймёте, что очень сложно не полюбить ASCII, кое-что о ней узнав.
Протокол ASCII
ASCII — это кодировка. Это не протокол. Протоколы могут быть построены на основе ASCII.
На самом деле, так оно и есть, но во множестве документов, которые можно встретить в интернете, ASCII называют не только «кодировкой», но и «протоколом». Поэтому я заранее хочу обратить на это ваше внимание, так как могу называть ASCII и так и так.
ASCII можно назвать самым простым коммуникационным протоколом для передачи текста. При его использовании передаются только обычные и управляющие ASCII-символы. Он предусматривает минимальный контроль ошибок или полное его отсутствие.
Может, в это сложно поверить, но ASCII — это весьма мощная технология. Это — единственный формат данных, который может декодировать любая из существующих компьютерных систем.
Немногие знают о том, что кодировка ASCII появилась в 1960-х годах, когда Лабораториям Белла (Bell Labs) понадобился стандартный способ для передачи текста. Сотрудники Bell Labs реорганизовали телеграфные коды, разобрали их и, совместно с Американской ассоциацией стандартов (American Standards Association, ASA), сформировали ASCII (American Standard Code for Information Interchange, Американский стандартный код для обмена информацией). 1960-е — это время бурного развития компьютерных технологий.
XML (eXtensible Markup Language, Расширяемый язык разметки) — это язык, используемый для организации хранения компьютерных данных и для их передачи из одного места в другое. Он построен исключительно с применением ASCII-кодов. Каждый XML-элемент начинается и оканчивается угловой скобкой, которая является ASCII-символом. Даже числовые данные в XML кодируются с помощью ASCII. Например, сведения о давлении чернил кодируются с помощью элементов
, представляющих собой длинные последовательности ASCII-кодов:
<InkPressure>2.3145</InkPressure>
Почему вокруг так много всего связано с ASCII? Дело в том, что это отражает то, как люди общаются друг с другом. Для общения мы используем буквы, цифры и специальные символы. В мире, например, очень много всего такого, что надо как-то маркировать.
Типичный пример использования ASCII — это составление команд и запросов, которые можно отправлять промышленным устройствам, которые, реагируя на них, выполняют какие-то действия, или отправляют в ответ сведения о собственном состоянии.
Что такое протокол?
Представим, что вы попали на аудиенцию к королеве. При этом кто-то из дворцовых служащих сообщает вам о том, каких правил принято придерживаться во время этого мероприятия. Эти правила и называют протоколом. Понятие «протокол» часто используется в компьютерном мире. Вы вводите веб-адрес в адресную строку браузера, нажимаете Enter, это приводит к выполнению множества операций, браузер и сервер обмениваются данными, после чего запрошенная страница выводится на экране.
Понятие «сетевой протокол» скрывает в себе множество смысловых уровней. Обычно «протокол» — это механизм, используемый для передачи пакетов с данными между компьютерами. Но тут мы не будем обращать внимание на транспортную составляющую обмена данными. Мы сосредоточимся на исследовании тех данных, которые передаются по сетям. В частности — изучим сообщения, которые программы отправляют другим программам.
Биты, байты и представление информации
Итак, мы уже немного поговорили об ASCII, а ниже я продемонстрирую примеры работы с ASCII в коде. Но прежде чем я это сделаю, предлагаю немного отклониться от нашей основной темы и поговорить о том, как в цифровом мире кодируется и хранится информация.
«Цифровое представление информации» — это когда всё что угодно представляют исключительно с помощью чисел. Обычная последовательность работы при таком подходе выглядит так:
- Нечто (звук, изображение, текст, набор команд…) преобразуют в цифровую форму с использованием некоего механизма.
- Полученные цифровые данные можно сохранить на соответствующем носителе и прочитать с него, их можно как-то обработать, их можно куда-то передать.
- Из цифровых данных можно воссоздать нечто, более или менее близкое к оригиналу, на основе которого они созданы.
Двоичные, восьмеричные, десятичные, шестнадцатеричные числа
Существует множество способов представления чисел. Например, возьмём двоичное число 10011111.
Оно равнозначно следующим числам:
- 237 в восьмеричной системе счисления;
- 157 в десятичной системе счисления;
- 9F в шестнадцатеричной системе счисления.
Все эти числа представляют одно и то же значение. При этом его шестнадцатеричная запись гораздо короче и понятнее двоичной. Именно поэтому в инструкциях ко многим промышленным устройствам можно видеть различные команды, представленные в шестнадцатеричном виде.
Для того чтобы передавать данные по компьютерным сетям эти данные надо представлять в виде байтов. Байт — это группа из 8 битов. С помощью одного байта можно закодировать десятичное число в диапазоне от 0 до 255.
[STX][status][type][length][user data…][checksum][ETX]
Эта конструкция используется для представления неких данных. Ведь, как известно, компьютер не может хранить «буквы», «цифры», «изображения» или что угодно другое. Компьютер может работать лишь с битами. А бит может пребывать лишь в одном из двух значений: «да» или «нет», «истина» или «ложь», «0» или «1». Называть их можно по-разному, но всё сводится к тому, что их всего два.
Для того чтобы использовать биты для представления чего-то, отличного от «нулей» и «единиц», нужны некие правила. Нужна возможность преобразовывать последовательности битов в нечто вроде букв, цифр, изображений. Делается это с применением некоей схемы кодирования, которую обычно называют просто «кодировкой».
Тут мы говорим о схеме кодирования ASCII. В этой кодировке определено 128 символов (для кодирования 1 символа используется 7 битов). Ниже приведён её фрагмент.
Биты | Символы |
1000001 | A |
1000010 | B |
1000011 | C |
1000100 | D |
1000101 | E |
1000110 | F |
Фактически, при использовании ASCII работа ведётся не с «символами» или с «текстами». Всё сводится к манипулированию битами, «видимыми» через несколько слоёв абстракции.
Помимо ASCII существуют и другие способы кодирования символов, другие способы преобразования последовательностей битов в текстовые данные. Например, это набор символов Unicode. Если имеется соответствие между битами, из которых составлена строка, и кодами Unicode-символов — битовое представление строки можно преобразовать в нечто осмысленное.
Для преобразования двоичных данных в числа, которые соответствуют номерам из набора символов Unicode (и для преобразования кодов символов в двоичные данные), могут применяться различные кодировки. В частности, это кодировка UTF-8. Она совместима с ASCII, для представления ASCII-символов в ней применяются 1-байтные коды. Для представления символов из набора Unicode в ней может применяться до 4 байтов на 1 символ.
Если две компьютерные системы обмениваются друг с другом данными, им нужно договориться о том, какую именно кодировку они используют. Например, текстовые данные, представленные на этой странице, закодированы с использованием UTF-8, о чём сервер, передавший страницу, сообщает браузеру, который её принял и вывел на экран.
STX / ETX (протокол ASCII)
Помните вышеприведённую конструкцию? Повторим её ещё раз:
[STX][status][type][length][user data…][checksum][ETX]
В записи кодов управляющих символов использована конструкция 0x. Она указывает на применение шестнадцатеричных кодов. Например, 0x01 — это, в десятичном представлении, 1, а в двоичном — 00000001. 0x10 — это 16 в десятичном представлении и 00010000 в двоичном.
С помощью управляющих символов STX (Start of TeXt, начало текста) и ETX (End of TeXt, конец текста) можно сформировать простой пакет, в который упаковываются пользовательские данные. В таком пакете, помимо признаков начала и конца текста, присутствует контрольная сумма (checksum), которая позволяет организовать надёжную передачу данных. Возможно, вы видели подобные конструкции в коде, предназначенном для обмена данными с некими устройствами по сети или через порт RS232.
Пример кода: отправка ASCII-команд через TCP/IP
Исходя из предположения о том, что у нас уже имеется установленное сетевое соединение, нам, для организации обмена данными между программами, нужно всего лишь отправить по этому соединению соответствующую строку. При этом, например, символ STX будет представлен в виде ‘\x02’, а передача H — в виде ‘\x02H\x04’.
ASCII-команды можно отправлять с использованием различных каналов связи. В моём примере будет использован TCP-канал. Пример написан на C# (мы рассмотрим и JavaScript-пример, рассчитанный на платформу Node.js). Этот код будет понятен и тем, кто знает Java.
▍Обзор проекта
Итак, мы будем разрабатывать простое клиент-серверное TCP-приложение.
Клиент может быть чем угодно — устройством, Linux-процессом, консольным приложением .NET Core (в нашем случае используется именно такой клиент).
То же самое касается и сервера. Сервером может быть некое промышленное устройство, или, скажем, марсоход. Помните, как я говорил о том, что ASCII — это единственный формат, понятный всем существующим земным компьютерам? Это относится и к компьютерам, находящимся на Марсе. Наш сервер, правда, не имеет отношения к Марсу. Он будет представлен ещё одним консольным приложением .NET Core.
Вот пример выходных данных, генерируемых в ходе работы нашей клиент-серверной системы.
Пример работы клиент-серверной системы
▍И что всё это значит?
Если вы задались вопросом, который вынесен в заголовок этого раздела — знайте, что меня это порадовало. Сейчас я всё это объясню, прибегнув к фрагментам кода моего приложения. Его полную версию, с которой вы можете поэкспериментировать самостоятельно, можно найти в этом репозитории на GitHub.
Для начала взглянем на структуру проекта. Здесь у меня имеются два .NET Core-приложения. Одно из них — это TCP-клиент, а второе — TCP-сервер. Тут, кроме того, используются некоторые стандартные библиотеки.
Структура проекта
▍TCP-клиент
AsciiDemo.TestApp
— это наш TCP-клиент. Вот его код (файл Program.cs
):
Код класса Program
Метод Main
является точкой входа в приложение.
Код метода Main
Этот код устроен очень просто, но если у вас есть по нему вопросы — можете задать их мне. Здесь мы сначала подготавливаем некоторые команды, используя кодировку ASCII, затем преобразуем их в байты и отправляем по сети TCP-серверу. Тут же мы выводим сообщения в консоль.
Сеанс связи с точки зрения клиента
Обратите внимание на то, что мы получаем от сервера подтверждения (ACK/NAK) о получении данных (об этом мы поговорим ниже). В результате оказывается, что наш TCP-клиент может не только отправлять команды серверу, но и получать от сервера ответы.
В консоли можно видеть некоторые необычные символы. Это — визуальные представления управляющих символов, о которых мы говорили выше.
Вот код метода BuildCommand
, который используется для составления команд с использованием ASCII.
Код метода BuildCommand
Я не рассматривают тут код метода TCP-клиента SendCommand
, так как в нём нет ничего особенного. Это — обычный сетевой C#-код, подобный тому, который используется на сервере. Вы, в любом случае, можете сами посмотреть этот код, обратившись к репозиторию проекта.
▍TCP-сервер
AsciiDemo.TCPListenerApp
— это простейший TCP-сервер. Он прослушивает заданный порт, ожидая поступления команд. После получения команды он просто выводит её в консоль (если подобные команды используются для управления неким устройством — оно может, например, выключиться, или прочесть показания некоего датчика), а затем отправляет ответ. В данном случае выполняется отправка ответов ACK или NAK, имитирующих, соответственно, успешное или неудачное выполнение команды. Если нужно — можно организовать любую другую реакцию сервера на подобные команды.
Вот как выглядит то, что выводит в консоль сервер.
Сеанс связи с точки зрения сервера
Как видно, каждый раз, получая команду от клиента, сервер выводит её в консоль, а после этого отправляет клиенту ACK или NAK. То, что происходит в это время на клиенте, мы уже видели.
Вот код метода Main
TCP-сервера:
Код метода Main
Тут всё устроено очень просто. Сначала мы запускаем сервер на заданном IP-адресе и порте, а потом сервер, в соответствующем цикле, ждёт поступления данных. Вот код этого цикла.
Цикл, используемый в работе сервера
В этом цикле, при наличии соединения, выполняется чтение байтов данных с помощью NetworkStream
.
Байты мы преобразуем в ASCII-символы, выводим их в консоль, а после этого отправляем клиенту байты, соответствующие кодам управляющих символов ACK или NAK.
Получение данных от клиента и отправка ему ответа
▍Node.js-реализация клиента
Как уже было сказано, подобный функционал можно реализовать и с использованием других языков программирования. Вот, например, вариант реализации простого TCP-клиента для платформы Node.js.
TCP-клиент для Node.js
Попробуем организовать взаимодействие Node.js-клиента с нашим .NET Core-сервером.
Вот что выведет в консоль клиент.
Сеанс связи с точки зрения Node.js-клиента
Клиент подключается к серверу, отправляет ему две команды и выводит ACK/NAK-ответы сервера.
А вот как подобный сеанс связи выглядит с точки зрения .NET Core-сервера.
Сеанс связи с точки зрения . NET Core-сервера
Сервер получает команды от клиента и отправляет ему ответы.
Итоги
Полагаю, что ASCII — это просто потрясающе. Это простая и мощная кодировка, на основе которой несложно создавать коммуникационные протоколы. И она будет актуальна до тех пор, пока люди общаются, используя буквы и цифры.
Использование ASCII при составлении команд и запросов восходит к временам ранних мейнфреймов IBM, при работе с которыми применялись терминалы. Оператор вводил на терминале команды и нажимал на клавишу Return для отправки их компьютеру. Все взаимодействия с этими компьютерами, так как работали с ними люди, были основаны на стандартном ASCII.
Везде, где используется некая маркировка чего-либо, применяется ASCII. Например, каждый сканер штрих-кодов, в сущности, работает с последовательностями ASCII-символов. Эти символы где-то хранятся, их нужно распечатывать, иногда их надо преобразовывать в числовые данные.
Даже сегодня, когда в нашем распоряжении имеются современные протоколы для промышленных устройств, ASCII не теряет актуальности. И так будет ещё очень и очень долго.
Приходилось ли вам создавать собственные реализации протоколов, основанных на ASCII и применяемых для обмена данными с некими устройствами?
Символы ASCII
Символы ASCIIЭтот список может помочь при использовании функций Asc и Chr. Таблица основана на ASCII Character Set
Управляющие символы (большинство непечатные; наиболее важные подсвечены жёлтым)
Символ (Обознач.) | Dec | Hex | Oct | Описание |
---|---|---|---|---|
NUL | 0 | 00 | 000 | Пустой символ |
SOH | 1 | 01 | 001 | Начало заголовка, = console interrupt |
STX | 2 | 02 | 002 | Начало текста, maintenance mode on HP console |
ETX | 3 | 03 | 003 | Конец текста |
EOT | 4 | 04 | 004 | Конец передачи, не тоже самое, что ETB |
ENQ | 5 | 05 | 005 | Запрос, связан с ACK; old HP flow control |
ACK | 6 | 06 | 006 | Подтверждение, очищает ENQ logon hand |
BEL | 7 | 07 | 007 | Звуковой сигнал (Воспроизводит стандартный «бииип» системным динамиком ПК в Windows ) |
BS | 8 | 08 | 010 | Backspace, works on HP terminals/computers |
HT | 9 | 09 | 011 | Горизонтальная табуляция, перемещает к следующей позиции табуляции |
LF | 10 | 0a | 012 | Перенос строки |
VT | 11 | 0b | 013 | Вертикальная табуляция |
FF | 12 | 0c | 014 | Смена страницы, извлекает страницу |
CR | 13 | 0d | 015 | Возврат каретки |
SO | 14 | 0e | 016 | Shift Out, включает альтернативные символы |
SI | 15 | 0f | 017 | Shift In, возобновляет символы по умолчанию |
DLE | 16 | 10 | 020 | Экранирует управляющий символ |
DC1 | 17 | 11 | 021 | XON, with XOFF to pause listings; «:okay to send». |
DC2 | 18 | 12 | 022 | Управление устройством, код 2, block-mode flow control |
DC3 | 19 | 13 | 023 | XOFF, with XON is TERM=18 flow control |
DC4 | 20 | 14 | 024 | Управление устройством, код 4 |
NAK | 21 | 15 | 025 | Отрицательное подтверждение |
SYN | 22 | 16 | 026 | Пустой символ для синхронного режима передачи |
ETB | 23 | 17 | 027 | Конец передаваемого блока данных, не тоже самое, что EOT |
CAN | 24 | 18 | 030 | Отмена строки, MPE echoes !!! |
EM | 25 | 19 | 031 | Конец носителя, Control-Y interrupt |
SUB | 26 | 1a | 032 | Замена |
ESC | 27 | 1b | 033 | Экранирует, следующий символ не отображается |
FS | 28 | 1c | 034 | Разделитель файлов |
GS | 29 | 1d | 035 | Разделитель групп |
RS | 30 | 1e | 036 | Разделитель записей, block-mode terminator |
US | 31 | 1f | 037 | Разделитель полей |
DEL | 127 | 7f | 177 | Delete (rubout), cross-hatch box |
Печатные символы (стандартные)
Символ | Dec | Hex | Oct | Описание |
---|---|---|---|---|
32 | 20 | 040 | Пробел | |
! | 33 | 21 | 041 | Восклицательный знак |
« | 34 | 22 | 042 | Кавычка (" в HTML) |
# | 35 | 23 | 043 | Решётка (знак числа) |
$ | 36 | 24 | 044 | Доллар |
% | 37 | 25 | 045 | Проценты |
& | 38 | 26 | 046 | Амперсанд |
‘ | 39 | 27 | 047 | Закрывающая одиночная кавычка (апостроф) |
( | 40 | 28 | 050 | Открывающая скобка |
) | 41 | 29 | 051 | Закрывающая скобка |
* | 42 | 2a | 052 | Звёздочка, умножение |
+ | 43 | 2b | 053 | Плюс |
, | 44 | 2c | 054 | Запятая |
— | 45 | 2d | 055 | Дефис, минус |
. | 46 | 2e | 056 | Точка |
/ | 47 | 2f | 057 | Наклонная черта (слеш, деление) |
0 | 48 | 30 | 060 | Ноль |
1 | 49 | 31 | 061 | Один |
2 | 50 | 32 | 062 | Два |
3 | 51 | 33 | 063 | Три |
4 | 52 | 34 | 064 | Четыре |
5 | 53 | 35 | 065 | Пять |
6 | 54 | 36 | 066 | Шесть |
7 | 55 | 37 | 067 | Семь |
8 | 56 | 38 | 070 | Восемь |
9 | 57 | 39 | 071 | Девять |
: | 58 | 3a | 072 | Двоеточие |
; | 59 | 3b | 073 | Точка с запятой |
< | 60 | 3c | 074 | Знак меньше |
= | 61 | 3d | 075 | Знак равенства |
> | 62 | 3e | 076 | Знак больше |
? | 63 | 3f | 077 | Знак вопроса |
@ | 64 | 40 | 100 | эт, собака |
A | 65 | 41 | 101 | Заглавная A |
B | 66 | 42 | 102 | Заглавная B |
C | 67 | 43 | 103 | Заглавная C |
D | 68 | 44 | 104 | Заглавная D |
E | 69 | 45 | 105 | Заглавная E |
F | 70 | 46 | 106 | Заглавная F |
G | 71 | 47 | 107 | Заглавная G |
H | 72 | 48 | 110 | Заглавная H |
I | 73 | 49 | 111 | Заглавная I |
J | 74 | 4a | 112 | Заглавная J |
K | 75 | 4b | 113 | Заглавная K |
L | 76 | 4c | 114 | Заглавная L |
M | 77 | 4d | 115 | Заглавная M |
N | 78 | 4e | 116 | Заглавная N |
O | 79 | 4f | 117 | Заглавная O |
P | 80 | 50 | 120 | Заглавная P |
Q | 81 | 51 | 121 | Заглавная Q |
R | 82 | 52 | 122 | Заглавная R |
S | 83 | 53 | 123 | Заглавная S |
T | 84 | 54 | 124 | Заглавная T |
U | 85 | 55 | 125 | Заглавная U |
V | 86 | 56 | 126 | Заглавная V |
W | 87 | 57 | 127 | Заглавная W |
X | 88 | 58 | 130 | Заглавная X |
Y | 89 | 59 | 131 | Заглавная Y |
Z | 90 | 5a | 132 | Заглавная Z |
[ | 91 | 5b | 133 | Открывающая квадратная скобка |
\ | 92 | 5c | 134 | Обратная наклонная черта (обратный слеш) |
] | 93 | 5d | 135 | Закрывающая квадратная скобка |
^ | 94 | 5e | 136 | Циркумфлекс, возведение в степень, знак вставки |
_ | 95 | 5f | 137 | Нижнее подчёркивание |
` | 96 | 60 | 140 | Открывающая одиночная кавычка, гравис, знак ударения |
a | 97 | 61 | 141 | Строчная a |
b | 98 | 62 | 142 | Строчная b |
c | 99 | 63 | 143 | Строчная c |
d | 100 | 64 | 144 | Строчная d |
e | 101 | 65 | 145 | Строчная e |
f | 102 | 66 | 146 | Строчная f |
g | 103 | 67 | 147 | Строчная g |
h | 104 | 68 | 150 | Строчная h |
i | 105 | 69 | 151 | Строчная i |
j | 106 | 6a | 152 | Строчная j |
k | 107 | 6b | 153 | Строчная k |
l | 108 | 6c | 154 | Строчная l |
m | 109 | 6d | 155 | Строчная m |
n | 110 | 6e | 156 | Строчная n |
o | 111 | 6f | 157 | Строчная o |
p | 112 | 70 | 160 | Строчная p |
q | 113 | 71 | 161 | Строчная q |
r | 114 | 72 | 162 | Строчная r |
s | 115 | 73 | 163 | Строчная s |
t | 116 | 74 | 164 | Строчная t |
u | 117 | 75 | 165 | Строчная u |
v | 118 | 76 | 166 | Строчная v |
w | 119 | 77 | 167 | Строчная w |
x | 120 | 78 | 170 | Строчная x |
y | 121 | 79 | 171 | Строчная y |
z | 122 | 7a | 172 | Строчная z |
{ | 123 | 7b | 173 | Открывающая фигурная скобка |
| | 124 | 7c | 174 | Вертикальная черта |
} | 125 | 7d | 175 | Закрывающая фигурная скобка |
~ | 126 | 7e | 176 | Тильда (приблизительно) |
Расширенный набор символов (ANSI) в русской кодировке Win-1251
Символ | Dec | Hex | Oct | Описание |
---|---|---|---|---|
Ђ | 128 | 80 | 200 | |
Ѓ | 129 | 81 | 201 | |
‚ | 130 | 82 | 202 | Запятая |
ѓ | 131 | 83 | 203 | |
„ | 132 | 84 | 204 | Кавычка нижняя правая |
… | 133 | 85 | 205 | Многоточие |
† | 134 | 86 | 206 | Одинарный крест |
‡ | 135 | 87 | 207 | Двойной крест |
€ | 136 | 88 | 210 | Знак евро |
‰ | 137 | 89 | 211 | Промилле (тысячная часть числа) |
Љ | 138 | 8A | 212 | |
‹ | 139 | 8B | 213 | Знак меньше |
Њ | 140 | 8C | 214 | |
Ќ | 141 | 8D | 215 | |
Ћ | 142 | 8E | 216 | |
Џ | 143 | 8F | 217 | |
ђ | 144 | 90 | 220 | |
‘ | 145 | 91 | 221 | Левая одинарная верхняя кавычка |
’ | 146 | 92 | 222 | Правая верхняя одинарная кавычка |
“ | 147 | 93 | 223 | Левые двойные верхние кавычки |
” | 148 | 94 | 224 | Правые двойные верхние кавычки |
• | 149 | 95 | 225 | Крупная точка |
– | 150 | 96 | 226 | Короткий дефис (тире) |
— | 151 | 97 | 227 | Длинный дефис (тире) |
| 152 | 98 | 230 | |
™ | 153 | 99 | 231 | Торговый знак |
љ | 154 | 9A | 232 | |
› | 155 | 9B | 233 | Знак больше |
њ | 156 | 9C | 234 | |
ќ | 157 | 9D | 235 | |
ћ | 158 | 9E | 236 | |
џ | 159 | 9F | 237 | |
160 | A0 | 240 | ||
Ў | 161 | A1 | 241 | |
ў | 162 | A2 | 242 | |
Ј | 163 | A3 | 243 | |
¤ | 164 | A4 | 244 | Валюта |
Ґ | 165 | A5 | 245 | |
¦ | 166 | A6 | 246 | |
§ | 167 | A7 | 247 | Параграф, раздел |
Ё | 168 | A8 | 250 | Заглавная Ё |
© | 169 | A9 | 251 | Копирайт |
Є | 170 | AA | 252 | |
« | 171 | AB | 253 | Левые двойные кавычки |
¬ | 172 | AC | 254 | |
| 173 | AD | 255 | Дефис |
® | 174 | AE | 256 | Зарегистрированный торговый знак |
Ї | 175 | AF | 257 | Английская прописная (большая) I с умлаутом (двумя точками наверху) |
° | 176 | B0 | 260 | Градус |
± | 177 | B1 | 261 | Плюс-минус |
І | 178 | B2 | 262 | |
і | 179 | B3 | 263 | |
ґ | 180 | B4 | 264 | |
µ | 181 | B5 | 265 | Мю |
¶ | 182 | B6 | 266 | Enter, знак абзаца |
· | 183 | B7 | 267 | Средняя квадратная точка |
ё | 184 | B8 | 270 | Строчная ё |
№ | 185 | B9 | 271 | Порядковый номер |
є | 186 | BA | 272 | |
» | 187 | BB | 273 | Правые двойные кавычки |
ј | 188 | BC | 274 | |
Ѕ | 189 | BD | 275 | |
ѕ | 190 | BE | 276 | |
ї | 191 | BF | 277 | Английская строчная (маленькая) буква i, но только не с одной, а с двумя точками сверху (умлаут) |
А | 192 | C0 | 300 | Заглавные буквы русского алфавита |
Б | 193 | C1 | 301 | |
В | 194 | C2 | 302 | |
Г | 195 | C3 | 303 | |
Д | 196 | C4 | 304 | |
Е | 197 | C5 | 305 | |
Ж | 198 | C6 | 306 | |
З | 199 | C7 | 307 | |
И | 200 | C8 | 310 | |
Й | 201 | C9 | 311 | |
К | 202 | CA | 312 | |
Л | 203 | CB | 313 | |
М | 204 | CC | 314 | |
Н | 205 | CD | 315 | |
О | 206 | CE | 316 | |
П | 207 | CF | 317 | |
Р | 208 | D0 | 320 | |
С | 209 | D1 | 321 | |
Т | 210 | D2 | 322 | |
У | 211 | D3 | 323 | |
Ф | 212 | D4 | 324 | |
Х | 213 | D5 | 325 | |
Ц | 214 | D6 | 326 | |
Ч | 215 | D7 | 327 | |
Ш | 216 | D8 | 330 | |
Щ | 217 | D9 | 331 | |
Ъ | 218 | DA | 332 | |
Ы | 219 | DB | 333 | |
Ь | 220 | DC | 334 | |
Э | 221 | DD | 335 | |
Ю | 222 | DE | 336 | |
Я | 223 | DF | 337 | |
а | 224 | E0 | 340 | Строчные буквы русского алфавита |
б | 225 | E1 | 341 | |
в | 226 | E2 | 342 | |
г | 227 | E3 | 343 | |
д | 228 | E4 | 344 | |
е | 229 | E5 | 345 | |
ж | 230 | E6 | 346 | |
з | 231 | E7 | 347 | |
и | 232 | E8 | 350 | |
й | 233 | E9 | 351 | |
к | 234 | EA | 352 | |
л | 235 | EB | 353 | |
м | 236 | EC | 354 | |
н | 237 | ED | 355 | |
о | 238 | EE | 356 | |
п | 239 | EF | 357 | |
р | 240 | F0 | 360 | |
с | 241 | F1 | 361 | |
т | 242 | F2 | 362 | |
у | 243 | F3 | 363 | |
ф | 244 | F4 | 364 | |
х | 245 | F5 | 365 | |
ц | 246 | F6 | 366 | |
ч | 247 | F7 | 367 | |
ш | 248 | F8 | 370 | |
щ | 249 | F9 | 371 | |
ъ | 250 | FA | 372 | |
ы | 251 | FB | 373 | |
ь | 252 | FC | 374 | |
э | 253 | FD | 375 | |
ю | 254 | FE | 376 | |
я | 255 | FF | 377 |
ASKII — Информация об использовании
Использование моей музыки в ваших проектах обычно разрешено и поощряется. Этот FAQ отвечает на самые распространенные вопросы о сфере использования, а также проливает свет на иногда возникающую путаницу, связанную с лицензиями. Если остались вопросы, не стесняйтесь обращаться. Спасибо за интерес к моей работе!Что я могу использовать?
Вы можете использовать весь мой музыкальный каталог Bandcamp.
Пожалуйста, поймите, что любое повторное использование визуальных материалов (видео YouTube, скриншоты) не допускается. Прочтите вопрос «Могу ли я повторно использовать ваш видеоконтент?» для получения дополнительной информации.
По причинам лицензирования я также должен ограничить использование Sound Ambiences (компиляция звуковых эффектов без музыки), которые добавляются в качестве бонусного файла при покупке некоторых альбомов.
Где я могу его использовать?
Вы можете добавить мою музыку в каждый некоммерческий цифровой медиа-проект. Видео на YouTube, стримы на Twitch, подкасты D&D, университетские игровые проекты — все в порядке и приветствуется!
Пожалуйста, ознакомьтесь с приведенными ниже ограничениями на использование.
Как я могу его использовать?
Все медиафайлы, в которых используется моя музыка, должны иметь указание авторства (имя исполнителя, название трека или альбома) в описании с прямой ссылкой на мой профиль Bandcamp: https://aski.bandcamp.com
Для проекты, в которых исходные файлы музыкальных треков доступны или могут быть извлечены (например, игровые моды), качество музыкальных файлов не должно превышать битрейт 128 кбит/с.
Вы не можете изменять, пересэмплировать или микшировать мою музыку без явного разрешения. Однако вы можете внести изменения, которые позволят правильно разместить звук в вашем медиапроекте. Эти исключения включают в себя сокращение длины, постепенное появление/затухание, а также нетворческие частотные и динамические настройки, чтобы вписать мою музыку в ваш общий звуковой микс.
Есть ли ограничения?
Вы можете использовать мою музыку только как часть того, что вы создаете. Предоставление загрузки или переупаковка моей музыки не разрешены.
Вы не можете использовать мою музыку одновременно с другим музыкальным произведением или композицией. Объединение моих треков, в том числе по частям или передискретизированных, с любыми другими музыкальными элементами во время их воспроизведения требует моего явного согласия. Средства: если вы хотите проявить творческий подход к рэп-битам, версиям Lo-Fi или вообще создать новое произведение на основе моей музыки, нам нужно сначала поговорить об этом. Примечание. Можно использовать музыкальные плейлисты с короткими переходами между ними.
Использование моей музыки строго запрещено для разжигания ненависти, расизма, политики, религии, идеологии, NSFW и другого противоречивого или оскорбительного содержания. Я хочу, чтобы моя музыка объединяла людей, а не разъединяла их. Я оставляю за собой право принимать меры против любого контента, который игнорирует это ограничение.
Как насчет коммерческого использования?
Если вы хотите использовать мою музыку на носителях, которые либо ограничены платным доступом, либо вы зарабатываете на этом деньги (включая рекламу, использование в рекламных целях или монетизацию YouTube), вам нужна явная лицензия для этого. Пожалуйста, свяжитесь со мной по электронной почте [email protected] или свяжитесь с нами, чтобы сообщить информацию о вашем проекте и о том, как вы собираетесь использовать мой контент. Предлагаю честные варианты лицензирования для таких случаев.
Могу ли я повторно использовать ваш видеоконтент?
Нет, извините. Я хочу, чтобы видеоконтент размещался исключительно на моем канале YouTube. Я уважаю добросовестное использование, но если оно выходит за его рамки, я могу попросить удалить этот контент.
Я хотел бы призвать вас создавать свои собственные визуальные эффекты с помощью Unreal Engine 4. Это не очень сложно, и вам не нужны дорогие пакеты ресурсов, чтобы получить первые результаты. Я буду рад отправить вам несколько ссылок на ресурсы о том, как начать работу, просто напишите мне сообщение.
Есть ли риск получения жалоб на контент или удаления DMCA, если я буду использовать вашу музыку?
Нет, моя музыка не зарегистрирована в соответствии с Законом США «Об авторском праве в цифровую эпоху» и никогда не будет зарегистрирована. То же самое для Content-ID.
Находится ли ваша музыка под лицензией Creative Commons или защищена авторским правом?
Нет, формально моя музыка по-прежнему «Все права защищены», за исключениями, описанными выше. В основном это формальность: если моя музыка будет обозначена как «Creative Commons» или «свободная от авторских прав», возникнут некоторые проблемы, связанные с моим собственным коммерческим использованием (например, публикация на Spotify). Это не меняет того факта, что вы можете использовать его на условиях, указанных выше.
Хегельбург | АСКИИ | Подземелья Deep Records
по АСКИИ
поддерживается
футуристический Кайлен-Тор
футуристический Кайлен-Тор Должен быть в видеоигре как можно скорее! 10/10 за потрясающую атмосферу Любимый трек: Старые сказки.
ракета Редферн
ракетаредферн мог ли Гегельбург быть эпичнее? вам, вероятно, придется прослушать весь rhinegeld за один присест с пакетиком чипсов, чтобы превзойти его
Апокалиптические Дутс
Апокалиптические Дутс Во главе с яркими и широкими оркестровками, Hegelburg является шедевром эпической, авантюрной музыки. Эта игра похожа на саундтрек к еще не вышедшей ролевой игре. В ней есть чем заняться, чтобы подпитывать вечера настольных игр и поиски сокровищ в подземельях. Любимый трек: Белая река.
Тиритмун
Тиритмун Есть причина, по которой Hegelburg — мой самый популярный альбом на Bandcamp. Я не чувствую, что мне нужно говорить больше.
Никиковальский
лмциммерман
бентаграмма
пед_коррл
рыцарьd68
2Bhere4U
COS4EVER
Скрёфс
Джонатан Ли
Зловонная плоть666
Дэвид Хоскинс
АКА Ночной ужас
Лиам Тонер
Эндрю Хилл
Энцо де Мелло
_адский блейзер_
Джонмилоу
Snake_Eyes
Гез Ричмонд
Джонми
KingofMetal79
Дом
дк это мистер баттерфляй
Анги Мари Новацку
ярость
амальгамота
астральный
миль
Олд Гогги
диффрин
Райан
Лэндон
Вест Мэддокс
Лорд Эддард из Дома Фландерс
огоньinjun
сантосадаса
Бром Бримстоун
Пато_бантон
Длинный
Мандрагора
дестатический
грекс эндрюсин
маньякамоббста
ринлин
март1971
дискета фон foxx
Драконы и синтезаторы подземелий
дымка
Джей Пи Би
Капитан Квант
Японияна
Крамплфиш
Ветликс
Нан Хрнандз
вурмфлегм
Джастин Эндрю Мейсон
Адам Пенпраз
ДМИТРИЙ
горнйольф
еще. ..
Теги
Теги
окружающий точно нет подземелье синтезатор звукозаписывающая компания dungeon synth записи синтезаторов подземелий подземелье синтезатор рубашки ленты синтезаторов подземелий древние свитки фантазия средневековый средневековый эмбиент саундтрек вгм музыка из видеоигр СШАконтакт / помощь
Связаться с Dungeons Deep Records
Потоковая передача и
Справка по загрузке
Доставка и возврат
Активировать код
Пожаловаться на этот альбом или аккаунт
Если вам нравится Гегельбург, вам также могут понравиться:
Bandcamp Daily — ваш путеводитель по миру Bandcamp
Essential Releases, 3 марта 2023 г.