Автор Гілка: Scratch та Squeak  (Прочитано 4136 раз)

Відсутній ggromko

  • Новачок
  • *
  • дописів: 29
  • Карма: +0/-0
Scratch та Squeak
« : 2009-06-08 18:39:42 »
Шановні, потребую допомоги!
Суть проблеми у слідуючому - група Lifelong Kindergarten  з МІТ випустили Scratch - середовище програмування для дітей, схоже на Logo, але краще. Поширюється як ВПЗ, перекладено на 40 мов (українська в тому числі). Scratch розроблено на Squeak, тому по ідеї повинен запускатись скрізь де є віртуальна машина Squeak. З Windows та MacOS проблем немає, в Linux - є проблеми з відтворенням MIDI та записом звуку. Автори зі ScratchTeam не можуть нічого вдіяти - кажуть проблема з vm-squeak. Може хто допоможе - ми вже й навчальний курс по Скретчу для 5-6 класыв розробили.

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Scratch та Squeak
« Відповідей #1 : 2009-06-08 20:37:35 »
1) MIDI не працюватиме без латання squeak-vm (потрібні знавці SmallTalk).
2) Запис не працюватиме без жахливої (з матюками і погрозами фізичної розправи) масової атаки на Леннарта Петтерінга (автора PulseAudio).

Висновок: поставте один з дистрибутивів 2007 року (часу, коли Red Hat і решта мейнстріму ломанулися на PulseAudio) або Slackware (Gentoo або щось інше, де все збирається без PA).

Використані джерела:
http://info.scratch.mit.edu/Linux_installer
http://scratch.mit.edu/forums/viewtopic.php?id=21&p=3
https://qa.mandriva.com/show_bug.cgi?id=45509
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній ggromko

  • Новачок
  • *
  • дописів: 29
  • Карма: +0/-0
Re: Scratch та Squeak
« Відповідей #2 : 2009-06-10 19:34:29 »
1) MIDI не працюватиме без латання squeak-vm (потрібні знавці SmallTalk).
2) Запис не працюватиме без жахливої (з матюками і погрозами фізичної розправи) масової атаки на Леннарта Петтерінга (автора PulseAudio).

Висновок: поставте один з дистрибутивів 2007 року (часу, коли Red Hat і решта мейнстріму ломанулися на PulseAudio) або Slackware (Gentoo або щось інше, де все збирається без PA).

Використані джерела:
http://info.scratch.mit.edu/Linux_installer
http://scratch.mit.edu/forums/viewtopic.php?id=21&p=3
https://qa.mandriva.com/show_bug.cgi?id=45509

Дякую, зі скрипом пробую щось зробити. Так, є проблема зі squeak-vm (створює міді-порт при звертанні до міді, а по закінченню його ж знищує та навіть не пробує віднайти наявні в системі міді порти)
Із проблемою запису вже "розправився" використавши padsp.
Але хочеться маленький patch  squeak-vm, щоб використовувало порти TiMidity  

Відсутній ggromko

  • Новачок
  • *
  • дописів: 29
  • Карма: +0/-0
Re: Scratch та Squeak
« Відповідей #3 : 2009-06-10 19:38:15 »
До речі, Squeak написано на С, є окремий МІДІ-плагін (теж на С, але не маю достатньої кваліфікації)

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Scratch та Squeak
« Відповідей #4 : 2009-06-10 19:38:26 »
Тут людина стверджує буквально наступне:
Цитата
I hacked an "snd_seq_connect_to(seq, out_port, 128,0)" into the function sqMIDIOpenPort and now I can play notes under linux.

Можливий варіант латки:
--- old/platforms/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc    2007-03-12 01:56:13.000000000 +0200
+++ new/platforms/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc    2009-06-10 19:48:40.000000000 +0300
@@ -119,7 +119,7 @@
 static snd_seq_t *seq      =  0;
 static int       queue    =  0;
 static int       in_port  = -1;
-static int       out_port = -1;
+static int       out_port = 128;

 /* MIDI Parser */
« Змінено: 2009-06-10 19:51:53 від yurchor »
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній ggromko

  • Новачок
  • *
  • дописів: 29
  • Карма: +0/-0
Re: Scratch та Squeak
« Відповідей #5 : 2009-06-10 20:09:16 »
Тут людина стверджує буквально наступне:
Цитата
I hacked an "snd_seq_connect_to(seq, out_port, 128,0)" into the function sqMIDIOpenPort and now I can play notes under linux.

