announce: simple piano emulator

Tibor Zenis zenis na fmph.uniba.sk
Čtvrtek Září 30 09:28:30 CEST 2004


On Wed, Sep 29, 2004 at 01:47:22PM +0000, Radovan Garabik wrote:
> Tibor Zenis <zenis na fmph.uniba.sk> wrote:
> > 
> > Problem bol v tom, ze som XAutoRepeatOn presunul na zaciatok funkcie die
> > (povodne to bolo za close) a prehliadol som definiciu premennej i.
> 
> 
> no, to som si teda mohol vsimnut :-)
> (aspon gcc mohlo dat rozumnejsiu hlasku)
A gcc-3.x to zozerie ...
> 
> skompiloval som to, aj sa to spustilo, aj sa to zmesti na obrazovku,
> aj (po killnuti esd) to nejake tony vydava, ale:
Spustit to pomocou esd-wrapper?
> - vypise to viackrat pri spusteni
Toto by malo vypisovat az po spusteni v hlavnej slucke (na konci main).
>  SNDCTL_DSP_GETOPTR ioctl failed: Function not implemented
>   (ale spusti sa)
Tak to je problem, z rozdielu poctu bytov zapisanych pomocou write
a uz prehratych (zistenych pomocou toho ioctl) sa zistuje o kolko
prehravanie zaostava za realtime.
Nepodarilo sa mi najst poriadnu dokumentaciu k ioctl, tak neviem, ci
existuje nahrada.

- Tato synchronizacna cast sa odtial moze uplne vymazat (vsetko medzi
  write o koncom while cyklu), v tomto pripade sa bude cakat na write,
  ked sa zaplni buffer dsp zariadenia.

- - Alebo zmazat a pouzit non-blocking write, a ked sa nepodari zapisat
  cela davka, tak dat nejaky usleep a az potom pokracovat.
  
  V tychto pripadoch sa zhorsi odozva na klavesnicu.

- Synchronizovat pomocou /dev/rtc (ak to yopy ma) alebo gettimeofday.

  Krystal na zvukovej karte asi nebude synchronizovany s ostatnou castou
  yopy, co bude sposobovat desynchronizaciu.

> - zvuk co to vydava je neprijemny, praskavy a prerusovany asi v 0.5 
Ak je to sposobene nedostatocnym vykonom CPU:
zakazat vibrato (pri kompilovani),
znizit rate,
nastavit 8bit mod: set_dsp_params(fd, 1, 16, AFMT_S16_LE, &rate); zmenit
na set_dsp_params(fd, 1, 8, AFMT_S8, &rate); alebo set_dsp_params(fd, 1,
8, AFMT_U8, &rate); a podla toho zmenit typ pola buf.
> sekundovych intervaloch, v sinusovom mode nepocut takmer vobec, 
To je preto, lebo harmonicky signal neobsahuje vyssie harmonicke.
> najlepsie ide v harmonickom, a nemam
??? sinusovy je harmonicky
> potrebne klavesy na zmenu modov (iba F1, F2 a tie uz mam vo window
Vsetko okrem XK_Escape sa da nastavit mysou.
> managery namapovane na nieco ine)
Na i386 ja najnarocnejsi harmonicky mod (funkcia sin), neviek, ako je na
tom ARM 32-bit RISC procesor s float cislami, velka cast setfreq_trg /
setfreq_sqv sa da prerobit do integer.

	Tibor

-- 
,..,.,..,.,..,.,..,.,..,.,..,
; Tibor Zenis               ;
: zenis @ fmph . uniba . sk :
'``'`'``'`'``'`'``'`'``'`'``'


Další informace o konferenci Linux