|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#16  
			
			
			
			
		 | |||
| 
 | |||
|   Цитата: 
 За основу: http://www.delphisources.ru/pages/so...generator.html Мой вариант: Код: mass := [1000, -1000, 2000];
for i := 0 to Length(mass)-1 do begin
if mass[i] > 0 then begin
  ServiceThread := TServiceThread.Create(False);
  sleep(mass[i]);
  ServiceThread.Terminate;
                    end;
if mass[i] < 0 then sleep(mass[i]);
                                 end;но использовать sleep нельзя! | 
| 
			 
			#17  
			
			
			
			
		 | ||||
| 
 | ||||
|   тебе нужно модифицировать процедуру Generator, последовательно генерируя синусоиду и тишину. при этом увеличить буферы для общего сигнала. | 
| 
			 
			#18  
			
			
			
			
		 | |||
| 
 | |||
|   В процедуре Generator: Код: j: integer; const mass: array [0..2] of integer = (1000, -1000, 2000); Код: for j := 0 to Length(mass)-1 do begin
if mass[j] > 0 then begin
 OmegaC := 2*PI*Freq;
        for I := 0 to Size div 2 do begin
          t := I/44100 + tPred;
          PSmallInt(buf)^ := Round(Lev*sin(OmegaC*t));// ВОЗНИКАЕТ ОШИБКА
          Inc(PSmallInt(buf));
        end;
        tPred := t;
                    end;
if mass[j] < 0 then begin
       for I := 0 to Size-2 do begin
         PSmallInt(buf)^ := 0;
         Inc(PSmallInt(buf));
       end;
       tPred := 0;
       end;
if j = Length(mass)-1 then ServiceThread.Terminate;
                                 end;Возникает ошибка И как делать "задержки", которые в массиве? Последний раз редактировалось lkz_07, 24.12.2013 в 19:35. | 
| 
			 
			#19  
			
			
			
			
		 | |||
| 
 | |||
|   Что в этой строчке не так???? вдоль поперек уже исходил:  Код: PSmallInt(buf)^ := Round(Lev*sin(OmegaC*t));// ВОЗНИКАЕТ ОШИБКА | 
| 
			 
			#20  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 | 
| 
			 
			#21  
			
			
			
			
		 | |||
| 
 | |||
|   Цитата: 
 Его создавать не нужно, он ссылается на переменную из процедуры: Код: procedure Generator(buf : PChar; Typ, Freq, Lev, Size : LongInt; var tPred : Double); | 
| 
			 
			#22  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 Перед вызовом процедуры Generator создаётся буфер? p.s. И какая вообще ошибка появляется в той строке? | 
| 
			 
			#23  
			
			
			
			
		 | |||
| 
 | |||
|   Цитата: 
 Естественно создается. Из выше примера - я изменить - добавил только свой массив... Вложение 4162 | 
| 
			 
			#24  
			
			
			
			
		 | |||
| 
 | |||
|   Видимо мне никто не поможет...   | 
| 
			 
			#25  
			
			
			
			
		 | |||
| 
 | |||
|   может ещё актуально - подобный генератор рабочий где-то скачал, но только если нет полностью всего блока - трудно что-либо сказать |