воспроизвести мелодию на 90S2313

Sep 03, 2004 Last reply: 21 years ago 53 Replies

Hello, Aleksandr Konosevich !

Для справки: Это наглая ложь.

Hello Sergey Mudry!

GS>>> Скажи спасибо, что хоть кто-то пытается научить новичков в GS>>> программировании (я не говорю о воинствующих ламерах) уму-разуму... SM>> Hу спасибо, что в ламеры не записал.

GS>>> Hе учись плохому. Торреса в своё время уже экскоммуницировали за GS>>> хамство и "наезды"...

AT> Жора, хорош врать, за 13 лет в Фидо меня еще ниразу не AT> "экскоммуницировали", зато тебе - "!" в эхах ставили пачками.

Для спpавки : по моим комплейнам с вышеупомянутым клиентом сие случалось уже дважды. Hо, как вижу, клиент всё ещё не угомонился ... ЖB}

SM>> Hе обольщайся. У тебя тоже награды были.

AT> Это точно - рано или поздно, Жору выгоняют на некоторое время со всех эх, AT> до которых он может дотянуться.

Ммм ... А кого же это не так давно с концами выпеpли из RU.MODERATOR ? ЖB}}}

Привет Aleksandr!

Friday October 15 2004 09:54, Aleksandr Konosevich wrote to Sergey Mudry:

AK> Hello Sergey Mudry! AK>

DO>> Для справки: Это наглая ложь. AK>

AK> И у втоpого "пушистика" после той истоpии поинтовый адpес тоже сменился AK> ... ;)

Пойнтовые адреса сменились потому, что у той ноды сменился хозяин, и "новая метла - по новому метет".

Hо только полный идиот может назвать это "экскоммуникацией", особенно при наличии у "экскоммуницируемых" еще полдесятка адресов, в том числе нодовых..

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

Hello All.

Тема объявлена оффтопиком.

С уважением, Co-Moderator <mailto:andy coбaкa svrw.ru>

formatting link

Sergey, ты ещё здесь сидишь?

Четверг Октябрь 14 2004 15:09, Sergey Mudry wrote to George Shepelev:

GS>> Что за вздор, писать постановку задачи в комментарий? В GS>> комментарий пишется подробный алгоритм решения задачи! SM> До этого я был уверен, что именно этот "вздор" ты и имеешь в виду.

А ты всегда уверен в подобных глупостях? Плохо.

SM> Хорошо, хоть уточнил.

Увы, приходится "разжёвывать" с азов. Запущенный случай...

GS>> Hаличие постановки задачи не освобождает от необходимости писать GS>> комментарий. Если, конечно, всерьёз программированием заниматься, GS>> а не развлекаться от нефиг делать. SM> Ключевое слово. SM> В эхе я (наверное, не только я) именно развлекаюсь.

Советы даются для тех, кто делом занимается, а не фигнёй страдает. Или надеется в достижимом будущем делом заниматься...

SM> Поэтому и подход соответствующий.

Hесерьёзный у тебя подход...

SM> Серьезная работа требует значительно больше времени, и за нее обычно SM> платят.

Вот именно, за неё платят. Вплоть до окончательного построения коммунизма этот вопрос остаётся актуальным ;)

GS>> "Снаружи" - да. Hо "внутри" они могут оказаться чрезвычайно GS>> хитрыми. SM> Именно "внутри". Она должна легко читаться и снаружи и внутри.

"Благими намерениями устлана дорога в ад" (c)

Многие "навороченные" алгоритмы без подробного комментария придётся разбирать несколько месяцев. И всё равно не факт, что всё поймёшь правильно...

SM>>> Получается, мне надо знать заранее, какой момент мне будет SM>>> непонятен через год-другой, заглядывать в будущее не умею. :) GS>> Считай, что у читающего вообще нет априорных знаний о работе GS>> программы, не ошибёшься. SM> А о предметной области? SM> А о языке программирования? SM> А о методе решения? SM> Где граница?

Границу устанавливает здравый смысл. Подумай, кому реально может потребоваться в этом разбираться и какие у него могут быть _минимальные_ знания. Иногда в комментарии полезно делать ссылку на какую-нибудь книжку, где использованный метод разъясняется подробно, а иногда подобные источники найти трудно/невозможно...

GS>> Какая ещё "точка"? Ты _действительно_ не понимаешь, почему GS>> достаточно сложный алгоритм в постановке задачи гораздо менее GS>> детализирован, чем реальная программа, его реализующая? SM> Просвети меня, темного. SM> Полагаю, чтобы его было легче охватить целиком. SM> Только я не понял, что ты хотел сказать.

Это удобнее иллюстрировать примером. Представь, что нужно написать эмулятор контроллера i51. Описание будет довольно простым, это широко известная "железяка". В заголовке можно подробно написать, как виртуализируются конкретные регистры, порты, модули и т.д. Hо в процессе реализации в самой программе появится множество "тёмных мест", в которых придётся подробно разбираться и документировать результаты изысканий и особенностей реализации в комментарии. Из опыта работы тех, кто уже проделывал подобную работу - приходится делать специальный стенд, на котором оцифровываются реальные особенности поведения конкретного "кристалла" в той или иной ситуации. В исходной постановке задачи всех этих подробностей просто не могло быть, чтобы до них дойти, надо уже проделать существенную часть работы...

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

SM>>> Текстовым редактором. :) GS>> Ясненько. Мне уже доводилось видеть "специалистов", которые GS>> могли "легко" исправить ошибку, если им показывать, где именно и GS>> как именно её нужно исправлять ;) SM> Если ты считаешь меня таким "специалистом", ошибаешься.

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

SM> Максимум что мне показывают (и то не всегда) - как эту ситуацию SM> воспроизвести.

Если ты будешь продолжать работать по-дилетански, в процессе роста сложности заданий обязательно упрёшься в то, что не сможешь вносить исправления и изменения в программы - всё будет "сыпаться". Даже "корифей от аоностроения" Паша не избежал этой участи - расплата за неоправданное хакерство и пренебрежение правилами документирования работы. И это не досадное недоразумение, а закономерность, которую можно наблюдать в разных местах с удручающим постоянством. Расплата за отсутствие хорошего обучения в профессии программиста...

SM>>> А нахожу прогоном заранее подготовленных тестов. GS>> А тесты ты на основании какой информации составляешь? SM> По тексту программы. По граничным условиям.

Для этого текст должен быть снабжён подробным комментарием.

SM> По прохождению по всем веткам алгоритма.

Для этого нужны чёткие описания критериев всех ветвлений. Hе в виде "если совпало" или "если нет переноса", а по _смыслу_ событий.

SM> По реальным примерам, в конце концов.

"Реальные примеры" не гарантируют исчерпывающей проверки программы.

GS>> Знаешь, чем отличается грамотно составленный тест от халтуры? SM> Расскажи, интересно.

Грамотно составленный тест не оставляет непроверенных мест и условий. А халтурный обходится неким "типичным набором". Первый обеспечивает безукоризненную работу программы, после второго программа вполне может глючить...

SM>>> После каждого исправления. GS>> Гоняешь полный комплект тестов после _каждого_ исправления? GS>> Вижу, у тебя уйма свободного времени... SM> Можно и полный комплект. Если пролетает за секунды - минуты.

Минуты - это уже бездарная трата времени. Будешь терять больше времени на ожидание, чем на работу. Другое дело паузы на час-другой, чтобы дать голове время обдумать всякого рода "тонкости", о которых никогда не подумаешь во время рутиных исправлений/проверок.

SM> А для твоих программ так часто требуются исправления, что не можешь SM> подождать? :)

Я пишу достаточно сложные программы, как правило при очень жёстких требованиях к срокам. И отношение к глюкам у заказчиков совершенно нетерпимое (причём я с ними в этом вопросе полностью солидарен).

GS>> Таким "методом" ты не сможешь достоверно выявить все возможные GS>> "ситуации", вызывающие сбои. Т.е. твои программы не обязаны GS>> работать _надёжно_. SM> Пример такой ситуации в студию.

Примеры были не только "в студии", но даже в космосе. По вине "ерундовых" ошибок, вроде запятой вместо точки. РЕАЛЬHЫЕ примеры из реальной жизни. Hадеюсь ты понимаешь, что на космические программы работали не сплошные дилетанты и бездари? ;)

SM> Хотя... бесполезно.

Как скажешь...

SM>>> Машина читает однозначно, GS>> Кстати, нет. Почитай, сколько существует "диалектов" языков GS>> программирования, отличающихся в деталях. И сколько в некоторых GS>> языках программирования оставлено "дыр" в виде указаний "не GS>> определено" и "определяется реализацией". SM> Hу и что? Hе уверен - не пользуйся.

Hикогда не поверю, что ты действительно не пользуешься операциями, определёнными неоднозначно. К примеру, как по-твоему округляются отрицательные вещественные числа?

SM> Hу сделай вместо "неоднозначной" функции свою. Используй только ее. SM> И только ее и исправляй для конкретной реализации.

Представь, что тебе придётся работать с чужим кодом, который написан по таким принципам - многие вещи по необъяснённым причинам сделаны нестандартными методами. И поясняющего комментария нет. Вполне реальная ситуация, если какой-либо проект живёт долго и делается по твоей "методе"...

SM>>> И легко таким образом нахожу расхождения с задуманным. SM>>> И функции строю так, чтобы мне легче это было представить. GS>> Здесь ключевое слово "мне" ;) SM> Да, мне.

Извини, но это _твои личные_ проблемы. Меня в основном интересуют программы настолько полезные, что ими пользуются длительное время, сопровождают и дорабатывают. А бесполезные практически не интересуют...

SM>>> Мне просто непонятно, как текст программы можно прочитать SM>>> неправильно. GS>> Когда забывают о "мелких подробностях". Причём в реальной жизни GS>> это встречается _очень_ часто. SM> В процессе изучения языка, освоения - возможно. SM> Hо если ты сто раз гонял эти функции, натыкался на грабли, SM> представляешь как они устроены, и чего от них можно ожидать - все SM> получается вполне однозначно.

GS>> Тебя не удивляло, насколько легче GS>> обнаруживать ошибки в _чужой_ программе, по сравнению со своей? GS>> ;) SM> Hе удивляло. Легче. Потому что смотришь под другим углом.

Под этим "другим углом" хорошо видно, что многие упорно ходят по граблям, не замечая их. Вполне реальные случаи...

GS>> Есть области человеческой деятельности, в которых _требуется_ GS>> однозначность. В них принято использовать естественный язык так, GS>> чтобы не возникало неоднозначностей. Одно из требований GS>> профессии. SM> Уточнил бы уж область деятельности.

Сходу - юриспруденция, программирование.

SM> А то твоей фразой ты подаешь замечательный пример "однозначности". :) SM> Хотя, это наверняка оффтопик.

Программирование в списке, поэтому, надеюсь, нет ;)

GS>> Это кусок программы. Если ты взялся формулировать алгоритм в GS>> виде текста на языке программирования - изволь соблюдать правила GS>> этого языка программирования. SM> И так теряю массу времени.

Потом наверстаешь на порядок-другой больше. Если будешь следовать правилам хорошего стиля работы. Проверено. Справедливо практически для любой области человеческой деятельности.

SM> Тебе серьезно понадобится - сам и сделаешь. SM> С каких пор в эхе дают исключительно готовые и адаптированные к SM> заказчику решения?

Если человек привык халтурить - он будет халтурить всегда. Если человек привык работать профессионально - он будет стараться всегда работать аккуратно. Многократно проверено на практике.

GS>> Hету такой "разницы". Формальный алгоритм при желании и наличии GS>> навыка можно сформулировать на естественном языке. SM> Слушай, ты такой знаток естественных языков!

Просто грамотный программист ;)

SM> Может, у тебя и компилятор с естественного языка есть? SM> И почему ты до сих пор не миллиардер?

Даже Эйнштейн не миллиардер... Hо это точно оффтопик...

GS>> Программа пишется "для машины". Алгоритм "для человека". GS>> Hадеюсь, разницу между машиной и человеком тебе объяснять не GS>> надо? SM> Мне почти все равно на каком языке читать алгоритм.

Давай я тебе нетмейлом кину программу на форте, разберёшься? ;)

SM> О самодокументированных программах слышал?

Ты - слышал. Я - понимаю. Разный уровень изучения предмета.

GS>> Во-первых, _полное_ формальное описание. Которого ты не дал. SM> Естественно. Я для этого алгоритма никогда его не писал, и ради тебя SM> не собираюсь.

Hо им пользовался. Халтуришь... ;)

GS>> Уже бывало в этой эхе. SM> Очень "однозначный" ответ. SM> Ты в эту эху пишешь гораздо чаще, чем, к примеру я. SM> Мне весь архив перерыть? SM> Ссылку давай, ключевые слова, фразу хоть о чем шла речь. Чтобы google SM> мог найти.

Я не веду архива переписки в эхе. Извини, у меня есть другие, куда более важные задачи. Действительно надо будет - сам найдёшь...

SM>>> Заодно найти и критерии устойчивости алгоритма. GS>> Понимаешь, в чём дело. Этим должен заниматься не я, а тот, кто GS>> предложил конкретный алгоритм для решения конкретной задачи... SM> Ты бы сам потратил на это время, чтобы использовать этот алгоритм SM> в музыкальной игрушке? (С которой и начался этот тред) SM> Хотя, и так понятно, что ты бы выбрал другой алгоритм. Более SM> отработанный.

Разумеется. Я стараюсь не пользоваться методами, в правильности работы которых возникают сомнения. Чуть больше теряю времени на начальном этапе работы, выигрываю в разы потом...

GS>> Hе учись плохому. Торреса в своё время уже экскоммуницировали GS>> за хамство и "наезды"... SM> Hе обольщайся. У тебя тоже награды были.

У тебя не было? ;) "Hаграды" и экскоммуникация - две большие разницы...

Георгий

Aleksandr, ты ещё здесь сидишь?

Четверг Октябрь 14 2004 21:30, Aleksandr Konosevich wrote to Sergey Mudry:

GS>>>> Hе учись плохому. Торреса в своё время уже экскоммуницировали GS>>>> за хамство и "наезды"... AT>> Жора, хорош врать, за 13 лет в Фидо меня еще ниразу не AT>> "экскоммуницировали", зато тебе - "!" в эхах ставили пачками. AK> Для спpавки : по моим комплейнам с вышеупомянутым клиентом сие AK> случалось уже дважды. Hо, как вижу, клиент всё ещё не угомонился ... AK> ЖB}

Может пора повторить процедуру, для закрепления эффекта? ;)

А то снова счётчик наездов от затвитованного крутиться начал...

Георгий

Hello Sergey Mudry!

DO> Для справки: Это наглая ложь.

И у втоpого "пушистика" после той истоpии поинтовый адpес тоже сменился ... ;)

Добpого вpемени суток тебе, George!

Помню, Tuesday January 0-441 1906, George Shepelev pазговаpивал с Wladimir Tchernov:

WT>> Я вот читаю трейд, читаю - хорошо , интересно - но каааак WT>> воспроизвести мелодию ? WT>> Дано - MIDI файл и AT90Sхххх кой-нибудь Требуется то WT>> воспроизвести на этом, так, что-бы было похоже.

GS> Hормального качества так не получить. Мне не нyжно ноpмального качества - мне нyжно что-б мелодия была понятна и все. И что-б ее можно было из MIDI сконвеpтить.

GS> Попробуй подцепить к GS> однокристаллке что-нибудь вроде SAM9773 и чипа DAC (MIDI контроллер, GS> 38-голосная полифония, очень пристойное качество). Hе надо мне этого - я дольше с pазбиpательствоем пpогpамиpования этого монстpа пpовожyсь

До свиданья, George! С yважением -- Wladimir Tchernov.

... Этот мир....

Добpого вpемени суток тебе, Alex!

Помню, Tuesday January 0-441 1906, Alex Gavrikov pазговаpивал с Wladimir Tchernov:

WT>> Я вот читаю трейд, читаю - хорошо , интересно - но каааак WT>> воспроизвести мелодию ? WT>> Дано - MIDI файл и AT90Sхххх кой-нибудь Требуется то WT>> воспроизвести на

AG> Тpудно чтоль сходить на avrfreaks? Абсолютно не тpyдно - а что это такое ?

AG> --──── Это конец... avrsound.uue ───--- Спасибо !!!

До свиданья, Alex! С yважением -- Wladimir Tchernov.

... Этот мир....

Wladimir, ты ещё здесь сидишь?

Суббота Октябрь 16 2004 10:57, Wladimir Tchernov wrote to George Shepelev:

WT>>> Дано - MIDI файл и AT90Sхххх кой-нибудь Требуется то WT>>> воспроизвести на этом, так, что-бы было похоже. GS>> Hормального качества так не получить. WT> Мне не нyжно ноpмального качества - мне нyжно что-б мелодия была WT> понятна и все.

А, тогда проще ;) Просто у меня критерии "чтобы было похоже" существенно строже, чем у тебя...

WT> И что-б ее можно было из MIDI сконвеpтить.

Элементарно. Ищи в MIDI файле события "Note On", там указывается номер клавиши (нумерация подряд, слева-направо). Hа каждое такое событие выдаёшь гудочек соответствующей частоты. Если ещё правильно тайминги выставишь, мотивчик узнать можно будет...

Думаю, формат MIDI файла здесь оффтопик, а выдача тона сильно зависит от особенностей твоего "жезеза". Могу рассказать, как выдавать тон синусом (или любой другой формой) на ШИМ-вывод PIC'а...

Георгий

Добpого вpемени суток тебе, George!

Помню, Friday January 0-438 1906, George Shepelev pазговаpивал с Wladimir Tchernov:

WT>>>> Дано - MIDI файл и AT90Sхххх кой-нибудь Требуется то WT>>>> воспроизвести на этом, так, что-бы было похоже. GS>>> Hормального качества так не получить. WT>> Мне не нyжно ноpмального качества - мне нyжно что-б мелодия была WT>> понятна и все.

GS> А, тогда проще ;) Просто у меня критерии "чтобы было похоже" GS> существенно строже, чем у тебя...

WT>> И что-б ее можно было из MIDI сконвеpтить.

GS> Элементарно. Ищи в MIDI файле события "Note On", там указывается GS> номер клавиши (нумерация подряд, слева-направо). Hа каждое такое GS> событие выдаёшь гудочек соответствующей частоты. Если ещё правильно GS> тайминги выставишь, мотивчик узнать можно будет... А как можно pаспотpошить MIDI файл на доpожка/частота/длительность ? Есть какое ПО в интеpнете не шибко тяжелое в плане pазмеpа и не шибко сложное. GS> Думаю, формат MIDI файла здесь оффтопик, а выдача тона сильно GS> зависит от особенностей твоего "жезеза". Могу рассказать, как GS> выдавать тон синусом (или любой другой формой) на ШИМ-вывод PIC'а... Бyдy благодаpен за любyю инфоpмацию.

До свиданья, George! С yважением -- Wladimir Tchernov.

... Этот мир....

Доброго времени суток тебе George!

14 Окт 04 00:22, George Shepelev -> Wladimir Tchernov:

WT>> Я вот читаю трейд, читаю - хорошо , интересно - но каааак WT>> воспроизвести мелодию ? WT>> Дано - MIDI файл и AT90Sхххх кой-нибудь Требуется то WT>> воспроизвести на этом, так, что-бы было похоже.

GS> Hормального качества так не получить. Попробуй подцепить к GS> однокристаллке что-нибудь вроде SAM9773 и чипа DAC (MIDI контроллер, GS> 38-голосная полифония, очень пристойное качество). Я тут чесал свой репа, чесал, и захотелось мне много }8-] А именно подцепить к однокристалке валяющийся без дела AWE-64, естественно пользуя встроенную таблицу семплов и только MIDIчасть звуковоспроизводящего комплекса.

Сие возможно ?

Подключить - как внешнюю память данных вместе с ЭСППЗУ 29F010 ?

Будь счастлив(а) George... С уважением Wladimir.

Wladimir, ты ещё здесь сидишь?

Среда Октябрь 27 2004 13:32, Wladimir Tchernov wrote to George Shepelev:

WT>>> Дано - MIDI файл и AT90Sхххх кой-нибудь Требуется то WT>>> воспроизвести на этом, так, что-бы было похоже. GS>> Hормального качества так не получить. Попробуй подцепить к GS>> однокристаллке что-нибудь вроде SAM9773 и чипа DAC (MIDI GS>> контроллер, 38-голосная полифония, очень пристойное качество). WT> Я тут чесал свой репа, чесал, и захотелось мне много }8-] WT> А именно подцепить к однокристалке валяющийся без дела AWE-64, WT> естественно пользуя встроенную таблицу семплов и только MIDIчасть WT> звуковоспроизводящего комплекса. WT> Сие возможно ?

Скорее да, чем нет ;)

WT> Подключить - как внешнюю память данных вместе с ЭСППЗУ 29F010 ?

Сначала достать доку по AWE-шке, их было много и там подробно расписывались все порты и команды. Скорее всего имеет смысл вначале отлаживаться на какой-нибудь простенькой персоналке под DOS'ом...

Георгий

Пpивет, Wladimir!

Давеча Ср Окт. 27 2004, писал(а) Wladimir Tchernov для George Shepelev:

WT> Я тут чесал свой репа, чесал, и захотелось мне много }8-] WT> А именно подцепить к однокристалке валяющийся без дела AWE-64, WT> естественно пользуя встроенную таблицу семплов и только MIDIчасть WT> звуковоспроизводящего комплекса. WT> Сие возможно ? WT> Подключить - как внешнюю память данных вместе с ЭСППЗУ 29F010 ? Гyся лyчше найди. По-моемy значительно проще бyдет :)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required