Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Как дать проекту жизнь?   Найти похожие ветки 

 
konstantinov ©   (2004-03-09 21:44) [0]

Это мой первый более менее серьезный проект. Очень много вопросов и мало ответов.
Сначала вкратце идея: « Тестирование слуха с помощью ПК в домашних условиях». Идея далеко не нова, но тем, что я находил интернете, я остался крайне недоволен. Я не хочу методику, давно существующую в клиниках. Эта методика позволяет только констатировать факт ( снять АЧХ слуха пациентов ). Причем только с использованием строго фиксированных частот.
Недавно я познакомился с методикой самооздоровления организма М.С. Норбекова и понял, нужно писать программу-тренажер, Шаг за шагом позволяющую улучшить восприятие информации через органы слуха. Пишу на свой страх и риск методом проб и ошибок с единственным подопытным кроликом – самим собой.
Теперь собственно вопросы, которые хотел задать Вам, как съевшим собаку по части софтверного бизнеса. Я не планирую продавать свое детище ( по крайней мере до тех пор, пока она не будет достаточно профессиональной ).
Вопросы:
1. Где и как разместить мои наработки в сети, чтобы привлечь внимание  пользователей и ведущих параллельные разработки людей ( а может быть даже потенциальных работодателей )? Народ.ру?
2. Может ли дотянуться до меня дядюшка Сэм или наше отечественное законодательство, если я используя не лицензионный Delphi попытаюсь распространять свои программы?. И что мне за это светит?
3. Я хочу выложить сюда куски кода, которые использую для синтеза звука и работы с микшером звуковой карты с просьбой прогнать это на своих компьютерах ( работает ли под всеми версиями Windows и различными звуковыми картами ) и ( или ) дать свои комментарии ( ткнуть носом в грубые ошибки, в частности по части использования функций API. Лично у меня ни разу программа не завершалась аварийно при использовании этих функций и я не счел нужным вводить в код все мыслимые проверки допустимости аргументов функций и отслеживаю только иногда mmResult для вывода сообщений о возникших ошибках.

Ну вот вроде бы пока и все. Заранее благодарен за любое соедйствие.


 
Petr V. Abramov ©   (2004-03-09 23:10) [1]

1. Где угодно, главное, чтоб в поисковиках отображалось не в самом конце. Если по этому поводу есть много (больше одной страницы Yandex/Google) коммерческих наработок, это, IMHO, без денег сложно, но возможно. Еще попробовать договориться насчет ссылок/банеров с владельцами сайтов, на которые ходят потенциальные пользователи. Опять же, проблема существования коммерческих наработок.
2. Может. Только, если продукт некоммерческий, Вы им нахрен на нужны. Но с подачи тех, кто на подобных продуктах делает деньги, возможно все.
3. Может, кто и возьмется. А может, и нет. IMHO, 50/50

P.S. По части софтверного бизнеса собак не ел, исхожу из здравого смысла и некоторого жизненного опыта.

 А по-человечески желаю, чтоб у Вас все получилось и звезды всали как надо/


 
Феликс ©   (2004-03-09 23:30) [2]


> Шаг за шагом позволяющую улучшить восприятие информации
> через органы слуха.

Если программа действительно поможит улучшить восприятие через органы слуха, то желаю удачи, это действительно хорошее дело. Как только вы опубликуете эту программу, просьба киньте ссылку в этом форуме, если программа не сильно большая я думаю обязательно ее скачаю.


 
Gero ©   (2004-03-09 23:42) [3]

> konstantinov ©   (09.03.04 21:44)

1. Вот некоторые наиболее популярные софт-порталы, где Вы можете разместить свою прогу или ссылку на нее:

Русские:
http://www.freesoft.ru
http://www.listsoft.ru
http://www.shareware.ru
http://www.softnew.ru
http://www.neosoft.ru
http://www.softbox.ru
http://www.softodrom.ru
http://www.wadim.ru
http://www.softportal.com
http://www.softlinks.ru

Английские:
http://www.tucows.com
http://www.download.com
http://www.softpedia.com
http://www.popularshareware.com
http://www.download-freeware-shareware.com
http://www.fileflash.com
http://www.filehungry.com
http://www.ezgoal.com
http://www.sofotex.com
http://www.softwarecenter.ch
http://www.filetransit.com
http://www.softaward.com
http://www.onekit.com


 
Gero ©   (2004-03-09 23:43) [4]

Sorry, правильно читать не "Английские", а "Зарубежные"


 
konstantinov ©   (2004-03-10 01:33) [5]

to all >
 Благодарю за поддержку!
 Большое спасибо за ссылки!
 На счет программы... вряд ли она будет слишком болшой ( если конечно не придется лепить бантики, ленточки и пр. для привлечения угрюмых покупателей ) Самая не столько сложная, сколько туманная часть - анализ действий пользователя. Слишком большой разброс результатов при одинаковых входных параметрах...
 Насчет улучшения восприятия. Прога только "таблица для проверки". Сделанная по аналогии с таблицей для проверки зрения ( буквы различного размера разглядывают с различного расстояния и нужно выбрать строчку ниже которой буквы расплываются )


 
Dmitriy O. ©   (2004-03-10 07:19) [6]

Проще вставить в уши микрофон и тем самым значительно более чем ваша прога увеличить восприятие инфы через ухи. Даже можно воспринимать что соседи за стенкой делают !


 
konstantinov ©   (2004-03-10 20:27) [7]

Dmitriy O. ©   (10.03.04 07:19) [6]
Есть такое! Называется кох...какая-то имплантация. Минуя пораженный слуховой нерв вживленный звуковой процессор передает электрические импульсы в среднее ухо. Стоит эта бадяга 25000$.

> Даже можно воспринимать что соседи за стенкой делают !

Раньше я с трудом мог разобрать слова человека с писклявым голосом, сидя через стол от него. Недавно поймал себя на том, что слышу фортепиано двумя этажами ниже. Не знаю как для Вас, а для меня это - фантастика!!!


 
Юрий Зотов ©   (2004-03-10 21:08) [8]

> Dmitriy O. ©   (10.03.04 07:19) [6]
> Проще вставить в уши микрофон...
> Даже можно воспринимать что соседи за стенкой делают!

Эх, вот если б еще встроить в глаз видеокамеру...


 
ИМХО ©   (2004-03-10 21:14) [9]


> Gero ©   (09.03.04 23:42) [3]
> 1. Вот некоторые наиболее популярные софт-порталы, где Вы
> можете разместить свою прогу или ссылку на нее:
>
> http://www.download.com


Батенька, что же вы советуете-то? Листинг на download.com стоит 79 убитых ентов (самый дешевый). А у него софт (пока) некоммерческий.


 
ИМХО ©   (2004-03-10 21:16) [10]

енотов то бишь.


 
Warrior ©   (2004-03-10 21:25) [11]

> ИМХО ©   (10.03.04 21:14) [9]

1. Где и как разместить мои наработки в сети, чтобы привлечь внимание  пользователей и ведущих параллельные разработки людей ( а может быть даже потенциальных работодателей )?

Где здесь сказано, что это всё должно быть на халяву? ;)


 
ghg ©   (2004-03-10 21:26) [12]

да не забудь ссылку выложить
а то мне может понадобится


 
konstantinov ©   (2004-03-10 23:50) [13]

Ссылки обязательно выложу! Блин! Вякнул и в кусты...( это я про себя!) Сейчас сяду чистить код постараюсь сегодня положить в кладовку кое-что.


 
konstantinov ©   (2004-03-11 01:49) [14]

Черт! А кладовка то тю тю!
Рискну привести код прямо здесь!
Благо не очень большой.
Это генератор ЗЧ.
Больше всего интересует будет ли это работать под всеми версиями Windows?
Посмотрите please качество кода. Я тут поэкспериментировал…
с указателями, с процедурными типами… может так нельзя?
Очень хочется знать мнение мастеров.

Unit WaveControl;

interface

uses mmSystem, Windows, Classes, Dialogs, SysUtils;

const
 //Коды ошибок ( см. также MMResult )
 WCERR_NOERROR          = MMSYSERR_NOERROR; //Нет ошибок
 WCERR_NOGETMEM         = 100;              //Ошибка распределения памяти
 WCERR_NORANGE          = 101;              //Выход за пределы диапазона
 WCERR_INVALID_VALUE    = 102;              //Недопустимое значение параметра
 WCERR_ACCESS_VIOLATION = 103;              //Нарушение прав доступа
 //Константы добавлены чтобы не добавлять mmSystem в модуль, где используется плэйер
 WCERR_ALLOCATED        = MMSYSERR_ALLOCATED;
 WCERR_BADDEVICEID      = MMSYSERR_BADDEVICEID;
 WCERR_NOTENABLED       = MMSYSERR_NOTENABLED;
 WCERR_NODRIVER         = MMSYSERR_NODRIVER;
 WCERR_NOMEM            = MMSYSERR_NOMEM;
 WCERR_BADFORMAT        = WAVERR_BADFORMAT;
 WCERR_INVALHANDLE      = MMSYSERR_INVALHANDLE;
 WCERR_UNPREPARED       = WAVERR_UNPREPARED;
 WCERR_NOTSUPPORTED     = MMSYSERR_NOTSUPPORTED;
 WCERR_STILLPLAYING     = WAVERR_STILLPLAYING;

