можноли записать музыку в Pascal, и если можно то с помощйю чего.
Romtek
8.06.2004 1:28
ручками, Sound и Delay
GLuk
8.06.2004 1:34
Что за странные вопросы? ВАСИК разрабатывали для идиотов с кривыми руками, но даже на нем можно написать стоящую вещь. Да и был вроде такой сабж уже.
Конечно можно, док по портам SB'шника до *опы. Надеюсь под словом записать ты имеешь в виду именно ЗАПИСЬ с внешнего источника?? Но лучше ее записывать спец. прогами ;)
serge2k
8.06.2004 3:00
Sound(t); t - высота нужного тебе звука Чтобы остановить звучание используй процедуру nosound; Время, которое должена звучать нота указываешь в процедурке delay(n); n - время в миллисекундах Все звуки будут раздаваться из внутреннего динамика(пищалки)
CJ
8.06.2004 17:12
Человек спрашивает про музыку, а не про это гадкое писщание спикера. Если музыка, то надо работать со звуковой картой, а для этого уже надо юзать встроенный асм. Записывать звук надо через микрофон, сначала собрать звуковой поток в одну кучу. Это чисто теория. Для практики, зайди ко мне на сайт, там вразделе исходники(Delphi\Pascal), есть пару модулей для работы с музыкой.
Altair
8.06.2004 17:58
Есть 2 способ. Использовать 32 битные компиляторы паскаля. Под них есть замечательная звуковая библиотека BASS.
CJ
8.06.2004 19:06
Тем более, а где Win32, там и Api.
BlackShadow
11.06.2004 16:25
А где API там и PlaySound А на сырцах смотрел? Там много чего для распеваний всяческих имеется.
Гость
9.11.2007 2:25
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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.