[LAD] timers

2009-11-07 Thread Emanuel Rumpf
Hi

I'm confused about all the timers.

There is:
- system timer
- hpet (high precision event timer)
- hr-timer (high resolution timer)
- rtc (real time clock)
- cyclic (what's that? a coded loop?)
- anything else ?


What is the relation of all these ?
Which hardware devices are actually used by those ?
Which is the prefered timer for sequencing ? hr-timer / rtc ?

Some timers can be opened only once ?
For example if jackdbus is using hr-timer, no other application can too ?
But applications need to use the same timer  in order to sync - right ?
Which concepts exist to share a certain timer ?
How to verify if a timer is working ?
Is there tool that would help ?
Opening the hr-timer with rosegarden freezes my whole system here,
what could cause that ?

Thanks



Related to my sytem:


I get:
--

$ lsmod | grep rtc
rtc_cmos9680  0
rtc_core   16784  1 rtc_cmos
rtc_lib 2844  1 rtc_core



But the following command doesn't list any rtc-timer (is that
expected, what to do ?):
-
$ cat /proc/asound/timers
G0: system timer : 1000.000us (1000 ticks)
G3: HR timer : 0.001us (10 ticks)
  Client sequencer queue 2 : running
  Client sequencer queue 0 : running
P0-0-0: PCM playback 0-0-0 : SLAVE
P0-0-1: PCM capture 0-0-1 : SLAVE
P0-1-0: PCM playback 0-1-0 : SLAVE
P0-2-1: PCM capture 0-2-1 : SLAVE
P1-3-0: PCM playback 1-3-0 : SLAVE
P2-0-0: PCM playback 2-0-0 : SLAVE
P2-0-1: PCM capture 2-0-1 : SLAVE
P5-0-1: PCM capture 5-0-1 : SLAVE

$ ls /dev/rtc* -lh
lrwxrwxrwx 1 root root   4 2009-11-05 17:13 /dev/rtc - rtc0
crw-rw 1 root audio 251, 0 2009-11-05 17:13 /dev/rtc0

$ uname -a
Linux 2.6.31-rt11-e1 #1 SMP PREEMPT RT  Oct 27 CET 2009 i686 GNU/Linux Debian



--
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] timers

2009-11-07 Thread Ralf Mardorf
Emanuel Rumpf wrote:
 Hi

 I'm confused about all the timers.

 There is:
 - system timer
 - hpet (high precision event timer)
 - hr-timer (high resolution timer)
 - rtc (real time clock)
 - cyclic (what's that? a coded loop?)
 - anything else ?


 What is the relation of all these ?
 Which hardware devices are actually used by those ?
 Which is the prefered timer for sequencing ? hr-timer / rtc ?
   

If hardware is fine with Linux real-time audio, if I understand 
correctly, the preferred timer for MIDI sequencers is (should be) system 
timer at ! 1000 Hz ! For my hardware, that has got problems with 
real-time audio, it's PCM playback and PCM capture. Using this timers 
MIDI jitter will decrease a little bit.

This is the output I get for 64 Studio 3.0-beta3:

spinymouse-s...@64studio:~$ cat /proc/asound/timers
G0: system timer : 1000.000us (1000 ticks)
P0-0-0: PCM playback 0-0-0 : SLAVE
P0-0-1: PCM capture 0-0-1 : SLAVE
  Client sequencer queue 0 : stopped
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] timers

2009-11-07 Thread James Warden
Hi guys,

Here is what I have:


$ cat /proc/asound/timers
G0: system timer : 1000.000us (1000 ticks)
G3: HR timer : 0.001us (10 ticks)
  Client sequencer queue 0 : running
P1-0-0: PCM playback 1-0-0 : SLAVE
P1-0-1: PCM capture 1-0-1 : SLAVE

Ralf, you do not benefit from a high res timer. See how much more precise the 
HR timer is from the output above. Check which snd timer you have loaded:

$ lsmod | grep timer

snd_hrtimer 2148  1
snd_timer  17408  3 snd_hrtimer,snd_seq,snd_pcm

Of course, your h/w should have a HR timer:

$ ll /dev/hpet
crw-rw 1 root audio 10, 228 2009-11-05 12:59 /dev/hpet

you can specify the clock source to jackd:

$ jackd --help
...
[ --clocksource OR -c [ c(ycle) | h(pet) | s(ystem) ]
...



J.


--- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net wrote:

 From: Ralf Mardorf ralf.mard...@alice-dsl.net
 Subject: Re: [LAD] timers
 To: Emanuel Rumpf xb...@web.de
 Cc: linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 7:04 AM
 Emanuel Rumpf wrote:
  Hi
 
  I'm confused about all the timers.
 
  There is:
  - system timer
  - hpet (high precision event timer)
  - hr-timer (high resolution timer)
  - rtc (real time clock)
  - cyclic (what's that? a coded loop?)
  - anything else ?
 
 
  What is the relation of all these ?
  Which hardware devices are actually used by those ?
  Which is the prefered timer for sequencing ? hr-timer
 / rtc ?
    
 
 If hardware is fine with Linux real-time audio, if I
 understand 
 correctly, the preferred timer for MIDI sequencers is
 (should be) system 
 timer at ! 1000 Hz ! For my hardware, that has got problems
 with 
 real-time audio, it's PCM playback and PCM capture. Using
 this timers 
 MIDI jitter will decrease a little bit.
 
 This is the output I get for 64 Studio 3.0-beta3:
 
 spinymouse-s...@64studio:~$ cat /proc/asound/timers
 G0: system timer : 1000.000us (1000 ticks)
 P0-0-0: PCM playback 0-0-0 : SLAVE
 P0-0-1: PCM capture 0-0-1 : SLAVE
   Client sequencer queue 0 : stopped
 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
 


  
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] timers

2009-11-07 Thread James Warden
I forgot to add that snd_hrtimer is used by jackd.
If I turn jackd off, the snd_hrtimer module is not used:

$ lsmod | grep timer
snd_hrtimer 2148  0 ##  not used
snd_timer  17408  3 snd_hrtimer,snd_seq,snd_pcm

J.

--- On Sat, 11/7/09, James Warden warj...@yahoo.com wrote:

 From: James Warden warj...@yahoo.com
 Subject: Re: [LAD] timers
 To: Emanuel Rumpf xb...@web.de, Ralf Mardorf 
 ralf.mard...@alice-dsl.net
 Cc: linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 7:34 AM
 Hi guys,
 
 Here is what I have:
 
 
 $ cat /proc/asound/timers
 G0: system timer : 1000.000us (1000 ticks)
 G3: HR timer : 0.001us (10 ticks)
   Client sequencer queue 0 : running
 P1-0-0: PCM playback 1-0-0 : SLAVE
 P1-0-1: PCM capture 1-0-1 : SLAVE
 
 Ralf, you do not benefit from a high res timer. See how
 much more precise the HR timer is from the output above.
 Check which snd timer you have loaded:
 
 $ lsmod | grep timer
 
 snd_hrtimer         
    2148  1
 snd_timer             
 17408  3 snd_hrtimer,snd_seq,snd_pcm
 
 Of course, your h/w should have a HR timer:
 
 $ ll /dev/hpet
 crw-rw 1 root audio 10, 228 2009-11-05 12:59 /dev/hpet
 
 you can specify the clock source to jackd:
 
 $ jackd --help
 ...
 [ --clocksource OR -c [ c(ycle) | h(pet) | s(ystem) ]
 ...
 
 
 
 J.
 
 
 --- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net
 wrote:
 
  From: Ralf Mardorf ralf.mard...@alice-dsl.net
  Subject: Re: [LAD] timers
  To: Emanuel Rumpf xb...@web.de
  Cc: linux-audio-dev@lists.linuxaudio.org
  Date: Saturday, November 7, 2009, 7:04 AM
  Emanuel Rumpf wrote:
   Hi
  
   I'm confused about all the timers.
  
   There is:
   - system timer
   - hpet (high precision event timer)
   - hr-timer (high resolution timer)
   - rtc (real time clock)
   - cyclic (what's that? a coded loop?)
   - anything else ?
  
  
   What is the relation of all these ?
   Which hardware devices are actually used by those
 ?
   Which is the prefered timer for sequencing ?
 hr-timer
  / rtc ?
     
  
  If hardware is fine with Linux real-time audio, if I
  understand 
  correctly, the preferred timer for MIDI sequencers is
  (should be) system 
  timer at ! 1000 Hz ! For my hardware, that has got
 problems
  with 
  real-time audio, it's PCM playback and PCM capture.
 Using
  this timers 
  MIDI jitter will decrease a little bit.
  
  This is the output I get for 64 Studio 3.0-beta3:
  
  spinymouse-s...@64studio:~$ cat /proc/asound/timers
  G0: system timer : 1000.000us (1000 ticks)
  P0-0-0: PCM playback 0-0-0 : SLAVE
  P0-0-1: PCM capture 0-0-1 : SLAVE
    Client sequencer queue 0 : stopped
  ___
  Linux-audio-dev mailing list
  Linux-audio-dev@lists.linuxaudio.org
  http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
  
 
 
       
 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
 


  
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] How to develop guis for LV2?

2009-11-07 Thread Jörn Nettingsmeier
Steve Harris wrote:
 On 5 Nov 2009, at 23:33, David Robillard wrote:
 
 On Thu, 2009-11-05 at 22:21 +0100, f...@kokkinizita.net wrote:
 On the LV2 website, Lars Luthman's UI extension is described as:

 This extension is written for revision 2 of the LV2 specification
 and is NOT compatible with revisions 3 and later. Do not implement
 this extension in new plugins or hosts, and do not expect it to work
 in old ones. It is only available here for archaeological purposes.
 For anyone genuinely interested and not just taking vain pot shots to
 further some weird personal vendetta or whatever the hell:

 The thing that changed in r3 is: persistent references to ports must
 refer to ports by their symbol, and not their index.  Persistent means
 things on disk that might refer to several versions of a plugin in the
 future, nothing about the index has actually changed.  Plugin data
 files, host session files, etc.
 
 This was a hangover from LADSPA, which had confusing and contradictory  
 claims about what should/shouldn't be used to identify ports.
 
 I still don't think there's consensus there.

can you elaborate on this?

archive links would be good, too.

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] timers

2009-11-07 Thread Ralf Mardorf
Thank you Emanuel for this thread :)
thank you James for the information :)