type
 //Пользовательская процедура заполнения буффера данных
 TBufferEvent = procedure ( const P : Pointer; const BufSize,Num,SampleRateBits,Bits,Channels : DWORD);
 //Режим устройства
 TSoundMode = (smError,smClear, smClose, smOpen, smPlay, smRecord);
 //Информация об устройстве
 TSoundInfo = TWAVEOUTCAPS;
 //Генератор Звуковой частоты
 TWavePlayer = class ( TObject )
    constructor Create;
    destructor Destroy; override;
  private
    fWaveOut     : HWAVEOUT;           //Хендел устройства
    fWaveFmtEx   : PWAVEFORMATEX;      //Структура, хранящая параметры дискретизации
    fWaveHdr     : array of PWAVEHDR;  //Массив заголовков буфферов
    fBuffer      : array of PChar;     //Буфферы данных
    fBufCount    : DWORD;              //Количество буфферов
    fBufSize     : DWORD;              //Размер каждого буффера ( байт )
    fMode        : TSoundMode;         //Режим устройства
    fDeviceCount : DWORD;              //Количество доступных устройств
    fDeviceID    : UINT;               //Индекс текущего устройства
    fMaxFrequency: word;               //Максимально допустимая чпастота сингала ( Гц )
    fMaxVolume   : word;               //Максимально допустимый уровень сигнала ( кол-во
    fErrorCode   : DWORD;              //Код последней ошибки
    fBufExecute  : TBufferEvent;       //Пользовательская процедура заполнения буффера
    fNext        : boolean;            //Флаг, разрешающий воспроизведение следующего буффера
    fBufDuration : TDateTime;          //Время звучания ( ms )
    fStartTime   : TDateTime;          //Время начала обработки данных
    fTimeOut     : boolean;            //Тайм аут. флаг недопустимо медленной обработки данных
    procedure WaveOutProc(hW:HWAVE; uMsg,dwParam1,dwParam2:DWORD);//Процедура обработки сообщений устройства ( см. также WaveOutPrc )
    function GetSampleRate : DWORD;
    function GetBits : DWORD;
    function GetChannels : DWORD;
  public
    TimePlayer : TDateTime;
    TimeLoading : TDateTime;
    property BufCount : DWORD read fBufCount;
    property BufSize : DWORD read fBufSize;
    property Mode : TSoundMode read fMode;
    property SampleRate : DWORD read GetSampleRate;
    property Bits : DWORD read GetBits;
    property Channels : DWORD read GetChannels;
    property DeviceCount : DWORD read fDeviceCount;
    property DeviceID : UINT read fDeviceID;
    property MaxFrequency : word read fMaxFrequency;
    property MaxVolume : word read fMaxVolume;
    property ErrorCode : DWORD read fErrorCode;
    property BufExeute : TBufferEvent write fBufExecute;
    function Clear: DWORD;
    function Setup ( const BufSize,BufCount,SampleRate,Bits,Channels : DWORD ):DWORD;
    function Open ( const DeviceID : UINT ): DWORD;
    function Play : DWORD;
    function Stop : DWORD;
    function Close : DWORD;
    procedure GetDeviceInfo( const DeviceID : UINT; var Info : TSoundInfo );
  end;

implementation

procedure WaveOutPrc(hW:HWAVE; uMsg:DWORD;dwInstance:DWORD;dwParam1:DWORD;dwParam2:DWORD);stdcall;
begin
 TWavePlayer(dwInstance).WaveOutProc(hW,uMsg,dwParam1,dwParam2);
end;

{ TWavePlayer }

constructor TWavePlayer.Create;
begin
 GetMem(fWaveFmtEx,SizeOf(TWAVEFORMATEX));
 if fWaveFmtEx = nil then
 begin
   fErrorCode := WCERR_NOGETMEM;
   fMode := smError;
 end
 else begin
   fDeviceCount := WaveOutGetNumDevs;
     fErrorCode := WCERR_NOERROR;
     fMode := smClear;
     fNext := false;
 end;
