SecondReason

SecondReason

Пикабушник
35 рейтинг 1 подписчик 0 подписок 5 постов 0 в горячем
Награды:
10 лет на Пикабу
7

Музыка из кейгенов. Как это работает? (взято с хабрахабр)

Многие возможно сталкивались с такими программами кейген и знают что такое музыка из кейгенов. Кто не знает, милости прошу к ознакомлению.

Еще давно очень многих интересовал один вопрос: «Эта программа занимает всего 100 кб, что за музыку она воспроизводит? Как это работает?»




Так вот, называется это чудо – Трекерная музыка. И что самое главное – она занимает очень мало места, в отличие от .mp3 или .wav. В современных популярных ОС трекерные файлы (MOD, XM, S3M, IT и пр.) проигрываются большинством медиаплееров, например, Winamp, VLC, Amarok, Audacious и другими.




Скачать такую музыку можно, например отсюда — keygenmusic.net/, или отсюда www.modarchive.org/. Это отнюдь не единственные ресурсы, стоит только обратиться к поиску.




Для того, чтобы воспроизвести такую музыку в своей программе, нам потребуется минимальное знание C++, а также minifmod, доступный в исходниках. Как заявляют разработчики, minifmod добавит всего 50 кб к вашему exe-файлу (без учета сжатия).




Итак, краткая теория закончилась, приступаем к программированию. Для наших тестов – скачиваем все необходимое отсюда www2.zippyshare.com/v/26128618/file.html (в архиве исходники тестового проекта, сам minifmod, один музыкальный файл, конвертер, и пр.)




Этап 1. Нам необходимо заполучить композицию в формате *.xm либо* .mod (eсли у вас файл в формате *.mod – его необходимо перевести в формат .xm, воспользовавшись конвертором mod2xm)




Этап 2. Затем открываем Table extractor, меню File – Load и указываем наш файл *.xm. Настройки будут следующие:

После нажатия на кнопку Go!, в папке с файлом .xm, появится файл Result.txt. Переименуйте его в music.h и замените файл \loadmusic\music.h. В этом файле наш музыкальный трек, который мы будем воспроизводить.




Этап 3. Создаем новый проект, и подключаем к нему всё, что лежит в lib и loadmusic. Будем выглядеть это примерно так:

Этап 4. Т.к. в проекте файлы в старом стиле “C”, то студия требует, чтобы были отключены Precompiled Header, для этого в свойствах проекта их отключаем (в Visual Studio -> свойства поекта -> C/C++ — Precompiled Headers — Not Using Precompiled Headers)




Этап 5. Самое главное – осталось только включить музыку и пусть играет ))) Исходный файл точки входа у меня получился следующий:


#include <iostream>




#include "loadmusic\loadmusic.h"


#include "lib\minifmod.h"




#define WIN32_LEAN_AND_MEAN // this will assume smaller exe




FMUSIC_MODULE *mod; // fmod music handler




using namespace std;




int main()


{


cout << "Press 'p' to play music " << endl << "'s' to stop" << endl << "'e' to exit" << endl;




char i('p');


do


{


switch(i)


{


case 'p':


if (mod == NULL) // mod handle is free? (thouh it will work fine with other loaded audio devices)


{


// We defined our music file to be loaded in LoadMusic.cpp //


//=============================================================//


loadmusic(); // Call & set ready memory to load the music


if(!FSOUND_Init(44100, 0)) // intialize memory for sound


{


return 1;


}




mod = FMUSIC_LoadSong(NULL, NULL); // handle = LoadSong()


FMUSIC_PlaySong(mod); // Play it (from memory)


}




break;


case 's':


if (mod != NULL) // handle is loaded (playing)?


{


FMUSIC_FreeSong(mod); // Free memory (handle)


FSOUND_Close(); // Close it (stop it from playing)


mod=NULL; // make handle to be Free again


}


break;


}




cin >> i;


}


while(i != 'e');



if (mod != NULL) // music is on?


{


FMUSIC_FreeSong(mod); // Free it from memory (the handle - "mod")


FSOUND_Close(); // Close Music


}




return 0;


}




* This source code was highlighted with Source Code Highlighter.

По-умолчанию музыка начинает сразу же играть. Если ввести ‘s’ – то она прекращается, ‘e’ – выходим из программы.




Какой же размер файла получился?


Тестирование проводил на VS 2010 Express Edition. Я установил использование статической линковки, после чего получился exe размером 166 кб. Для того, чтобы уменьшить размер – сжимаем его с помощью upx, с максимальной степенью сжатия -9. После сжатия файла, на выходе – файл размером 84 кб, что довольно неплохо!

Оригинал статьи: http://habrahabr.ru/post/105475
Автор: Сергей Григорьев

Показать полностью 2

Когда родители не понимают что ты слушаешь...

(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ru_RU/sdk.js#xfbml=1&version=v2.3"; fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));Detonace!!Co se stane kdy zkombte Katharsyse a Chalupe?Totln DETONACE! :DDDPosted by Noise Facktor Crew on 6 октября 2015 г.
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества