IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> музыка в Pascal
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5

Репутация: -  0  +


можноли записать музыку в Pascal, и если можно то с помощйю чего.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


ручками,
Sound и Delay


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Что за странные вопросы? blink.gif
ВАСИК разрабатывали для идиотов с кривыми руками, но даже на нем можно написать стоящую вещь. angry.gif
Да и был вроде такой сабж уже.

Конечно можно, док по портам SB'шника до *опы. Надеюсь под словом записать ты имеешь в виду именно ЗАПИСЬ с внешнего источника??
Но лучше ее записывать спец. прогами ;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 10

Репутация: -  0  +


Sound(t);
t - высота нужного тебе звука
Чтобы остановить звучание используй процедуру
nosound;
Время, которое должена звучать нота указываешь в процедурке
delay(n);
n - время в миллисекундах
Все звуки будут раздаваться из внутреннего динамика(пищалки)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 84
Пол: Мужской

Репутация: -  2  +


Человек спрашивает про музыку, а не про это гадкое писщание спикера.
Если музыка, то надо работать со звуковой картой, а для этого уже надо юзать встроенный асм. Записывать звук надо через микрофон, сначала собрать звуковой поток в одну кучу. Это чисто теория. Для практики, зайди ко мне на сайт, там вразделе исходники(Delphi\Pascal), есть пару модулей для работы с музыкой.


--------------------
* Origin: "It's MY LIFE!!! © Jhon Bon Jovi"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Есть 2 способ. Использовать 32 битные компиляторы паскаля. Под них есть замечательная звуковая библиотека BASS.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 84
Пол: Мужской

Репутация: -  2  +


Тем более, а где Win32, там и Api.


--------------------
* Origin: "It's MY LIFE!!! © Jhon Bon Jovi"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






А где API там и PlaySound smile.gif
А на сырцах смотрел? Там много чего для распеваний всяческих имеется.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






F=Round(440*Exp(Ln(2)*(No-(10-Nn)/12)));
где No - номер октавы -3<= No <=4; Для основной октавы No=0.
Nn - номер ноты 1 - До, 2 - До#, 3 - Ре, и т. д. 12 - Cи.
вот так делаются ноты, но что бы не писать это для каждой ноты, моим модулем можно сделать как бы нотный стан и использовать только процедуру сануд с указанной нотой

Принцип работы:

1)Подключаем модуль
Uses Musik;

2)В разделе переменных задаем 5 массивов
Var
mus,mus1,mus2,mus_1,mus_2:array [1..12] of integer;
(Примечание! Элементов массива должно быть только 12! Они соответствуют номерам каждой ноты!)

3)в тексте основной программы вызывается процедура
New_song(i,mus,mus1,mus2,mus_1,mus_2);
где i - не нужный параметр, но его необходимо задавать, вместо i можно подставить любую переменную
типа integer;

После выполнения процедуры ваши массивы будут заполнены нотами, соответственно:
mus - 12 нот 0-вой октавы
mus1 - 12 нот 1-й октавы
mus_1 - 12 нот -1 октавы
(12- всмысле идет нота До, потом До диез, Ре и т.д.......
0-ая октава - это имеется ввиду начальная октава, 1 октава - вверх,
-1 октава - на 1 октаву вниз)
________________________________________________
откомпилируйте это в модуль:
Unit Musik;

Interface
Uses Crt;

Procedure New_song(i:integer;var mmus,mmus1,mmus2,mmus_1,mmus_2:array of integer);

Implementation
Procedure New_song;


BEGIN
i:=1;
While i<=12 do
begin
mmus[i]:=round(440*exp(Ln(2)*(0-(10-i)/12)));
inc(i);
end;

i:=1;
While i<=12 do
begin
mmus1[i]:=round(440*exp(Ln(2)*(1-(10-i)/12)));
inc(i);
end;

i:=1;
While i<=12 do
begin
mmus2[i]:=round(440*exp(Ln(2)*(2-(10-i)/12)));
inc(i);
end;

i:=1;
While i<=12 do
begin
mmus_1[i]:=round(440*exp(Ln(2)*(-1-(10-i)/12)));
inc(i);
end;

i:=1;
While i<=12 do
begin
mmus_2[i]:=round(440*exp(Ln(2)*(-2-(10-i)/12)));
inc(i);
end;
end;
end.


Сообщение отредактировано: Lapp -
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 11:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name