hopefully this might narrow down my trouble with MIDI jitter for 
external equipment, OTOH I don't have any MIDI jitter for MIDI internal 
Linux. ALSA MIDI and JACK MIDI seems to be fine what ever timer I use, 
this means there is absolutely no jitter when using a Linux sequencer to 
control a Linux synth. Jitter only occurs when using my USB MIDInterface 
to control external MIDI equipment. Unfortunately I can't get my 
Envy24's MPU working.

There seems to be no hrtimer available yet:

$ lsmod | grep snd_hrtimer
$ lsmod | grep timer
snd_timer  22024  2 snd_pcm,snd_seq
snd63800  21 
snd_ice1712,snd_ak4xxx_adda,snd_cs8427,snd_ac97_codec,snd_i2c,snd_mpu401_uart,snd_usb_audio,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_hwdep,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
$ uname -a
Linux 64studio 2.6.29-1-multimedia-amd64 #1 SMP PREEMPT RT Thu Feb 26 
16:18:05 UTC 2009 x86_64 GNU/Linux

Before I start googleing. Is this a feature for 2.6.31 only? I'm still 
not able to boot the .31 kernel-rt from the Suse 11.2 RC repository and 
compiling for Suse also failed, but in the past I never had trouble to 
build kernel-rt for Debian/ Ubuntu based 64 Studio. Maybe I should try 
to build a kernel .31 for 64 Studio? Or is it just a module I need to 
add? Or is my hardware missing something?

Going to use Google now.

Bye,
Ralf

James Warden wrote:
 I forgot to add that snd_hrtimer is used by jackd.
 If I turn jackd off, the snd_hrtimer module is not used:

 $ lsmod | grep timer
 snd_hrtimer 2148  0 ##  not used
 snd_timer  17408  3 snd_hrtimer,snd_seq,snd_pcm

 J.

 --- On Sat, 11/7/09, James Warden warj...@yahoo.com wrote:

   
 From: James Warden warj...@yahoo.com
 Subject: Re: [LAD] timers
 To: Emanuel Rumpf xb...@web.de, Ralf Mardorf 
 ralf.mard...@alice-dsl.net
 Cc: linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 7:34 AM
 Hi guys,

 Here is what I have:


 $ cat /proc/asound/timers
 G0: system timer : 1000.000us (1000 ticks)
 G3: HR timer : 0.001us (10 ticks)
   Client sequencer queue 0 : running
 P1-0-0: PCM playback 1-0-0 : SLAVE
 P1-0-1: PCM capture 1-0-1 : SLAVE

 Ralf, you do not benefit from a high res timer. See how
 much more precise the HR timer is from the output above.
 Check which snd timer you have loaded:

 $ lsmod | grep timer

 snd_hrtimer 
2148  1
 snd_timer 
 17408  3 snd_hrtimer,snd_seq,snd_pcm

 Of course, your h/w should have a HR timer:

 $ ll /dev/hpet
 crw-rw 1 root audio 10, 228 2009-11-05 12:59 /dev/hpet

 you can specify the clock source to jackd:

 $ jackd --help
 ...
 [ --clocksource OR -c [ c(ycle) | h(pet) | s(ystem) ]
 ...



 J.


 --- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net
 wrote:

 
 From: Ralf Mardorf ralf.mard...@alice-dsl.net
 Subject: Re: [LAD] timers
 To: Emanuel Rumpf xb...@web.de
 Cc: linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 7:04 AM
 Emanuel Rumpf wrote:
   
 Hi

 I'm confused about all the timers.

 There is:
 - system timer
 - hpet (high precision event timer)
 - hr-timer (high resolution timer)
 - rtc (real time clock)
 - cyclic (what's that? a coded loop?)
 - anything else ?


 What is the relation of all these ?
 Which hardware devices are actually used by those
 
 ?
 
 Which is the prefered timer for sequencing ?
 
 hr-timer
 
 / rtc ?
   

 
 If hardware is fine with Linux real-time audio, if I
 understand 
 correctly, the preferred timer for MIDI sequencers is
 (should be) system 
 timer at ! 1000 Hz ! For my hardware, that has got
   
 problems
 
 with 
 real-time audio, it's PCM playback and PCM capture.
   
 Using
 
 this timers 
 MIDI jitter will decrease a little bit.

 This is the output I get for 64 Studio 3.0-beta3:

 spinymouse-s...@64studio:~$ cat /proc/asound/timers
 G0: system timer : 1000.000us (1000 ticks)
 P0-0-0: PCM playback 0-0-0 : SLAVE
 P0-0-1: PCM capture 0-0-1 : SLAVE
   Client sequencer queue 0 : stopped
 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev

   
   
 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev

 


   

   

-- 
Secret of Tux: 
http://images.wallaceandgromit.com/user_uploads/forum_thumbnails/5/75/355.jpg
Gromit bit me says HMV dog: 
http://img.dailymail.co.uk/i/pix/2007/03_03/GomitHMVPA_468x319.jpg

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] timers

2009-11-07 Thread Ralf Mardorf
Oops, I forgot something too:

spinymouse-s...@64studio:~$ ll /dev/hpet
bash: ll: command not found
spinymouse-s...@64studio:~$ ls /dev | grep hpet
hpet

Ralf Mardorf wrote:
 Thank you Emanuel for this thread :)
 thank you James for the information :)

 hopefully this might narrow down my trouble with MIDI jitter for 
 external equipment, OTOH I don't have any MIDI jitter for MIDI internal 
 Linux. ALSA MIDI and JACK MIDI seems to be fine what ever timer I use, 
 this means there is absolutely no jitter when using a Linux sequencer to 
 control a Linux synth. Jitter only occurs when using my USB MIDInterface 
 to control external MIDI equipment. Unfortunately I can't get my 
 Envy24's MPU working.

 There seems to be no hrtimer available yet:

 $ lsmod | grep snd_hrtimer
 $ lsmod | grep timer
 snd_timer  22024  2 snd_pcm,snd_seq
 snd63800  21 
 snd_ice1712,snd_ak4xxx_adda,snd_cs8427,snd_ac97_codec,snd_i2c,snd_mpu401_uart,snd_usb_audio,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_hwdep,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
 $ uname -a
 Linux 64studio 2.6.29-1-multimedia-amd64 #1 SMP PREEMPT RT Thu Feb 26 
 16:18:05 UTC 2009 x86_64 GNU/Linux

 Before I start googleing. Is this a feature for 2.6.31 only? I'm still 
 not able to boot the .31 kernel-rt from the Suse 11.2 RC repository and 
 compiling for Suse also failed, but in the past I never had trouble to 
 build kernel-rt for Debian/ Ubuntu based 64 Studio. Maybe I should try 
 to build a kernel .31 for 64 Studio? Or is it just a module I need to 
 add? Or is my hardware missing something?

 Going to use Google now.

 Bye,
 Ralf

 James Warden wrote:
   
 I forgot to add that snd_hrtimer is used by jackd.
 If I turn jackd off, the snd_hrtimer module is not used:

 $ lsmod | grep timer
 snd_hrtimer 2148  0 ##  not used
 snd_timer  17408  3 snd_hrtimer,snd_seq,snd_pcm

 J.

 --- On Sat, 11/7/09, James Warden warj...@yahoo.com wrote:

   
 
 From: James Warden warj...@yahoo.com
 Subject: Re: [LAD] timers
 To: Emanuel Rumpf xb...@web.de, Ralf Mardorf 
 ralf.mard...@alice-dsl.net
 Cc: linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 7:34 AM
 Hi guys,

 Here is what I have:


 $ cat /proc/asound/timers
 G0: system timer : 1000.000us (1000 ticks)
 G3: HR timer : 0.001us (10 ticks)
   Client sequencer queue 0 : running
 P1-0-0: PCM playback 1-0-0 : SLAVE
 P1-0-1: PCM capture 1-0-1 : SLAVE

 Ralf, you do not benefit from a high res timer. See how
 much more precise the HR timer is from the output above.
 Check which snd timer you have loaded:

 $ lsmod | grep timer

 snd_hrtimer 
2148  1
 snd_timer 
 17408  3 snd_hrtimer,snd_seq,snd_pcm

 Of course, your h/w should have a HR timer:

 $ ll /dev/hpet
 crw-rw 1 root audio 10, 228 2009-11-05 12:59 /dev/hpet

 you can specify the clock source to jackd:

 $ jackd --help
 ...
 [ --clocksource OR -c [ c(ycle) | h(pet) | s(ystem) ]
 ...



 J.


 --- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net
 wrote:

 
   
 From: Ralf Mardorf ralf.mard...@alice-dsl.net
 Subject: Re: [LAD] timers
 To: Emanuel Rumpf xb...@web.de
 Cc: linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 7:04 AM
 Emanuel Rumpf wrote:
   
 
 Hi

 I'm confused about all the timers.

 There is:
 - system timer
 - hpet (high precision event timer)
 - hr-timer (high resolution timer)
 - rtc (real time clock)
 - cyclic (what's that? a coded loop?)
 - anything else ?


 What is the relation of all these ?
 Which hardware devices are actually used by those
 
   
 ?
 
   
 Which is the prefered timer for sequencing ?
 
   
 hr-timer
 
   
 / rtc ?
   
 

 
   
 If hardware is fine with Linux real-time audio, if I
 understand 
 correctly, the preferred timer for MIDI sequencers is
 (should be) system 
 timer at ! 1000 Hz ! For my hardware, that has got
   
 
 problems
 
   
 with 
 real-time audio, it's PCM playback and PCM capture.
   
 
 Using
 
   
 this timers 
 MIDI jitter will decrease a little bit.

 This is the output I get for 64 Studio 3.0-beta3:

 spinymouse-s...@64studio:~$ cat /proc/asound/timers
 G0: system timer : 1000.000us (1000 ticks)
 P0-0-0: PCM playback 0-0-0 : SLAVE
 P0-0-1: PCM capture 0-0-1 : SLAVE
   Client sequencer queue 0 : stopped
 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev

   
 
   
 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev

 
   
   

   
 

   

-- 
Secret of Tux: 

Re: [LAD] timers

2009-11-07 Thread James Warden
Ralf,

It depends how ALSA was compiled in the kernel. Here is my kernel config 
related to this matter:


CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
# CONFIG_SND_MIXER_OSS is not set
# CONFIG_SND_PCM_OSS is not set
# CONFIG_SND_SEQUENCER_OSS is not set
CONFIG_SND_HRTIMER=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y

J.

--- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net wrote:

 From: Ralf Mardorf ralf.mard...@alice-dsl.net
 Subject: Re: [LAD] timers
 To: James Warden warj...@yahoo.com
 Cc: Emanuel Rumpf xb...@web.de, linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 8:36 AM
 Thank you Emanuel for this thread :)
 thank you James for the information :)
 
 hopefully this might narrow down my trouble with MIDI
 jitter for external equipment, OTOH I don't have any MIDI
 jitter for MIDI internal Linux. ALSA MIDI and JACK MIDI
 seems to be fine what ever timer I use, this means there is
 absolutely no jitter when using a Linux sequencer to control
 a Linux synth. Jitter only occurs when using my USB
 MIDInterface to control external MIDI equipment.
 Unfortunately I can't get my Envy24's MPU working.
 
 There seems to be no hrtimer available yet:
 
 $ lsmod | grep snd_hrtimer
 $ lsmod | grep timer
 snd_timer             
 22024  2 snd_pcm,snd_seq
 snd               
     63800  21
 snd_ice1712,snd_ak4xxx_adda,snd_cs8427,snd_ac97_codec,snd_i2c,snd_mpu401_uart,snd_usb_audio,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_hwdep,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
 $ uname -a
 Linux 64studio 2.6.29-1-multimedia-amd64 #1 SMP PREEMPT RT
 Thu Feb 26 16:18:05 UTC 2009 x86_64 GNU/Linux
 
 Before I start googleing. Is this a feature for 2.6.31
 only? I'm still not able to boot the .31 kernel-rt from the
 Suse 11.2 RC repository and compiling for Suse also failed,
 but in the past I never had trouble to build kernel-rt for
 Debian/ Ubuntu based 64 Studio. Maybe I should try to build
 a kernel .31 for 64 Studio? Or is it just a module I need to
 add? Or is my hardware missing something?
 
 Going to use Google now.
 
 Bye,
 Ralf
 
 James Warden wrote:
  I forgot to add that snd_hrtimer is used by jackd.
  If I turn jackd off, the snd_hrtimer module is not
 used:
  
  $ lsmod | grep timer
  snd_hrtimer         
    2148  0 ##  not used
  snd_timer           
   17408  3 snd_hrtimer,snd_seq,snd_pcm
  
  J.
  
  --- On Sat, 11/7/09, James Warden warj...@yahoo.com
 wrote:
  
    
  From: James Warden warj...@yahoo.com
  Subject: Re: [LAD] timers
  To: Emanuel Rumpf xb...@web.de,
 Ralf Mardorf ralf.mard...@alice-dsl.net
  Cc: linux-audio-dev@lists.linuxaudio.org
  Date: Saturday, November 7, 2009, 7:34 AM
  Hi guys,
  
  Here is what I have:
  
  
  $ cat /proc/asound/timers
  G0: system timer : 1000.000us (1000 ticks)
  G3: HR timer : 0.001us (10 ticks)
    Client sequencer queue 0 :
 running
  P1-0-0: PCM playback 1-0-0 : SLAVE
  P1-0-1: PCM capture 1-0-1 : SLAVE
  
  Ralf, you do not benefit from a high res timer.
 See how
  much more precise the HR timer is from the output
 above.
  Check which snd timer you have loaded:
  
  $ lsmod | grep timer
  
  snd_hrtimer         
   2148  1
  snd_timer         
    17408  3 snd_hrtimer,snd_seq,snd_pcm
  
  Of course, your h/w should have a HR timer:
  
  $ ll /dev/hpet
  crw-rw 1 root audio 10, 228 2009-11-05 12:59
 /dev/hpet
  
  you can specify the clock source to jackd:
  
  $ jackd --help
  ...
  [ --clocksource OR -c [ c(ycle) | h(pet) |
 s(ystem) ]
  ...
  
  
  
  J.
  
  
  --- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net
  wrote:
  
      
  From: Ralf Mardorf ralf.mard...@alice-dsl.net
  Subject: Re: [LAD] timers
  To: Emanuel Rumpf xb...@web.de
  Cc: linux-audio-dev@lists.linuxaudio.org
  Date: Saturday, November 7, 2009, 7:04 AM
  Emanuel Rumpf wrote:
        
  Hi
  
  I'm confused about all the timers.
  
  There is:
  - system timer
  - hpet (high precision event timer)
  - hr-timer (high resolution timer)
  - rtc (real time clock)
  - cyclic (what's that? a coded loop?)
  - anything else ?
  
  
  What is the relation of all these ?
  Which hardware devices are actually used
 by those
          
  ?
      
  Which is the prefered timer for sequencing
 ?
          
  hr-timer
      
  / rtc ?
        
             
  If hardware is fine with Linux real-time
 audio, if I
  understand correctly, the preferred timer for
 MIDI sequencers is
  (should be) system timer at ! 1000 Hz ! For my
 hardware, that has got
        
  problems
      
  with real-time audio, it's PCM playback and
 PCM capture.
        
  Using
      
  this timers MIDI jitter will decrease a little
 bit.
  
  This is the output I get for 64 Studio
 3.0-beta3:
  
  spinymouse-s...@64studio:~$ cat
 /proc/asound/timers
  G0: system timer : 1000.000us (1000
 ticks)
  P0-0-0: PCM playback 0-0-0 : SLAVE
  P0-0-1: PCM capture 0-0-1 : SLAVE
    Client 

Re: [LAD] timers

2009-11-07 Thread Ray Rashif
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
 CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 # CONFIG_SND_MIXER_OSS is not set
 # CONFIG_SND_PCM_OSS is not set
 # CONFIG_SND_SEQUENCER_OSS is not set
 CONFIG_SND_HRTIMER=m
 CONFIG_SND_SEQ_HRTIMER_DEFAULT=y

Are defaults. You need:

CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_HPET=y
CONFIG_HPET_MMAP=y

It's inside one of the first few menus.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] timers

2009-11-07 Thread James Warden
yeah, I have added a few things in a startup script. Among other things, I have:

chgrp audio /dev/hpet
echo 1024  /proc/sys/dev/hpet/max-user-freq
modprobe snd-hrtimer

The modprobe may not be needed anymore as my kernel is using hr-timer by 
default. I wrote this script quite some time ago and forgot about it :)

J.

--- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net wrote:

 From: Ralf Mardorf ralf.mard...@alice-dsl.net
 Subject: Re: [LAD] timers
 To: 
 Cc: linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 8:52 AM
 James Warden wrote:
  Ralf,
 
  It depends how ALSA was compiled in the kernel. Here
 is my kernel config related to this matter:
 
 
  CONFIG_SND=m
  CONFIG_SND_TIMER=m
  CONFIG_SND_PCM=m
  CONFIG_SND_HWDEP=m
  CONFIG_SND_RAWMIDI=m
  CONFIG_SND_SEQUENCER=m
  CONFIG_SND_SEQ_DUMMY=m
  # CONFIG_SND_MIXER_OSS is not set
  # CONFIG_SND_PCM_OSS is not set
  # CONFIG_SND_SEQUENCER_OSS is not set
  CONFIG_SND_HRTIMER=m
  CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
 
  J.
 
 There is another question I've got :S.
 
 spinymouse-s...@64studio:~$ ls -l /dev | grep hpet
 crw-rw  1 root   root 
    10, 228 2009-11-07 13:38 hpet
 
 The group for hpet isn't audio, thus I guess a user won't
 be able to use 
 it?!
 
 Oops, # CONFIG_SND_HRTIMER is not set, has this now
 become something I 
 should post to the 64 Studio list? It's the default for the
 64 Studio 
 kernel. It's not a self build kernel.
 
 spinymouse-s...@64studio:~$ cat
 /boot/config-2.6.29-1-multimedia-amd64 | 
 grep CONFIG_SND
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
 CONFIG_SND_RAWMIDI=m
 CONFIG_SND_JACK=y
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
 CONFIG_SND_MIXER_OSS=m
 CONFIG_SND_PCM_OSS=m
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_SEQUENCER_OSS=y
 # CONFIG_SND_HRTIMER is not set
 # CONFIG_SND_DYNAMIC_MINORS is not set
 CONFIG_SND_SUPPORT_OLD_API=y
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
 CONFIG_SND_VMASTER=y
 CONFIG_SND_MPU401_UART=m
 CONFIG_SND_OPL3_LIB=m
 CONFIG_SND_VX_LIB=m
 CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
 CONFIG_SND_PCSP=m
 CONFIG_SND_DUMMY=m
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTS64=m
 CONFIG_SND_SERIAL_U16550=m
 CONFIG_SND_MPU401=m
 CONFIG_SND_PORTMAN2X4=m
 CONFIG_SND_AC97_POWER_SAVE=y
 CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
 CONFIG_SND_SB_COMMON=m
 CONFIG_SND_SB16_DSP=m
 CONFIG_SND_PCI=y
 CONFIG_SND_AD1889=m
 CONFIG_SND_ALS300=m
 CONFIG_SND_ALS4000=m
 CONFIG_SND_ALI5451=m
 CONFIG_SND_ATIIXP=m
 CONFIG_SND_ATIIXP_MODEM=m
 CONFIG_SND_AU8810=m
 CONFIG_SND_AU8820=m
 CONFIG_SND_AU8830=m
 # CONFIG_SND_AW2 is not set
 CONFIG_SND_AZT3328=m
 CONFIG_SND_BT87X=m
 # CONFIG_SND_BT87X_OVERCLOCK is not set
 CONFIG_SND_CA0106=m
 CONFIG_SND_CMIPCI=m
 CONFIG_SND_OXYGEN_LIB=m
 CONFIG_SND_OXYGEN=m
 CONFIG_SND_CS4281=m
 CONFIG_SND_CS46XX=m
 CONFIG_SND_CS46XX_NEW_DSP=y
 CONFIG_SND_CS5530=m
 CONFIG_SND_DARLA20=m
 CONFIG_SND_GINA20=m
 CONFIG_SND_LAYLA20=m
 CONFIG_SND_DARLA24=m
 CONFIG_SND_GINA24=m
 CONFIG_SND_LAYLA24=m
 CONFIG_SND_MONA=m
 CONFIG_SND_MIA=m
 CONFIG_SND_ECHO3G=m
 CONFIG_SND_INDIGO=m
 CONFIG_SND_INDIGOIO=m
 CONFIG_SND_INDIGODJ=m
 CONFIG_SND_EMU10K1=m
 CONFIG_SND_EMU10K1X=m
 CONFIG_SND_ENS1370=m
 CONFIG_SND_ENS1371=m
 CONFIG_SND_ES1938=m
 CONFIG_SND_ES1968=m
 CONFIG_SND_FM801=m
 CONFIG_SND_FM801_TEA575X_BOOL=y
 CONFIG_SND_FM801_TEA575X=m
 CONFIG_SND_HDA_INTEL=m
 # CONFIG_SND_HDA_HWDEP is not set
 CONFIG_SND_HDA_INPUT_BEEP=y
 CONFIG_SND_HDA_CODEC_REALTEK=y
 CONFIG_SND_HDA_CODEC_ANALOG=y
 CONFIG_SND_HDA_CODEC_SIGMATEL=y
 CONFIG_SND_HDA_CODEC_VIA=y
 CONFIG_SND_HDA_CODEC_ATIHDMI=y
 CONFIG_SND_HDA_CODEC_NVHDMI=y
 CONFIG_SND_HDA_CODEC_INTELHDMI=y
 CONFIG_SND_HDA_ELD=y
 CONFIG_SND_HDA_CODEC_CONEXANT=y
 CONFIG_SND_HDA_CODEC_CMEDIA=y
 CONFIG_SND_HDA_CODEC_SI3054=y
 CONFIG_SND_HDA_GENERIC=y
 CONFIG_SND_HDA_POWER_SAVE=y
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
 CONFIG_SND_HDSP=m
 CONFIG_SND_HDSPM=m
 CONFIG_SND_HIFIER=m
 CONFIG_SND_ICE1712=m
 CONFIG_SND_ICE1724=m
 CONFIG_SND_INTEL8X0=m
 CONFIG_SND_INTEL8X0M=m
 CONFIG_SND_KORG1212=m
 CONFIG_SND_MAESTRO3=m
 CONFIG_SND_MIXART=m
 CONFIG_SND_NM256=m
 CONFIG_SND_PCXHR=m
 CONFIG_SND_RIPTIDE=m
 CONFIG_SND_RME32=m
 CONFIG_SND_RME96=m
 CONFIG_SND_RME9652=m
 CONFIG_SND_SONICVIBES=m
 CONFIG_SND_TRIDENT=m
 CONFIG_SND_VIA82XX=m
 CONFIG_SND_VIA82XX_MODEM=m
 CONFIG_SND_VIRTUOSO=m
 CONFIG_SND_VX222=m
 CONFIG_SND_YMFPCI=m
 CONFIG_SND_SPI=y
 CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
 CONFIG_SND_USB_USX2Y=m
 CONFIG_SND_USB_CAIAQ=m
 CONFIG_SND_USB_CAIAQ_INPUT=y
 CONFIG_SND_USB_US122L=m
 CONFIG_SND_PCMCIA=y
 CONFIG_SND_VXPOCKET=m
 CONFIG_SND_PDAUDIOCF=m
 # CONFIG_SND_SOC is not set
 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
 


  
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org

Re: [LAD] timers

2009-11-07 Thread James Warden
yeps, forgot to copy this part of the config here, thanks :)

J.

--- On Sat, 11/7/09, Ray Rashif schivmeis...@gmail.com wrote:

 From: Ray Rashif schivmeis...@gmail.com
 Subject: Re: [LAD] timers
 To: Linux Audio Developers linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 8:53 AM
 
 CONFIG_SND=m
  CONFIG_SND_TIMER=m
  CONFIG_SND_PCM=m
  CONFIG_SND_HWDEP=m
  CONFIG_SND_RAWMIDI=m
 
 
  CONFIG_SND_SEQUENCER=m
  CONFIG_SND_SEQ_DUMMY=m
  # CONFIG_SND_MIXER_OSS is not set
  # CONFIG_SND_PCM_OSS is not set
  # CONFIG_SND_SEQUENCER_OSS is not set
  CONFIG_SND_HRTIMER=m
  CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
 
 
 Are defaults. You need:
 CONFIG_HPET_TIMER=yCONFIG_HPET_EMULATE_RTC=yCONFIG_HPET=yCONFIG_HPET_MMAP=y
 It's inside one of the first few
 menus.
 
 
 
 -Inline Attachment Follows-
 
 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
 


  
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] timers

2009-11-07 Thread Ralf Mardorf
Thank you very much James and Ray :).

Ralf

James Warden wrote:
 yeah, I have added a few things in a startup script. Among other things, I 
 have:

 chgrp audio /dev/hpet
 echo 1024  /proc/sys/dev/hpet/max-user-freq
 modprobe snd-hrtimer

 The modprobe may not be needed anymore as my kernel is using hr-timer by 
 default. I wrote this script quite some time ago and forgot about it :)

 J.

 --- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net wrote:

   
 From: Ralf Mardorf ralf.mard...@alice-dsl.net
 Subject: Re: [LAD] timers
 To: 
 Cc: linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 8:52 AM
 James Warden wrote:
 
 Ralf,

 It depends how ALSA was compiled in the kernel. Here
   
 is my kernel config related to this matter:
 
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
 CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 # CONFIG_SND_MIXER_OSS is not set
 # CONFIG_SND_PCM_OSS is not set
 # CONFIG_SND_SEQUENCER_OSS is not set
 CONFIG_SND_HRTIMER=m
 CONFIG_SND_SEQ_HRTIMER_DEFAULT=y

 J.
   
 There is another question I've got :S.

 spinymouse-s...@64studio:~$ ls -l /dev | grep hpet
 crw-rw  1 root   root 
10, 228 2009-11-07 13:38 hpet

 The group for hpet isn't audio, thus I guess a user won't
 be able to use 
 it?!

 Oops, # CONFIG_SND_HRTIMER is not set, has this now
 become something I 
 should post to the 64 Studio list? It's the default for the
 64 Studio 
 kernel. It's not a self build kernel.

 spinymouse-s...@64studio:~$ cat
 /boot/config-2.6.29-1-multimedia-amd64 | 
 grep CONFIG_SND
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
 CONFIG_SND_HWDEP=m
 CONFIG_SND_RAWMIDI=m
 CONFIG_SND_JACK=y
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
 CONFIG_SND_MIXER_OSS=m
 CONFIG_SND_PCM_OSS=m
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_SEQUENCER_OSS=y
 # CONFIG_SND_HRTIMER is not set
 # CONFIG_SND_DYNAMIC_MINORS is not set
 CONFIG_SND_SUPPORT_OLD_API=y
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
 CONFIG_SND_VMASTER=y
 CONFIG_SND_MPU401_UART=m
 CONFIG_SND_OPL3_LIB=m
 CONFIG_SND_VX_LIB=m
 CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
 CONFIG_SND_PCSP=m
 CONFIG_SND_DUMMY=m
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTS64=m
 CONFIG_SND_SERIAL_U16550=m
 CONFIG_SND_MPU401=m
 CONFIG_SND_PORTMAN2X4=m
 CONFIG_SND_AC97_POWER_SAVE=y
 CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
 CONFIG_SND_SB_COMMON=m
 CONFIG_SND_SB16_DSP=m
 CONFIG_SND_PCI=y
 CONFIG_SND_AD1889=m
 CONFIG_SND_ALS300=m
 CONFIG_SND_ALS4000=m
 CONFIG_SND_ALI5451=m
 CONFIG_SND_ATIIXP=m
 CONFIG_SND_ATIIXP_MODEM=m
 CONFIG_SND_AU8810=m
 CONFIG_SND_AU8820=m
 CONFIG_SND_AU8830=m
 # CONFIG_SND_AW2 is not set
 CONFIG_SND_AZT3328=m
 CONFIG_SND_BT87X=m
 # CONFIG_SND_BT87X_OVERCLOCK is not set
 CONFIG_SND_CA0106=m
 CONFIG_SND_CMIPCI=m
 CONFIG_SND_OXYGEN_LIB=m
 CONFIG_SND_OXYGEN=m
 CONFIG_SND_CS4281=m
 CONFIG_SND_CS46XX=m
 CONFIG_SND_CS46XX_NEW_DSP=y
 CONFIG_SND_CS5530=m
 CONFIG_SND_DARLA20=m
 CONFIG_SND_GINA20=m
 CONFIG_SND_LAYLA20=m
 CONFIG_SND_DARLA24=m
 CONFIG_SND_GINA24=m
 CONFIG_SND_LAYLA24=m
 CONFIG_SND_MONA=m
 CONFIG_SND_MIA=m
 CONFIG_SND_ECHO3G=m
 CONFIG_SND_INDIGO=m
 CONFIG_SND_INDIGOIO=m
 CONFIG_SND_INDIGODJ=m
 CONFIG_SND_EMU10K1=m
 CONFIG_SND_EMU10K1X=m
 CONFIG_SND_ENS1370=m
 CONFIG_SND_ENS1371=m
 CONFIG_SND_ES1938=m
 CONFIG_SND_ES1968=m
 CONFIG_SND_FM801=m
 CONFIG_SND_FM801_TEA575X_BOOL=y
 CONFIG_SND_FM801_TEA575X=m
 CONFIG_SND_HDA_INTEL=m
 # CONFIG_SND_HDA_HWDEP is not set
 CONFIG_SND_HDA_INPUT_BEEP=y
 CONFIG_SND_HDA_CODEC_REALTEK=y
 CONFIG_SND_HDA_CODEC_ANALOG=y
 CONFIG_SND_HDA_CODEC_SIGMATEL=y
 CONFIG_SND_HDA_CODEC_VIA=y
 CONFIG_SND_HDA_CODEC_ATIHDMI=y
 CONFIG_SND_HDA_CODEC_NVHDMI=y
 CONFIG_SND_HDA_CODEC_INTELHDMI=y
 CONFIG_SND_HDA_ELD=y
 CONFIG_SND_HDA_CODEC_CONEXANT=y
 CONFIG_SND_HDA_CODEC_CMEDIA=y
 CONFIG_SND_HDA_CODEC_SI3054=y
 CONFIG_SND_HDA_GENERIC=y
 CONFIG_SND_HDA_POWER_SAVE=y
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
 CONFIG_SND_HDSP=m
 CONFIG_SND_HDSPM=m
 CONFIG_SND_HIFIER=m
 CONFIG_SND_ICE1712=m
 CONFIG_SND_ICE1724=m
 CONFIG_SND_INTEL8X0=m
 CONFIG_SND_INTEL8X0M=m
 CONFIG_SND_KORG1212=m
 CONFIG_SND_MAESTRO3=m
 CONFIG_SND_MIXART=m
 CONFIG_SND_NM256=m
 CONFIG_SND_PCXHR=m
 CONFIG_SND_RIPTIDE=m
 CONFIG_SND_RME32=m
 CONFIG_SND_RME96=m
 CONFIG_SND_RME9652=m
 CONFIG_SND_SONICVIBES=m
 CONFIG_SND_TRIDENT=m
 CONFIG_SND_VIA82XX=m
 CONFIG_SND_VIA82XX_MODEM=m
 CONFIG_SND_VIRTUOSO=m
 CONFIG_SND_VX222=m
 CONFIG_SND_YMFPCI=m
 CONFIG_SND_SPI=y
 CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
 CONFIG_SND_USB_USX2Y=m
 CONFIG_SND_USB_CAIAQ=m
 CONFIG_SND_USB_CAIAQ_INPUT=y
 CONFIG_SND_USB_US122L=m
 CONFIG_SND_PCMCIA=y
 CONFIG_SND_VXPOCKET=m
 CONFIG_SND_PDAUDIOCF=m
 # CONFIG_SND_SOC is not set
 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev

 


   

   

-- 
Secret of Tux: 

Re: [LAD] LV2 compliant tests

2009-11-07 Thread smprocess
Hi dave,

Thanks for your upload. I saw the thread on LAD mail archive but without 
code.
Let's see what I can do with it.

Regards,

Sylvain


- Original Message - 
From: David Robillard d...@drobilla.net
To: linux-audio-dev@lists.linuxaudio.org
Sent: Wednesday, November 04, 2009 5:41 PM
Subject: Re: [LAD] LV2 compliant tests


 On Tue, 2009-11-03 at 09:32 +, Machel Sylvain wrote:
 Hi,

 I'm about to work on a LV2 wrapper for the FxEngine Framework and I
 would like to know if it exits compliant tests to validate LV2 plugin
 according to the port type, scope, ect . ? With the exeption of a
 few unitary tests, I didn't find anything on the web.

 Damon Chaplin posted one to the list based on his LADSPA test app a few
 months ago:

 http://linuxaudio.org/mailarchive/lad/2009/7/30/157338

 I dug the attachment out of my mail archive and uploaded it here
 (unmodified but for an added By Damon Chaplin line):

 http://drobilla.net/files/test-lv2.c

 I don't know if it this is the most recent version, or if it lives on
 elsewhere on the 'net.

 -dr



 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
 


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] Help to choose an audio library for a project

2009-11-07 Thread Dan Mills
On Sat, 2009-11-07 at 17:33 +0100, Ludovic RESLINGER wrote:
 Hello,
 
 I'm student in computer science and for one of my projects, I
 would like to program an audio player.
 
 The player will be developed for GNU/Linux environment but I would like
 to use an audio library which permit a portability for Windows and
 MacOS X too.
 
 The player will must read files in wav, MP3 and OGG/vorbis (at first)
 and it will have an equalizer.

For file reading, libsndfile will handle everything except the mpeg
formats (patent issues), which you can handle with libmad, for audio IO
I would probably go with portaudio, and for the equaliser just grab the
code from one of the SWH LADSPA pligins and extract what is needed. 

The audio part should take less then a day to write (Mostly copy and
paste), the gui will (as usual) take somewhat longer.  

Regards, Dan.

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] How to develop guis for LV2?

2009-11-07 Thread David Robillard
On Fri, 2009-11-06 at 18:27 +0100, f...@kokkinizita.net wrote:
 On Fri, Nov 06, 2009 at 10:55:17AM -0500, David Robillard wrote:
 
  How could changing the rules about how anything references ports be done
  as an extension?
 
 By doing it the new way if the extension is requested,
 and the old way otherwise.

This would not solve the problem because hosts need to follow the rules
too.  The core spec obviously has to specify things like how to refer to
ports correctly.  There are a small number of things that need to be
defined in the core spec for obvious reasons, this is one of them.

  ... What extensions are in conflict?  FUD FUD FUD
 
 Can you name two LAD members with the same birthday ?
 Probably not, but if you put 23 of them in a room the
 chances are 50% there will be two. At the moment there
 are few extensions, so probably there's no conflict.

This presumes that extensions conflicting makes sense, or is likely to
happen.

Or depend on things that are specified nowhere, such
   as the order in which a host should use them and call any new
   extension specific functions in the plugin ?
  
  This doesn't really make any sense.
 
 Doesn't it ? If a host has to consider all active
 extensions as a whole then the number of possible
 combinations explodes. If it considers them one by
 one, doing what is required for extension A could
 easily have an impact on extension B

Why?  Says who?  Example?

 , if both are
 about similer things, e.g. ports. For this reason
 a host author could decide to do first B then A, if
 that solves his problem. At the same time a plugin
 author could assume (even without been aware of
 this) that the order has to be A then B.

I don't know what this order stuff means at all.  Extensions don't
have an order.

   What mechanism is
   there in LV2's core spec that ensures that extensions will be 
   orthogonal to each other, even if written by authors who don't
   know each other's work, and evaluated by a host in unspecified
   order ?
  
  This also makes no sense.  It might be possible to deliberately
  construct a really, really, really cracked out extension that would
  somehow be in conflict with another, but I can't even come up with
  such a case.  I'd say the chance of this happening with extensions that
  aren't deliberately written to do this is extremely close to 0.
 
 Prove it.

Extensions are usually either new port types, which can't conflict with
anything, or newly added functions, which can't conflict with anything
either.

The only kind of extension that could conflict is what that redefines
the semantics of something very fundamental in the core spec, which is
silly, and again, even if such an extension existed, it doesn't matter,
because that one particular weird extension might not make sense with
such and such a host/plugins/extension/whatever.  So?  If it's
fundamentally incapable of working in some setup, then it won't.

You are making the outrageous claim, the burden of proof is on you.
  
  Even in
  this overwhelmingly unlikely case, if conflicting extensions existed it
  simply would not make sense to implement them both in a single plugin.
 
 The whole idea of a plugin system is that host and plugins can be
 developed separately. This requires that all parts of the API,
 *including their possible interactions and dependencies* are  
 either well-defined, or guaranteed by design not to interfere
 with each other.

Again, what interactions and dependencies?  You're waving your hands
around screaming about conflict with no example or argument to suggest
such conflict is likely or even possible.

Is isn't, and furthermore, if it did happen it's not a big dealer, and
furtherfurthermore, the community would take care of this anyway (why
would anyone do this without a good reason?  and if they did, why would
anyone implement it?)

Here is an actual example of the sort of way extensions might
conflict: Extension A says the block size passed to the process method
must be always 1.  Extension B says the block size passed to the process
method must be always 512.  These extensions conflict.  So what?  You
can't do both on the same plugin, obviously.  The things they describe
inherently conflict.  This is simply not a problem.

If you think it is a problem, then come up with an example for why.  I
can't think of one.

  You not wanting to do stuff is certainly is not an argument
  against LV2.
 
 Having one potential plugin author less means a (small) impact
 on its acceptance. It's not a technical argument, that's true.

Maybe, and everyone would like as many plugins as possible, but you
don't have any concrete reasons.  I'd love to address your concerns, but
you don't have any actual concerns.  One can not make a patch for FUD.

Why should you even care if this conflicting thing is possible anyway?
Will it affect your plugins?  Obviously not, you couldn't implement
conflicting extensions on a single set of plugins anyway, by
definition.

   Should I 