end;

function TWavePlayer.Setup(const BufSize, BufCount, SampleRate, Bits,
 Channels: DWORD): DWORD;
 var I : DWORD;
 h,m,s,ms : word;
begin
 Result := WCERR_NOERROR;
 if (fMode <> smClear)and(fMode <> smClose) then Result := WCERR_ACCESS_VIOLATION
 else begin
   if BufSize    <= 0 then Result := WCERR_INVALID_VALUE;
   if BufCount   <= 0 then Result := WCERR_INVALID_VALUE;
   if SampleRate <= 0 then Result := WCERR_INVALID_VALUE;
   if ( Bits <> 8 )and (Bits <> 16 ) then Result := WCERR_INVALID_VALUE;
   if ( Channels <> 1 ) and ( Channels <> 2 ) then Result := WCERR_INVALID_VALUE;
   if Result = WCERR_NOERROR then
   begin
      Clear;
      SetLength(fWaveHdr,BufCount);
      SetLength(fBuffer, BufCount);
      I := 0;
      while ( Result = WCERR_NOERROR )and( I < BufCount ) do
      begin
         GetMem(fWaveHdr[I],SizeOf(WAVEHDR));
         if fWaveHdr[I] = nil then Result := WCERR_NOGETMEM
         else begin
           GetMem(fBuffer[I],BufSize);
           if fBuffer[I] = nil then Result := WCERR_NOGETMEM
           else begin
             fWaveHdr[I]^.lpData := fBuffer[I];
             fWaveHdr[I]^.dwBufferLength := BufSize;
             fWaveHdr[I]^.dwBytesRecorded := 0;
             fWaveHdr[I]^.dwUser := I;
             fWaveHdr[I]^.dwFlags := 0;
             fWaveHdr[I]^.dwLoops := 0;
             fWaveHd


 
ИМХО ©   (2004-03-11 04:44) [15]

"Вот пуля пролетела, и ага..." (с)


 
Dmitriy O. ©   (2004-03-11 08:47) [16]


> Недавно поймал себя на том, что слышу фортепиано двумя этажами
> ниже.

Скоро дело дойдет до того что придется ходить и спать с пробками в ухах.


 
konstantinov ©   (2004-03-11 19:42) [17]

Робяты! Нэт скис! Правда, правда!
Эх! Блин!
Что называется громко пукнул...
Выложу! Кровь из носа...

А что касается пробок в ухах...
Мжете не переживать! Регулируемо в обе стороны. Хошь возню мышей слышу, не хошь хоть из пушки пали! О-как!


 
ИМХО ©   (2004-03-11 19:49) [18]


> konstantinov ©   (11.03.04 19:42) [17]
> Что называется громко...


Ну зачем же так уточнять...


 
konstantinov ©   (2004-03-11 20:00) [19]

Ай, задел!... Блин!
Ай и чайник-ламер загнул тему!...
Ай посмотрим как ты запоешь оказавшись на моем месте!!!!
С сотней баксов на четыре рта... и с со справкой из ВТЭКа!!!

...

...


 
konstantinov ©   (2004-03-11 20:07) [20]

Чу... остыл...
Я спросил совета.
Спасибо всем.
Обсуждение закрыто...
В том числе и тем, кто свое мнение счтает С-а-а-мым скромным.


 
ИМХО ©   (2004-03-11 20:25) [21]

Мдя... даже не знаю, какого врача рекомендовать...


 
konstantinov ©   (2004-03-11 20:45) [22]

Извини.
Остыл окончательно.
На работе неприятности, а тут ты еще под руку подвернулся...
Беру свои слова обратно... хоть и не вырубишь топором...
Еще раз мне очень жаль, что так получилось! :)



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.24 c
6-1075285650
Васек
2004-01-28 13:27
2004.04.04
Ping


1-1079251428
Sphinx
2004-03-14 11:03
2004.04.04
Свернуть-Развернуть= -2МБ


14-1078421101
wicked
2004-03-04 20:25
2004.04.04
БНФ


3-1078932076
ser k
2004-03-10 18:21
2004.04.04
есть две таблицы


1-1079342294
Jager
2004-03-15 12:18
2004.04.04
Как получить из ярлыка путь файла на который ярлык указывает





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский