Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Проекты на MidletPascal

Ответ
 
Опции темы
Старый 19.09.2010, 05:37   #1
Olaola
Оператор ЭВМ
 
Регистрация: 27.01.2009
Сообщений: 21
Написано 2 полезных сообщений
(для 2 пользователей)
Счастье Работа с wave

Давно хотелось зделать что-либо с wave, но было "лень"

И вот свершилось, начал разработку синтезатора (аналового типа), который выдает результат пока в 8 бит и 8 кГц. Может, уже есть подобные проэкты? Иль мнения по этому поводу?



+семплы ударных, воспроизводится (должен)
Вложения
Тип файла: rar WavEr.rar (34.4 Кб, 565 просмотров)

Последний раз редактировалось Olaola, 22.09.2010 в 00:22. Причина: Новая версия
(Offline)
 
Ответить с цитированием
Старый 19.09.2010, 05:54   #2
Olaola
Оператор ЭВМ
 
Регистрация: 27.01.2009
Сообщений: 21
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Работа с wave

Хотите верте хотите нет, но немогу в инете найти нормальное описание amr формата который записывается через диктофон.

очень охота, хоть на англ.
(Offline)
 
Ответить с цитированием
Старый 19.09.2010, 12:32   #3
cherepets
Бывалый
 
Регистрация: 18.08.2009
Сообщений: 745
Написано 146 полезных сообщений
(для 215 пользователей)
Ответ: Работа с wave

начал разработку синтезатора (АНАЛОВОГО типа)
круто! аналовый синтезатор!!!
а насчет формата - бери wav и не порть себе мозг =)
(Offline)
 
Ответить с цитированием
Старый 19.09.2010, 14:12   #4
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Работа с wave

А что за jsr75sie? У меня просто на сенсоре кнопки через одно место сделаны хочу перекомпилить с другими и дудки. Идея клевая).
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 19.09.2010, 15:09   #5
Olaola
Оператор ЭВМ
 
Регистрация: 27.01.2009
Сообщений: 21
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Работа с wave

удали эту библиотеку (jsr75sie - нужна для сименса, для сохранения в файловую систему wave - файла), а мою библиотеку вытащи из jar, и кинь в папку с библиотеками
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Gector (19.09.2010)
Старый 19.09.2010, 15:15   #6
Olaola
Оператор ЭВМ
 
Регистрация: 27.01.2009
Сообщений: 21
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Работа с wave

Сообщение от cherepets Посмотреть сообщение
круто! аналовый синтезатор!!!
а насчет формата - бери wav и не порть себе мозг =)
мне просто охота обработать звук с диктафона, для этого нужно написать конвертер, на j2me - пока нереализовано.


!!!!
У кого есть подобные проэкты?


П.С. волна, в данном проэкте только триугольная(просто реализовать), также присутствует переменная лимит (эффект дисторшн).
(Offline)
 
Ответить с цитированием
Старый 19.09.2010, 17:44   #7
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Работа с wave

На Nokia 5530 не работает. Не помогла перестановка кнопок. Попробую еще несколько вариантов может запустится.
З.Ы. А эта штука в реальном времени синтезирует? Или синтезирует, сохраняет и воспроизводит?
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 21.09.2010, 16:19   #8
abcdef
Знающий
 
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений
(для 123 пользователей)
Ответ: Работа с wave

неплохая программка, хорошо б еще миксер сделать..
вот немного переработал:
(компилировать в последней версии MPC)
function openplayerfromstr(s, mimetype : string) : boolean;
begin
  inline(
  getstatic        field 'P', 'p', 'Ljavax/microedition/media/Player;';
  ifnull           :$0000;
  getstatic        field 'P', 'p', 'Ljavax/microedition/media/Player;';
  invokeinterface  interface 'javax/microedition/media/Player', 'close', '()V', $01, $00;
  :$0000;
  new              class 'java/io/ByteArrayInputStream';
  dup;
  aload_0;
  invokevirtual    method 'java/lang/String', 'getBytes', '()[B';
  invokenonvirtual method 'java/io/ByteArrayInputStream', '<init>', '([B)V';
  aload_1;
  invokestatic     method 'javax/microedition/media/Manager', 'createPlayer', '(Ljava/io/InputStream;Ljava/lang/String;)Ljavax/microedition/media/Player;';
  putstatic        field 'P', 'p', 'Ljavax/microedition/media/Player;';
  getstatic        field 'P', 'p', 'Ljavax/microedition/media/Player;';
  invokeinterface  interface 'javax/microedition/media/Player', 'realize', '()V', $01, $00;
  getstatic        field 'P', 'p', 'Ljavax/microedition/media/Player;';
  invokeinterface  interface 'javax/microedition/media/Player', 'prefetch', '()V', $01, $00;
  iconst_m1;
  ireturn;
  );{}
end;
(****)

var
  data : string;
  key : integer;

procedure sine(q4,time,lim,vol : integer);
const
  tone = 2;
var
  n,d : real;
  i : integer;
begin
  n := 127;
  d := (vol*tone)/q4;
  for i := (q4*tone)*(time+30) downto 0 do
  begin
    if n>(126+vol) then d :=-d
      else if n<(128-vol) then d :=-d;
    n := n+d;
    if (n>(128+vol-lim)) then data := data+chr(128+vol-lim)
      else if (n<(126-vol+lim)) then data := data+chr(126-vol+lim)
        else data := data+chr(trunc(n));
  end;
end;
 
function make(q4,time,lim,vol : integer) : string;
var
  i,len : integer;
begin
  data := '';
  for i:= vol downto vol-4 do sine(q4,time,lim,i{vol});
  {формируем хххх - размер для формата{}
  len := length(data);
  data := 'WAVEfmt '+chr(16)+chr(0)+chr(0)+chr(0)+
          chr(1)+chr(0)+                  {тип формата{}
          chr(1)+chr(0)+                  {число каналов(моно 1){}
          chr(64)+chr(31)+chr(0)+chr(0)+  {8000 Гц{}
          chr(64)+chr(31)+chr(0)+chr(0)+  {8000 байт в сек{}
          chr(1)+chr(0)+                  {1 бит...{}
          chr(8)+chr(0)+'data'+           {разрядность{}
          chr(len and $FF)+chr((len div $100) and $FF)+chr((len div $10000) and $FF)+chr((len div $1000000) and $FF)+data;
  {формируем хххх - размер для формата{}
  len := length(data);
  make := 'RIFF'+chr(len and $FF)+chr((len div $100) and $FF)+chr((len div $10000) and $FF)+chr((len div $1000000) and $FF)+data;  
end;
 
begin
  drawText('make Sound', 0, 0);
  drawText('press 1,2,3', 0, 16);
  repaint;
  repeat
    key := getKeyClicked;
    if key=KE_KEY1 then if (openplayerfromstr(make(15,50,0,80), 'audio/x-wav')) and setPlayerCount(1) and startPlayer then
    begin
      delay(10);
      stopPlayer;
    end;
    if key=KE_KEY2 then if (openplayerfromstr(make(30,50,0,80), 'audio/x-wav')) and setPlayerCount(1) and startPlayer then
    begin
      delay(10);
      stopPlayer;
    end;
    if key=KE_KEY3 then if (openplayerfromstr(make(3,50,0,80), 'audio/x-wav')) and setPlayerCount(1) and startPlayer then
    begin
      delay(10);
      stopPlayer;
    end;
  until false;
end.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Olaola (22.09.2010)
Старый 22.09.2010, 00:20   #9
Olaola
Оператор ЭВМ
 
Регистрация: 27.01.2009
Сообщений: 21
Написано 2 полезных сообщений
(для 2 пользователей)
Радость Ответ: Работа с wave

Ты угадал, то что я задумал.. (теперь +семплы ударных)

Смешивать wave легко даже 16-ти битные,
(по правилу newSoundMix:=Sound1*0.5+Sound2*0.5);

В этой версии реализовано. Интерфейс пока нет смысла делать, т.к. программа еще не выполняет того, что запланировано

П.С.
abcdef, спасибо, но у меня старая версия MP (есть ли смысл скачивать новую? программы написаные на старой будут работать?)

когда разбирусь с 8-ми битным звуком, может возьмусь за 16-ти битный
Вложения
Тип файла: rar WavEr.rar (34.4 Кб, 509 просмотров)
(Offline)
 
Ответить с цитированием
Старый 22.09.2010, 13:54   #10
abcdef
Знающий
 
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений
(для 123 пользователей)
Ответ: Работа с wave

Lib_snd компилированная в MPC011 (050810) и выше.
Вложения
Тип файла: zip openplayerfromstr.zip (1.2 Кб, 510 просмотров)
(Offline)
 
Ответить с цитированием
Старый 23.09.2010, 00:50   #11
Olaola
Оператор ЭВМ
 
Регистрация: 27.01.2009
Сообщений: 21
Написано 2 полезных сообщений
(для 2 пользователей)
Вопрос Ответ: Работа с wave

Сообщение от abcdef Посмотреть сообщение
Lib_snd компилированная в MPC011 (050810) и выше.
А чем эта библиотека лучше той, которую я написал?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 07:17.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com