Re: [LAD] How to develop guis for LV2?

2009-11-07 Thread David Robillard
On Sat, 2009-11-07 at 13:41 +0100, Jörn Nettingsmeier wrote:
 Steve Harris wrote:
  On 5 Nov 2009, at 23:33, David Robillard wrote:
  
  On Thu, 2009-11-05 at 22:21 +0100, f...@kokkinizita.net wrote:
  On the LV2 website, Lars Luthman's UI extension is described as:
 
  This extension is written for revision 2 of the LV2 specification
  and is NOT compatible with revisions 3 and later. Do not implement
  this extension in new plugins or hosts, and do not expect it to work
  in old ones. It is only available here for archaeological purposes.
  For anyone genuinely interested and not just taking vain pot shots to
  further some weird personal vendetta or whatever the hell:
 
  The thing that changed in r3 is: persistent references to ports must
  refer to ports by their symbol, and not their index.  Persistent means
  things on disk that might refer to several versions of a plugin in the
  future, nothing about the index has actually changed.  Plugin data
  files, host session files, etc.
  
  This was a hangover from LADSPA, which had confusing and contradictory  
  claims about what should/shouldn't be used to identify ports.
  
  I still don't think there's consensus there.
 
 can you elaborate on this?

Labels are not useful as an identifier for LADSPA ports at all - there
are plugins out there that use the same label for several ports, for
example.  Despite this there's code out there that attempts to use them
as such.

More generally there's been a lot of confusion and screw-up over
identification of plugins.  The spec says to use the ID, which is
annoyingly centralized and limited.  There are plugins in the wild with
conflicting IDs.  Many people suggested using the library name and
plugin label as an identifier instead.  Unfortunately this doesn't work,
there are packages of the same plugins with different library names, or
different distributions of plugins among libraries.   I don't believe
there is a single correct way to refer to a LADSPA plugin that actually
works with all the plugins out there.  Many people just have an
extremely small number of plugins (e.g. 2 or 3 of the most popular big
packages) and don't notice.

The index vs. symbol thing with LV2 is more to do with dynamicism and
versioning, though.

-dr


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] timers

2009-11-07 Thread James Warden
Another thing you can check:

dmesg | grep -i hpet

You'll see if your h/w supports it.

You can read more at
http://en.wikipedia.org/wiki/High_Precision_Event_Timer

J. 

--- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net wrote:

 From: Ralf Mardorf ralf.mard...@alice-dsl.net
 Subject: Re: [LAD] timers
 To: James Warden warj...@yahoo.com
 Cc: linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 8:57 AM
 Thank you very much James and Ray
 :).
 
 Ralf
 
 James Warden wrote:
  yeah, I have added a few things in a startup script.
 Among other things, I have:
  
  chgrp audio /dev/hpet
  echo 1024  /proc/sys/dev/hpet/max-user-freq
  modprobe snd-hrtimer
  
  The modprobe may not be needed anymore as my kernel is
 using hr-timer by default. I wrote this script quite some
 time ago and forgot about it :)
  
  J.
  
  --- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net
 wrote:
  
    
  From: Ralf Mardorf ralf.mard...@alice-dsl.net
  Subject: Re: [LAD] timers
  To: Cc: linux-audio-dev@lists.linuxaudio.org
  Date: Saturday, November 7, 2009, 8:52 AM
  James Warden wrote:
      
  Ralf,
  
  It depends how ALSA was compiled in the
 kernel. Here
        
  is my kernel config related to this matter:
      
  CONFIG_SND=m
  CONFIG_SND_TIMER=m
  CONFIG_SND_PCM=m
  CONFIG_SND_HWDEP=m
  CONFIG_SND_RAWMIDI=m
  CONFIG_SND_SEQUENCER=m
  CONFIG_SND_SEQ_DUMMY=m
  # CONFIG_SND_MIXER_OSS is not set
  # CONFIG_SND_PCM_OSS is not set
  # CONFIG_SND_SEQUENCER_OSS is not set
  CONFIG_SND_HRTIMER=m
  CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
  
  J.
        
  There is another question I've got :S.
  
  spinymouse-s...@64studio:~$ ls -l /dev | grep
 hpet
  crw-rw  1
 root   root    10, 228 2009-11-07
 13:38 hpet
  
  The group for hpet isn't audio, thus I guess a
 user won't
  be able to use it?!
  
  Oops, # CONFIG_SND_HRTIMER is not set, has this
 now
  become something I should post to the 64 Studio
 list? It's the default for the
  64 Studio kernel. It's not a self build kernel.
  
  spinymouse-s...@64studio:~$ cat
  /boot/config-2.6.29-1-multimedia-amd64 | grep
 CONFIG_SND
  CONFIG_SND=m
  CONFIG_SND_TIMER=m
  CONFIG_SND_PCM=m
  CONFIG_SND_HWDEP=m
  CONFIG_SND_RAWMIDI=m
  CONFIG_SND_JACK=y
  CONFIG_SND_SEQUENCER=m
  CONFIG_SND_SEQ_DUMMY=m
  CONFIG_SND_OSSEMUL=y
  CONFIG_SND_MIXER_OSS=m
  CONFIG_SND_PCM_OSS=m
  CONFIG_SND_PCM_OSS_PLUGINS=y
  CONFIG_SND_SEQUENCER_OSS=y
  # CONFIG_SND_HRTIMER is not set
  # CONFIG_SND_DYNAMIC_MINORS is not set
  CONFIG_SND_SUPPORT_OLD_API=y
  CONFIG_SND_VERBOSE_PROCFS=y
  # CONFIG_SND_VERBOSE_PRINTK is not set
  # CONFIG_SND_DEBUG is not set
  CONFIG_SND_VMASTER=y
  CONFIG_SND_MPU401_UART=m
  CONFIG_SND_OPL3_LIB=m
  CONFIG_SND_VX_LIB=m
  CONFIG_SND_AC97_CODEC=m
  CONFIG_SND_DRIVERS=y
  CONFIG_SND_PCSP=m
  CONFIG_SND_DUMMY=m
  CONFIG_SND_VIRMIDI=m
  CONFIG_SND_MTS64=m
  CONFIG_SND_SERIAL_U16550=m
  CONFIG_SND_MPU401=m
  CONFIG_SND_PORTMAN2X4=m
  CONFIG_SND_AC97_POWER_SAVE=y
  CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
  CONFIG_SND_SB_COMMON=m
  CONFIG_SND_SB16_DSP=m
  CONFIG_SND_PCI=y
  CONFIG_SND_AD1889=m
  CONFIG_SND_ALS300=m
  CONFIG_SND_ALS4000=m
  CONFIG_SND_ALI5451=m
  CONFIG_SND_ATIIXP=m
  CONFIG_SND_ATIIXP_MODEM=m
  CONFIG_SND_AU8810=m
  CONFIG_SND_AU8820=m
  CONFIG_SND_AU8830=m
  # CONFIG_SND_AW2 is not set
  CONFIG_SND_AZT3328=m
  CONFIG_SND_BT87X=m
  # CONFIG_SND_BT87X_OVERCLOCK is not set
  CONFIG_SND_CA0106=m
  CONFIG_SND_CMIPCI=m
  CONFIG_SND_OXYGEN_LIB=m
  CONFIG_SND_OXYGEN=m
  CONFIG_SND_CS4281=m
  CONFIG_SND_CS46XX=m
  CONFIG_SND_CS46XX_NEW_DSP=y
  CONFIG_SND_CS5530=m
  CONFIG_SND_DARLA20=m
  CONFIG_SND_GINA20=m
  CONFIG_SND_LAYLA20=m
  CONFIG_SND_DARLA24=m
  CONFIG_SND_GINA24=m
  CONFIG_SND_LAYLA24=m
  CONFIG_SND_MONA=m
  CONFIG_SND_MIA=m
  CONFIG_SND_ECHO3G=m
  CONFIG_SND_INDIGO=m
  CONFIG_SND_INDIGOIO=m
  CONFIG_SND_INDIGODJ=m
  CONFIG_SND_EMU10K1=m
  CONFIG_SND_EMU10K1X=m
  CONFIG_SND_ENS1370=m
  CONFIG_SND_ENS1371=m
  CONFIG_SND_ES1938=m
  CONFIG_SND_ES1968=m
  CONFIG_SND_FM801=m
  CONFIG_SND_FM801_TEA575X_BOOL=y
  CONFIG_SND_FM801_TEA575X=m
  CONFIG_SND_HDA_INTEL=m
  # CONFIG_SND_HDA_HWDEP is not set
  CONFIG_SND_HDA_INPUT_BEEP=y
  CONFIG_SND_HDA_CODEC_REALTEK=y
  CONFIG_SND_HDA_CODEC_ANALOG=y
  CONFIG_SND_HDA_CODEC_SIGMATEL=y
  CONFIG_SND_HDA_CODEC_VIA=y
  CONFIG_SND_HDA_CODEC_ATIHDMI=y
  CONFIG_SND_HDA_CODEC_NVHDMI=y
  CONFIG_SND_HDA_CODEC_INTELHDMI=y
  CONFIG_SND_HDA_ELD=y
  CONFIG_SND_HDA_CODEC_CONEXANT=y
  CONFIG_SND_HDA_CODEC_CMEDIA=y
  CONFIG_SND_HDA_CODEC_SI3054=y
  CONFIG_SND_HDA_GENERIC=y
  CONFIG_SND_HDA_POWER_SAVE=y
  CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
  CONFIG_SND_HDSP=m
  CONFIG_SND_HDSPM=m
  CONFIG_SND_HIFIER=m
  CONFIG_SND_ICE1712=m
  CONFIG_SND_ICE1724=m
  CONFIG_SND_INTEL8X0=m
  CONFIG_SND_INTEL8X0M=m
  CONFIG_SND_KORG1212=m
  CONFIG_SND_MAESTRO3=m
  CONFIG_SND_MIXART=m
  CONFIG_SND_NM256=m
  CONFIG_SND_PCXHR=m
  CONFIG_SND_RIPTIDE=m
  CONFIG_SND_RME32=m
  CONFIG_SND_RME96=m
  CONFIG_SND_RME9652=m
  CONFIG_SND_SONICVIBES=m
  

Re: [LAD] timers

2009-11-07 Thread Emanuel Rumpf
2009/11/7 James Warden warj...@yahoo.com:

 You can read more at
 http://en.wikipedia.org/wiki/High_Precision_Event_Timer


Thanks for your interrest.

I found some kernel docu:
http://www.mjmwired.net/kernel/Documentation/timers/

And:
http://lwn.net/Articles/167897/


Looks like HPET and RTC are hardware devices, where HPET is meant
to be superior and replace the RTC.

I still don't get: What is the HR-timer ?
I mean how does it compare to the HPET ?
When to decide for the HPET, when for the HRT  api ?
Does one if it depend on the other ?

The kernel-devs seem to distinguish between high-resolution clock (=hpet ??)
and HR-timer :
We used the high-resolution clock subsystem ontop of hrtimers to verify
152 the hrtimer implementation details in praxis ... 



-- 
E.R.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] How to develop guis for LV2?

2009-11-07 Thread Chris Cannam
2009/11/7 Jörn Nettingsmeier netti...@folkwang-hochschule.de:
 This was a hangover from LADSPA, which had confusing and contradictory
 claims about what should/shouldn't be used to identify ports.

 I still don't think there's consensus there.

 can you elaborate on this?

 archive links would be good, too.

I think Steve may be thinking of the inflammatory subject of how you
identify plugins, not ports.  I'm pretty sure LADSPA ports are always
by number.


Chris
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] timers

2009-11-07 Thread Paul Davis
On Sat, Nov 7, 2009 at 2:51 PM, Emanuel Rumpf xb...@web.de wrote:

 Looks like HPET and RTC are hardware devices, where HPET is meant
 to be superior and replace the RTC.

correct, to a large extent.

 I still don't get: What is the HR-timer ?
 I mean how does it compare to the HPET ?
 When to decide for the HPET, when for the HRT  api ?
 Does one if it depend on the other ?

Modern motherboads come with timers that are capable of massively
higher precision than older ones, and allow for very precise
scheduling of timer interrupts quite along time in advance of the
timer going off. The existence of this kind of capability can be used
to implement system scheduling in some moderately different ways.

HR-Timer is the name given to some kernel patches (now in the
mainstream kernel) that allowed the use of this timing hardware. The
changes were a mix of new code that deals with the new capabilities,
and patches that reimplement the existing system timer/scheduling
design using the new hardware.

So, HR-Timer (patches/code/design) requires a high res clock (like HPET).

Note that one of the possible ways to use the HR Time infrastructure
is to go totally tickless. In this design, the kernel is no longer
woken at fixed, regular intervals as has been the case for the entire
history of Linux. Instead, the kernel constantly adds new deadline
times which, when expired, generate an interrupt. In the very, very
unlikely case of there being only one process that is runnable, you
can it without any timer deadlines at all (until some other process
becomes runnable). Obviously, its rather complex, but also totally
awesome stuff. This is separate from HR-Timer, but relies upon it, and
it generally referred to as a tickless kernel.

the HR-Timer infrastructure is a MUCH better basis for scheduling
MIDI. Even with RTC=1 (10^4), you still don't have a clock that is
running in sync with the nominal MIDI data rate. with HR-Timer in
place, you can actually schedule the delivery of MIDI bytes precisely
on time (wake me up in another 0.3msecs) and not rely on a
metronomic tick like RTC.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] How to develop guis for LV2?

2009-11-07 Thread Gabriel M. Beddingfield

On Sat, 7 Nov 2009, David Robillard wrote:

 A better analogy would be well-formed XML or RDF, where things can
 easily be added but it doesn't break anything because the technology has
 been designed specifically to handle this; or my shared library analogy
 from earlier.

rant
Except when you want your XHTML (1.1)+MathML (v3)+SVG (1.1)+CSS (Level
3)+XSLT (1.0)+Javascript content to work as expected in everyone's
browser.  It doesn't break in the sense that babies aren't
dying... but it doesn't *work*, either.  Manwhile the hapless user
with IE6 is thinking, Why doesn't this stuff work?? It's just a web
page! Microsoft's site looks fine... so it must be /them/.

Hell, even if you stick to HTML 4.0 + CSS 1... you blinkstill/blink 
have to find workarounds for IE 6.
/rant

FWIW, I think XML is awesome... but this part grates on my nerves.

I think LV2 looks awesome, too... but I can't get a grip on this...

THE PROBLEM:  I *want* to write a host that can load anyone's LV2 synth 
and FX... and it just works.  I want to write synths and FX that will work 
in anyone's host.[5]  Where do I start?

Looking over the docs... it looks like a host has to support nearly every 
extension listed on the wiki[1] if I want to accomplish this.  The more I 
dig in... and the more I read David's comments... the more that this 
appears to be the case.  And if something gets added to the list, looks 
like I'll have to update my host to support it.

I know of two synths, zyn[3] and linuxsampler[4].  Zyn requires rtmempool 
and wants dynparam.  LinuxSampler wants hardRtCapable (whatever that is) 
and saverestore.  I can't find mention of EventPort or MidiEvent in the 
RDF files -- but I'm sure those are necessary, too (since they're synths).

Meanwhile, I know of one LV2 host for synths, zynjacku.[2] I have no idea 
which extensions it supports... except that I know it supports whatever 
zyn has (because it appears Nedko did them together).  So, if I write a 
synth that requires URI Map -- I don't know if it will work with zynjacku 
without digging into source code or bugging Nedko about it.

Then, Lars's tutorial appears to be using his own portgroups extension, as 
well as some kind of namespace extension, and I'm not sure if he's using 
Midi Port or Midi Event.  I have no idea if his examples will work in 
zynjacku without compiling them and trying it.

And this is before considering GUI extensions

Looking at this, people say, This is good, but it's kind of a mess at the 
moment.  Can we get some sort of 'canonical list of extensions' or 
/something/ stable for devs to work from?  To which Dave replies, FUD! 
FUD! FUD!  Such a list accomplishes nothing!

Am I just missing it, or what?  What's the solution to The Problem?  Is 
there core infrastructure (critical extensions) still missing or 
something? I'm _really_ willing to help, but so far every idea that I've 
put forth has been shot down... and Dave *seems* to think that The 
Problem isn't a problem.

Thanks,
Gabriel

[1] http://lv2plug.in/docs/index.php?title=Main_Page
[2] http://home.gna.org/zynjacku/
[3] aka zynadd http://home.gna.org/zyn/
[4] Version 1.0 at least includes an LV2 version.
[5] Yes, I know there's cases where you have something that is
 so application-specific that you can't always do this.  I
 think it's really cool that LV2 is extensible so that you
 can work around it.
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] How to develop guis for LV2?

2009-11-07 Thread fons
On Sat, Nov 07, 2009 at 12:52:52PM -0500, David Robillard wrote:

 This wouldn't be an LV2 plugin at all.

In spirit, no. But technically it would be a
perfectly conforming plugin.

Ciao,

-- 
FA

Io lo dico sempre: l'Italia è troppo stretta e lunga.

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] timers

2009-11-07 Thread James Warden
Ralph,

As I said, this startup script is something I wrote a long time ago. The 
max-user-freq is for apps like video players, some polling frequency for 
improving the playback performance (smoother playback). The default used to be 
64Hz. Increasing it to 1024 was making mplayer or xine much more performant. 

Actually, I will reboot my DAW when I have some spare time without this startup 
script (except for the /dev/hpet group permission) and see what the newer 
kernel sets as default. 

J.

--- On Sat, 11/7/09, Ralf Mardorf ralf.mard...@alice-dsl.net wrote:

 From: Ralf Mardorf ralf.mard...@alice-dsl.net
 Subject: Re: [LAD] timers
 To: Paul Davis p...@linuxaudiosystems.com, Emanuel Rumpf 
 xb...@web.de, James Warden warj...@yahoo.com
 Cc: linux-audio-dev@lists.linuxaudio.org
 Date: Saturday, November 7, 2009, 4:40 PM
 Summarized:
 
 I guess my mobo supports hpet :).
 
 $ dmesg | grep -i hpet
 [    0.00] ACPI: HPET 77EE89C0, 0038 (r1
 ATI    ASUSACPI 42302E31 AWRD   
    98)
 [    0.00] ACPI: HPET id: 0x8200 base:
 0xfed0
 [    0.000999] hpet clockevent registered
 [    0.000999] HPET: 4 timers in total, 0 timers
 will be used for per-cpu timer
 [    0.177117] hpet0: at MMIO 0xfed0, IRQs 2,
 8, 0, 0
 [    0.177123] hpet0: 4 comparators, 32-bit
 14.318180 MHz counter
 [    1.166497] rtc0: alarms up to one month, 242
 bytes nvram, hpet irqs
 
 1. The kernel has to support it too.
 2. If the kernel-rt does support it, I need to add a
 startup script:
 
    chgrp audio /dev/hpet
    echo 1024 
 /proc/sys/dev/hpet/max-user-freq
    modprobe snd-hrtimer
      
 Here I don't understand what the value 1024, written to
 max-user-freq does mean ;).
 
 3. I need to launch JACK2 with the option -c, e.g.:
 
 jackd -Rc h -dalsa -dhw:0 -r96000 -p512 -n2 -Xseq
 
 4. The sequencer timing source needs to be set up to hpet
 or hrtimer too?
 rosegarden -v 1.7.3 and qtractor -v 0.4.3.1418 aren't able
 to do it?
 
 Or will the -c option for JACK2 replace a chosen timer
 for Qtractor or Rosegarden with hpet?
 
 ---
 
 With a Linux kernel, you need the newer rtc-cmos
 hardware clock device driver rather than the original rtc
 driver. (http://en.wikipedia.org/wiki/High_Precision_Event_Timer)
 
 I guess this is within the vanilla kernel source code?!
 
 Cheers,
 Ralf
 


  
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] How to develop guis for LV2?

2009-11-07 Thread Patrick Shirkey

On 11/08/2009 08:37 AM, Gabriel M. Beddingfield wrote:
 On Sat, 7 Nov 2009, David Robillard wrote:


 A better analogy would be well-formed XML or RDF, where things can
 easily be added but it doesn't break anything because the technology has
 been designed specifically to handle this; or my shared library analogy
 from earlier.
  
 rant
 Except when you want your XHTML (1.1)+MathML (v3)+SVG (1.1)+CSS (Level
 3)+XSLT (1.0)+Javascript content to work as expected in everyone's
 browser.  It doesn't break in the sense that babies aren't
 dying... but it doesn't *work*, either.  Manwhile the hapless user
 with IE6 is thinking, Why doesn't this stuff work?? It's just a web
 page! Microsoft's site looks fine... so it must be /them/.

 Hell, even if you stick to HTML 4.0 + CSS 1... youblinkstill/blink
 have to find workarounds for IE 6.
 /rant

 FWIW, I think XML is awesome... but this part grates on my nerves.

 I think LV2 looks awesome, too... but I can't get a grip on this...

 THE PROBLEM:  I *want* to write a host that can load anyone's LV2 synth
 and FX... and it just works.  I want to write synths and FX that will work
 in anyone's host.[5]  Where do I start?




Would a set of reference template code written for the various languages 
that we have at our disposal be of any use here?

I again ask for submissions. Even if we just have one template that we 
can agree on it won't be that much effort to port it across to the other 
languages that we would like to have supporting LV2. that will make 
things that much clearer for developers across the board.

The standard in the closed source world is to provide a package with the 
example code in place add some descriptive comments and a web accessible 
howto and we are good to go.




 Looking over the docs... it looks like a host has to support nearly every
 extension listed on the wiki[1] if I want to accomplish this.  The more I
 dig in... and the more I read David's comments... the more that this
 appears to be the case.  And if something gets added to the list, looks
 like I'll have to update my host to support it.

 I know of two synths, zyn[3] and linuxsampler[4].  Zyn requires rtmempool
 and wants dynparam.  LinuxSampler wants hardRtCapable (whatever that is)
 and saverestore.  I can't find mention of EventPort or MidiEvent in the
 RDF files -- but I'm sure those are necessary, too (since they're synths).

 Meanwhile, I know of one LV2 host for synths, zynjacku.[2] I have no idea
 which extensions it supports... except that I know it supports whatever
 zyn has (because it appears Nedko did them together).  So, if I write a
 synth that requires URI Map -- I don't know if it will work with zynjacku
 without digging into source code or bugging Nedko about it.

 Then, Lars's tutorial appears to be using his own portgroups extension, as
 well as some kind of namespace extension, and I'm not sure if he's using
 Midi Port or Midi Event.  I have no idea if his examples will work in
 zynjacku without compiling them and trying it.



It's clear that we need to better define the plugin publishing and 
dependency system for LV2?

We need a more transparent way of referencing an extension/plugin by to 
it's dependencies.





 And this is before considering GUI extensions

 Looking at this, people say, This is good, but it's kind of a mess at the
 moment.  Can we get some sort of 'canonical list of extensions' or
 /something/ stable for devs to work from?  To which Dave replies, FUD!
 FUD! FUD!  Such a list accomplishes nothing!

 Am I just missing it, or what?  What's the solution to The Problem?  Is
 there core infrastructure (critical extensions) still missing or
 something? I'm _really_ willing to help, but so far every idea that I've
 put forth has been shot down... and Dave *seems* to think that The
 Problem isn't a problem.

 Thanks,
 Gabriel

 [1] http://lv2plug.in/docs/index.php?title=Main_Page
 [2] http://home.gna.org/zynjacku/
 [3] aka zynadd http://home.gna.org/zyn/
 [4] Version 1.0 at least includes an LV2 version.
 [5] Yes, I know there's cases where you have something that is
   so application-specific that you can't always do this.  I
   think it's really cool that LV2 is extensible so that you
   can work around it.
 ___
 Linux-audio-dev mailing list
 Linux-audio-dev@lists.linuxaudio.org
 http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev

___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] How to develop guis for LV2?

2009-11-07 Thread Gabriel M. Beddingfield


On Sun, 8 Nov 2009, Patrick Shirkey wrote:

 Would a set of reference template code written for the various languages
 that we have at our disposal be of any use here?

I don't think so.  ATM, there's plenty of high-quality reference code... 
especially with Lars's tutorial.  This is a different issue.

 It's clear that we need to better define the plugin publishing and
 dependency system for LV2?

Not quite (though that would be a Good Thing).

More like a standard that says something like..

FOR SYNTH HOSTS:


If you follow these guidelines, you may call yourself an LV2 Synth Host 
and you will be able to work cleanly with every synth that calls itself an 
LV2 Synth Plugin.

   + Support (at least) extensions A, B, and C.
   + The synths will have several MIDI input ports (for note data)
 and several audio output ports.
   + All configuration will be done with the events extension.
   + All feedback will be done with the events extension.
   + The plugins may provide a GUI interface.  Its width will be
 200, 400, 600, or 800 pixels.  Its height will be a multiple
 of 100 pixels.

FOR SYNTH PLUGINS:
--

If you follow these guidelines, you may call yourself an LV2 Synth 
Plugin and you will be able to work cleanly with every host that calls 
itself an LV2 Synth Host.

   + Freely use extensions A, B, and C.  If you use any extra
 LV2 extensions, try to make them optional.  Otherwise,
 please simply call yourself an LV2 Plugin, because you
 won't work with every LV2 Synth Host.
   + Provide several MIDI in-ports for note data, and several
 audio out-ports.
   + All configuration will be done with the events extension.
 (This does not prohibit you from also doing the same over MIDI)
   + All feedback will be done with the events extension.
   + You are encouraged to create a GUI for your plugin.  Its
 width shall be 200, 400, 600, or 800 pixels.  Its height
 shall be a multiple of 100 pixels.

Would somthing like this be *so* bad?  There's still room for innovation. 
There's still room for plugin authors and host authors to get together and 
say, We all want to start supporting extension D.  And that would still 
be cool because all the old plugins will still work.

-gabriel
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] How to develop guis for LV2?

2009-11-07 Thread Patrick Shirkey

On 11/08/2009 03:31 PM, Gabriel M. Beddingfield wrote:


 On Sun, 8 Nov 2009, Patrick Shirkey wrote:

 Would a set of reference template code written for the various languages
 that we have at our disposal be of any use here?

 I don't think so.  ATM, there's plenty of high-quality reference 
 code... especially with Lars's tutorial.  This is a different issue.


Is it just me that feels that the existing examples are too obscure and 
set the entry level too high for the average developer as well as miss 
out important use cases specific to different languages?

On another tangent is LV2 supposed to be a new standard and therefore 
provide an accessible documentation codebase for all potential users or 
is LV2 designed as a theoretical system which only advanced developers 
are given insight into and the rest have to fend for themselves.



 It's clear that we need to better define the plugin publishing and
 dependency system for LV2?

 Not quite (though that would be a Good Thing).



What you have written below could also be considered a definition of a 
set of rules for publishing and specifying dependencies. However it 
doesn't completely address the dependency issue. Even if this standard 
was followed how would we define the categories such as LV2 Synth 
Plugin? Is that something that would be handled as someone else has 
suggested on a yearly basis by a committee?



 More like a standard that says something like..

 FOR SYNTH HOSTS:
 

 If you follow these guidelines, you may call yourself an LV2 Synth 
 Host and you will be able to work cleanly with every synth that calls 
 itself an LV2 Synth Plugin.

   + Support (at least) extensions A, B, and C.
   + The synths will have several MIDI input ports (for note data)
 and several audio output ports.
   + All configuration will be done with the events extension.
   + All feedback will be done with the events extension.
   + The plugins may provide a GUI interface.  Its width will be
 200, 400, 600, or 800 pixels.  Its height will be a multiple
 of 100 pixels.

 FOR SYNTH PLUGINS:
 --

 If you follow these guidelines, you may call yourself an LV2 Synth 
 Plugin and you will be able to work cleanly with every host that 
 calls itself an LV2 Synth Host.

   + Freely use extensions A, B, and C.  If you use any extra
 LV2 extensions, try to make them optional.  Otherwise,
 please simply call yourself an LV2 Plugin, because you
 won't work with every LV2 Synth Host.
   + Provide several MIDI in-ports for note data, and several
 audio out-ports.
   + All configuration will be done with the events extension.
 (This does not prohibit you from also doing the same over MIDI)
   + All feedback will be done with the events extension.
   + You are encouraged to create a GUI for your plugin.  Its
 width shall be 200, 400, 600, or 800 pixels.  Its height
 shall be a multiple of 100 pixels.

 Would somthing like this be *so* bad?  There's still room for 
 innovation. There's still room for plugin authors and host authors to 
 get together and say, We all want to start supporting extension D.  
 And that would still be cool because all the old plugins will still work.

 -gabriel
___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev


Re: [LAD] How to develop guis for LV2?

2009-11-07 Thread Jeff McClintock
insert obligatory GMPI joke here
-dr

GMPI is quietly and successfully in use as the new native plugin format of
SynthEdit. I've so far written 70 plugins with it, and others are writing
more. SynthEdit's previous plugin format   has about 1000 plugins available,
hopefully also will be ported to GMPI (aka SEM V3)... so GMPI can't really
be called vaporware any more.

Jeff


___
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev