* Re: Easy question: ppq and tempo [not found] <200205241400.QAA27210@mailin.webmailer.de> @ 2002-05-24 14:18 ` Tim Goetze 2002-05-24 14:37 ` Paul Davis 0 siblings, 1 reply; 8+ messages in thread From: Tim Goetze @ 2002-05-24 14:18 UTC (permalink / raw) To: Paul Davis; +Cc: Gerald Grabner, alsa-devel Paul Davis wrote: >>>I'm just starting to write my first alsa-lib midi applications. I'm >>>wondering what the acronym ppq stands for and what it means (especially >>>in relation to tempo). Unfortunately, I didn't find any docu on the >>>topic of tempo. > >> int ppq; /* time resolution, ticks/quarter */ > > [ ... ] > >>the value is usually synonymous to the 'division' of a standard midi >>file. > >"ppq" stands for "parts per quarter". as the header file suggests >without much explanation, its length of a quarter note expressed in >clock ticks. if the meter is 4/4 and the tempo is 120bpm, then a >quarter note lasts 0.5 seconds. if the clock used for timing ticks 100 >times per second, there are 50 clock ticks per quarter note, so >ppq=50. though usually it will be a number divisible by 3 and 4 to make triplets and even beats alike coincide with integer ticks. cubase on the atari used to set this to 192, though some do prefer 480 or even more to allow for minute timing ('groove') adjustments. tim _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Easy question: ppq and tempo 2002-05-24 14:18 ` Easy question: ppq and tempo Tim Goetze @ 2002-05-24 14:37 ` Paul Davis 2002-05-24 17:35 ` Frank van de Pol 0 siblings, 1 reply; 8+ messages in thread From: Paul Davis @ 2002-05-24 14:37 UTC (permalink / raw) To: Tim Goetze; +Cc: Gerald Grabner, alsa-devel >>"ppq" stands for "parts per quarter". as the header file suggests >>without much explanation, its length of a quarter note expressed in >>clock ticks. if the meter is 4/4 and the tempo is 120bpm, then a >>quarter note lasts 0.5 seconds. if the clock used for timing ticks 100 >>times per second, there are 50 clock ticks per quarter note, so >>ppq=50. > >though usually it will be a number divisible by 3 and 4 to make >triplets and even beats alike coincide with integer ticks. cubase >on the atari used to set this to 192, though some do prefer 480 or >even more to allow for minute timing ('groove') adjustments. where "it" is the clock ticks per second. thanks tim, i had always wondered why 192 or 480 etc. was used, and never knew until now :) --p _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Easy question: ppq and tempo 2002-05-24 14:37 ` Paul Davis @ 2002-05-24 17:35 ` Frank van de Pol 2002-05-31 16:44 ` Gerald Grabner 0 siblings, 1 reply; 8+ messages in thread From: Frank van de Pol @ 2002-05-24 17:35 UTC (permalink / raw) To: Paul Davis; +Cc: Tim Goetze, Gerald Grabner, alsa-devel I don't want to spoil the party, but PPQ is indeed parts per quarter note and is used to specify the desired resoluting for the sequencer timing grid. Let me explain: If the sequencer is set to eg. 4 PPQ this means that a quarter note devided in 4 parts, actually being 16th notes in 4/4 meter. Actually, I've a Roland DR-550mkII drum machine on my desk which works in 4 PPQ. On it's display there is a grid with 16 columns, at 4 PPQ every grid unit corresponds with one tick (as specified in the song position field for an event). Since a 4 PPQ is rather course for most sequences (you get instantanious quantisation!) most sequencer applications use a higher resolution, eg. 384 PPQ (Steinberg Cubase) or 480 (Emagic Logic). If the tempo would be set to 120 bpm, which is 120 quarter notes per minute or 2 quarter notes per second, then in case of a 4 PPQ sequence there would be 8 parts per second. Changing the tempo (quite a common operation) would leave the sequencer events at the same grid position while changing the time (in seconds) at which they would be dispatched So the "it" Paul mentioned has nothing (directly) to do with number of seconds (Paul, I presume you were refering to the clock frequency the sequencer engine is running at). Frank. see also an ancient document on the ALSA sequencer: http://www.alsa-project.org/~frank/alsa-sequencer/node5.html On Fri, May 24, 2002 at 10:37:49AM -0400, Paul Davis wrote: > >>"ppq" stands for "parts per quarter". as the header file suggests > >>without much explanation, its length of a quarter note expressed in > >>clock ticks. if the meter is 4/4 and the tempo is 120bpm, then a > >>quarter note lasts 0.5 seconds. if the clock used for timing ticks 100 > >>times per second, there are 50 clock ticks per quarter note, so > >>ppq=50. > > > >though usually it will be a number divisible by 3 and 4 to make > >triplets and even beats alike coincide with integer ticks. cubase > >on the atari used to set this to 192, though some do prefer 480 or > >even more to allow for minute timing ('groove') adjustments. > > where "it" is the clock ticks per second. > > thanks tim, i had always wondered why 192 or 480 etc. was used, and > never knew until now :) > > --p > > _______________________________________________________________ > > Don't miss the 2002 Sprint PCS Application Developer's Conference > August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm > > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/alsa-devel -- +---- --- -- - - - - | Frank van de Pol -o) A-L-S-A | FvdPol@home.nl /\\ Sounds good! | http://www.alsa-project.org _\_v | Linux - Why use Windows if we have doors available? _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Easy question: ppq and tempo 2002-05-24 17:35 ` Frank van de Pol @ 2002-05-31 16:44 ` Gerald Grabner 0 siblings, 0 replies; 8+ messages in thread From: Gerald Grabner @ 2002-05-31 16:44 UTC (permalink / raw) To: alsa-devel Hi, last week I asked about the meaning of ppq - thanks a lot so far for all the answers! Now I have a related question, namely about tempo: If I set ppq to 1, then tempo should be the duration of a quarter note in microseconds, right? But there seems to be a factor of about 100 between this and what I get with my test program. Setting tempo to 100000000 makes one quarter last about one second. Is there something wrong with my program or what's my mistake? Thanks again, Gerald -- snd_seq_queue_tempo_t *queue_tempo ; snd_seq_get_queue_tempo (seq_handle, queue_id, queue_tempo) ; int ppq = 1 ; snd_seq_queue_tempo_set_ppq (queue_tempo, ppq) ; unsigned int tempo = 100000000 ; snd_seq_queue_tempo_set_tempo (queue_tempo, tempo) ; snd_seq_set_queue_tempo (seq_handle, queue_id, queue_tempo) ; snd_seq_ev_clear(&ev); snd_seq_ev_set_source(&ev, port_id); snd_seq_ev_set_subs(&ev); snd_seq_ev_set_noteon(&ev, 9, 60, 127) ; snd_seq_tick_time_t tick = 0 ; for ( int i=0 ; i<4 ; i++ ) { snd_seq_ev_schedule_tick(&ev, queue_id, 0, tick); snd_seq_event_output(seq_handle, &ev); tick++ ; } snd_seq_drain_output(seq_handle); _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ^ permalink raw reply [flat|nested] 8+ messages in thread
* Easy question: ppq and tempo @ 2002-05-24 7:57 Gerald Grabner 2002-05-24 10:48 ` Tim Goetze 0 siblings, 1 reply; 8+ messages in thread From: Gerald Grabner @ 2002-05-24 7:57 UTC (permalink / raw) To: alsa-devel Hi, I'm just starting to write my first alsa-lib midi applications. I'm wondering what the acronym ppq stands for and what it means (especially in relation to tempo). Unfortunately, I didn't find any docu on the topic of tempo. Thanks for your help, Gerald _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Easy question: ppq and tempo 2002-05-24 7:57 Gerald Grabner @ 2002-05-24 10:48 ` Tim Goetze 2002-05-24 14:03 ` Paul Davis 0 siblings, 1 reply; 8+ messages in thread From: Tim Goetze @ 2002-05-24 10:48 UTC (permalink / raw) To: Gerald Grabner; +Cc: alsa-devel Gerald Grabner wrote: >Hi, > >I'm just starting to write my first alsa-lib midi applications. I'm >wondering what the acronym ppq stands for and what it means (especially >in relation to tempo). Unfortunately, I didn't find any docu on the >topic of tempo. from <sound/asequencer.h>: /* queue tempo */ struct sndrv_seq_queue_tempo { int queue; /* sequencer queue */ unsigned int tempo; /* current tempo, us/tick */ int ppq; /* time resolution, ticks/quarter */ unsigned int skew_value; /* queue skew */ unsigned int skew_base; /* queue skew base */ char reserved[24]; /* for the future */ }; the value is usually synonymous to the 'division' of a standard midi file. tim _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Easy question: ppq and tempo 2002-05-24 10:48 ` Tim Goetze @ 2002-05-24 14:03 ` Paul Davis 2002-05-24 14:47 ` Richard Bown 0 siblings, 1 reply; 8+ messages in thread From: Paul Davis @ 2002-05-24 14:03 UTC (permalink / raw) To: Tim Goetze; +Cc: Gerald Grabner, alsa-devel >>I'm just starting to write my first alsa-lib midi applications. I'm >>wondering what the acronym ppq stands for and what it means (especially >>in relation to tempo). Unfortunately, I didn't find any docu on the >>topic of tempo. > int ppq; /* time resolution, ticks/quarter */ [ ... ] >the value is usually synonymous to the 'division' of a standard midi >file. "ppq" stands for "parts per quarter". as the header file suggests without much explanation, its length of a quarter note expressed in clock ticks. if the meter is 4/4 and the tempo is 120bpm, then a quarter note lasts 0.5 seconds. if the clock used for timing ticks 100 times per second, there are 50 clock ticks per quarter note, so ppq=50. --p _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Easy question: ppq and tempo 2002-05-24 14:03 ` Paul Davis @ 2002-05-24 14:47 ` Richard Bown 0 siblings, 0 replies; 8+ messages in thread From: Richard Bown @ 2002-05-24 14:47 UTC (permalink / raw) To: alsa-devel Paul Davis wrote: > "ppq" stands for "parts per quarter". Rather boringly I was under the impression it was "pulses per quarter note" and that's why you sometimes see it as PPQN as well as PPQ. Sorry. R -- http://www.all-day-breakfast.com/rosegarden http://www.bownie.com _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2002-05-31 16:45 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200205241400.QAA27210@mailin.webmailer.de>
2002-05-24 14:18 ` Easy question: ppq and tempo Tim Goetze
2002-05-24 14:37 ` Paul Davis
2002-05-24 17:35 ` Frank van de Pol
2002-05-31 16:44 ` Gerald Grabner
2002-05-24 7:57 Gerald Grabner
2002-05-24 10:48 ` Tim Goetze
2002-05-24 14:03 ` Paul Davis
2002-05-24 14:47 ` Richard Bown
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.