Можливий варіант латки:
--- old/platforms/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc    2007-03-12 01:56:13.000000000 +0200
+++ new/platforms/unix/plugins/MIDIPlugin/sqUnixMIDIALSA.inc    2009-06-10 19:48:40.000000000 +0300
@@ -119,7 +119,7 @@
 static snd_seq_t *seq      =  0;
 static int       queue    =  0;
 static int       in_port  = -1;
-static int       out_port = -1;
+static int       out_port = 128;

 /* MIDI Parser */
Дякую. Те повыдомлення я вже читав, але тоді не надав йому значення. А як його "пропатчити", щоб не компілюати заново весь squeak-vm ?

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Scratch та Squeak
« Відповідей #6 : 2009-06-10 20:37:31 »
Дякую. Те повыдомлення я вже читав, але тоді не надав йому значення. А як його "пропатчити", щоб не компілюати заново весь squeak-vm ?

Збираєте ht і відкриваєте /usr/bin/squeak Дизасемблюєте. Шукаєте out_port. Якщо знайшли, вам поталанило: міняєте PUSH. Якщо не знайшли... Доведеться перезібрати, а потім, якщо запрацює, настукати куди слід (qa.mandriva.com). Чекати оновлення.  ;)
« Змінено: 2009-06-10 20:37:46 від yurchor »
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Scratch та Squeak
« Відповідей #7 : 2009-06-10 21:41:03 »
Off-topic:
еммм... якщо воно static, та ще й без інденту, мені здається, там буде не push, а просто дані, проте можу помилятися...

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Scratch та Squeak
« Відповідей #8 : 2009-06-10 21:44:22 »
Off-topic:
еммм... якщо воно static, та ще й без інденту, мені здається, там буде не push, а просто дані, проте можу помилятися...
Може бути: /me як хацкер, в основному міняв 75 на EA.  ;)
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Scratch та Squeak
« Відповідей #9 : 2009-06-10 22:02:45 »
Off-topic:
Може бути: /me як хацкер, в основному міняв 75 на EA. ;)
умм... ви мали на увазі EB, чи я щось не так зрозумів?
P.S. /me таким взагалі не займався - нещодавно покрутив одну штуку у дебагері і плюнув. :(
P.P.S. Ех, а колись /me виписував ці коди в красивеньку табличку для довідки.. от були часи.. Правда перевести процесор в захищений режим мені тоді, так й не вдалося. :(

Відсутній ggromko

  • Новачок
  • *
  • дописів: 29
  • Карма: +0/-0
Re: Scratch та Squeak
« Відповідей #10 : 2009-06-10 23:02:57 »
Почитав текст MIDIPlugin.inc - це значення автоматично скидається при закритті порту на -1, отже при слідуючому відкритті порта не буде знайдено. Отже, не допоможе

Відсутній ggromko

  • Новачок
  • *
  • дописів: 29
  • Карма: +0/-0
Re: Scratch та Squeak
« Відповідей #11 : 2009-06-10 23:07:35 »
Так, до речі з цим PulseAudio  виникає казус - звук (відтворення MP3) після робои MIDI  не працює, говорить що недостатньо прав (під рутом працює все гаразд). Відключивши PulseAudio  позбуваєшся цього "траблу", але може бути інший вихід?

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Scratch та Squeak
« Відповідей #12 : 2009-06-10 23:13:32 »
Так, до речі з цим PulseAudio  виникає казус - звук (відтворення MP3) після робои MIDI  не працює, говорить що недостатньо прав (під рутом працює все гаразд). Відключивши PulseAudio  позбуваєшся цього "траблу", але може бути інший вихід?
1) Тобто ви відкидаєте можливість будь-яких інших змін у файлі, окрім запропонованої мною і не будете збирати, доки не будете певні щодо результату?  ;)
2) Слід оновити PA до останньої версії (0.9.15). Повне оновлення можливе лише після переходу на 2009.1. Зараз працюю за самозбірним комбайном. У останньому PA можна запускати у привілейованому режимі. Він майже не затинається.
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній ggromko

  • Новачок
  • *
  • дописів: 29
  • Карма: +0/-0
Re: Scratch та Squeak
« Відповідей #13 : 2009-06-10 23:42:42 »
Ні, не відкидаю, просто шукаю "легших" шляхів - як тому Писку (squeak) наказати звертатись тільки до порту 128:0

Відсутній ggromko

  • Новачок
  • *
  • дописів: 29
  • Карма: +0/-0
Re: Scratch та Squeak
« Відповідей #14 : 2009-06-11 00:14:01 »
Оновив РА (0.9.15)- просто чудово, все працює і без padsp, і без "граблів". Лишилася проблема з squeak-vm. Дякую за 0.9.15