Merge branch 'master' of ssh://repo.or.cz/srv/git/ctl24
[ctl24.git] / seq24 / RTC
blobed96eecbe3a4eb8563c9e559f51abf5ef65b074d
1 ** Note **
2 this text is quite outdated.  If you check out the linux kernels
3 high resolution timer patches for 2.4 (they are built in 2.5+).
4 They will allow the scheduler and default timers to run at 1000Hz.
6 [1] RTC - What is is....
8 The following was taken from the site of Takashi Iwai:
9 (http://www.alsa-project.org/~iwai/alsa.html)
10 -------------------------------------------------------------------------
11 RTC High Frequency Timer Patch
13 RTC has a nice high-frequent interrupt capability up to 8192 Hz. Although 
14 this can be used (on the recent kernel) even from userspace via fasync 
15 signals, it is not allowed to use the interrupt from kernel. This is the 
16 very reason of this patch.
18 This tiny patch adds a hook to the RTC driver in linux kernel. A callback 
19 function is called at each interrupt. For changing frequency, starting and 
20 stopping interrupts, use rtc_control function.
22 The older version of this patch had more functionalities than the current 
23 version, for example, multiple callbacks with different frequencies are 
24 allowed. From this patch, however, I intensionally removed these things, 
25 because of simplicity. Only one callback can be used exclusively (even 
26 to user-space). That is, if a kernel driver (e.g. ALSA RTC timer) registers 
27 the callback, no other threads can use RTC interrupt. /dev/rtc cannot be 
28 opened during it.
29 --------------------------------------------------------------------------
32 [2] What is does.....
34 In a nutshell, it allows the sequencer to pump out midi messages at a 
35 resolution of 1 millisecond, compared to the standard 2.4.x kernels 10ms.  
36 This is needed for midi clock, where 2-3 ms in-between ticks is necessary,
37 or your synced gear will be acting quite funny.
39 -------------------------------------------------------------------------
42 [3] How to get it...
44 So basically, if you want to use the RTC patch, you have to get it from 
45 the alsa-driver files.  
47 Download the current driver tarball from ( http://www.alsa-project.org/ ).  
49 Located in [alsa-driver-0.9.0x/utils/patches] are diff files to apply 
50 towards your kernel source.
52 Once you have that patched and installed, you compile your alsa drivers 
53 with the rtc-timer module.
55 Then, modify your modules.conf file accordingly.  
56 Here is what mine looks like:
59 > modules.conf excerpt ------------------
61 # rtc
62 options snd-timer snd_timer_limit=2
63 alias snd-timer-1 snd-rtctimer
64 options snd-seq snd_seq_default_timer_resolution=1000 
65 options snd-seq snd_seq_default_timer_device=1
67 # ALSA portion
68 alias char-major-116 snd
69 alias snd-card-0 snd-emu10k1
71 > --------------------------------------
73 -------------------------------------------------------------------------
76 [4] Problems ?
78 If your having problems with the RTC module, please ask on one of the 
79 ALSA lists.  The author of seq24 does not wish to troubleshoot your 
80 kernel/alsa issues.