[PD-cvs] pd/src d_dac.c,1.3.4.1,1.3.4.2 m_sched.c,1.5.4.1,1.5.4.2 s_audio.c,1.5.4.1,1.5.4.2 s_audio_alsa.c,1.5.4.1,1.5.4.2 s_audio_alsa.h,1.1,1.1.4.1 s_audio_alsamm.c,1.1.4.1,1.1.4.2 s_audio_asio.cpp,1.1.4.8,1.1.4.9 s_audio_jack.c,1.5,1.5.4.1 s_audio_mmio.c,1.4,1.4.4.1 s_audio_oss.c,1.6,1.6.4.1 s_audio_pa.c,1.4,1.4.4.1 s_audio_sgi.c,1.1,1.1.4.1 s_file.c,1.2.4.2,1.2.4.3 s_main.c,1.7.4.1,1.7.4.2 s_stuff.h,1.5.4.1,1.5.4.2 u_main.tk,1.4.4.2,1.4.4.3

IOhannes m zmölnig zmoelnig at users.sourceforge.net
Wed Nov 10 14:47:12 CET 2004


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19550

Modified Files:
      Tag: devel_0_38
	d_dac.c m_sched.c s_audio.c s_audio_alsa.c s_audio_alsa.h 
	s_audio_alsamm.c s_audio_asio.cpp s_audio_jack.c 
	s_audio_mmio.c s_audio_oss.c s_audio_pa.c s_audio_sgi.c 
	s_file.c s_main.c s_stuff.h u_main.tk 
Log Message:
added settable "dacblocksize" so [dac~] and [adc~] can run on other blo cksizes than 64. might give us some less latency


Index: s_audio_asio.cpp
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/s_audio_asio.cpp,v
retrieving revision 1.1.4.8
retrieving revision 1.1.4.9
diff -C2 -d -r1.1.4.8 -r1.1.4.9
*** s_audio_asio.cpp	9 Nov 2004 15:30:37 -0000	1.1.4.8
--- s_audio_asio.cpp	10 Nov 2004 13:47:09 -0000	1.1.4.9
***************
*** 361,368 ****
  	/* calculate ringbuffer length */
  	/* a strange way to find the least common multiple, 
! 	 * but works, since DEFDACBLKSIZE (expt 2 x)        */
  
! 	asio_ringbuffer_length = asio_bufsize * DEFDACBLKSIZE;
! 	while ( !(asio_ringbuffer_length % DEFDACBLKSIZE) && 
  			!(asio_ringbuffer_length % asio_bufsize))
  	{
--- 361,368 ----
  	/* calculate ringbuffer length */
  	/* a strange way to find the least common multiple, 
! 	 * but works, since sys_dacblocksize (expt 2 x)        */
  
! 	asio_ringbuffer_length = asio_bufsize * sys_dacblocksize;
! 	while ( !(asio_ringbuffer_length % sys_dacblocksize) && 
  			!(asio_ringbuffer_length % asio_bufsize))
  	{
***************
*** 513,522 ****
  }
  
! #if SIMD_CHKCNT(DEFDACBLKSIZE)
! inline void copyblock(t_sample *dst,t_sample *src) { copyvec_simd(dst,src,DEFDACBLKSIZE); }
! inline void zeroblock(t_sample *dst) { zerovec_simd(dst,DEFDACBLKSIZE); }
  #else
! inline void copyblock(t_sample *dst,t_sample *src) { memcpy(dst,src,DEFDACBLKSIZE*sizeof(t_sample)); }
! inline void zeroblock(t_sample *dst) { memset(dst,0,DEFDACBLKSIZE*sizeof(t_sample)); }
  #endif
  
--- 513,522 ----
  }
  
! #if SIMD_CHKCNT(sys_dacblocksize)
! inline void copyblock(t_sample *dst,t_sample *src) { copyvec_simd(dst,src,sys_dacblocksize); }
! inline void zeroblock(t_sample *dst) { zerovec_simd(dst,sys_dacblocksize); }
  #else
! inline void copyblock(t_sample *dst,t_sample *src) { memcpy(dst,src,sys_dacblocksize*sizeof(t_sample)); }
! inline void zeroblock(t_sample *dst) { memset(dst,0,sys_dacblocksize*sizeof(t_sample)); }
  #endif
  
***************
*** 546,550 ****
  		copyblock(asio_ringbuffer[i] + asio_ringbuffer_inoffset, sp);
         	zeroblock(sp);
!         sp+=DEFDACBLKSIZE;
      }
  	
--- 546,550 ----
  		copyblock(asio_ringbuffer[i] + asio_ringbuffer_inoffset, sp);
         	zeroblock(sp);
!         sp+=sys_dacblocksize;
      }
  	
***************
*** 566,573 ****
  		copyblock(sp, asio_ringbuffer[i+j] + asio_ringbuffer_inoffset);
  #endif
!  		sp+=DEFDACBLKSIZE;
  	}
  	
! 	asio_ringbuffer_inoffset += DEFDACBLKSIZE;
  
  #if 1
--- 566,573 ----
  		copyblock(sp, asio_ringbuffer[i+j] + asio_ringbuffer_inoffset);
  #endif
!  		sp+=sys_dacblocksize;
  	}
  	
! 	asio_ringbuffer_inoffset += sys_dacblocksize;
  
  #if 1

Index: d_dac.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_dac.c,v
retrieving revision 1.3.4.1
retrieving revision 1.3.4.2
diff -C2 -d -r1.3.4.1 -r1.3.4.2
*** d_dac.c	5 Nov 2004 13:39:55 -0000	1.3.4.1
--- d_dac.c	10 Nov 2004 13:47:08 -0000	1.3.4.2
***************
*** 52,66 ****
      {
          int ch = *ip - 1;
!         if ((*sp2)->s_n != DEFDACBLKSIZE)
              error("dac~: bad vector size");
      	else 
  	    if (ch >= 0 && ch < sys_get_outchannels())
! 		if(SIMD_CHECK3(DEFDACBLKSIZE,sys_soundout + DEFDACBLKSIZE*ch,
! 			       (*sp2)->s_vec,sys_soundout + DEFDACBLKSIZE*ch))
! 		    dsp_add(plus_perf_simd, 4, sys_soundout + DEFDACBLKSIZE*ch,
! 			    (*sp2)->s_vec, sys_soundout + DEFDACBLKSIZE*ch, DEFDACBLKSIZE);
  		else
!             dsp_add(plus_perform, 4, sys_soundout + DEFDACBLKSIZE*ch,
!                 (*sp2)->s_vec, sys_soundout + DEFDACBLKSIZE*ch, DEFDACBLKSIZE);
      }    
  }
--- 52,66 ----
      {
          int ch = *ip - 1;
!         if ((*sp2)->s_n != sys_dacblocksize)
              error("dac~: bad vector size");
      	else 
  	    if (ch >= 0 && ch < sys_get_outchannels())
! 		if(SIMD_CHECK3(sys_dacblocksize,sys_soundout + sys_dacblocksize*ch,
! 			       (*sp2)->s_vec,sys_soundout + sys_dacblocksize*ch))
! 		    dsp_add(plus_perf_simd, 4, sys_soundout + sys_dacblocksize*ch,
! 			    (*sp2)->s_vec, sys_soundout + sys_dacblocksize*ch, sys_dacblocksize);
  		else
!             dsp_add(plus_perform, 4, sys_soundout + sys_dacblocksize*ch,
!                 (*sp2)->s_vec, sys_soundout + sys_dacblocksize*ch, sys_dacblocksize);
      }    
  }
***************
*** 167,176 ****
      {
          int ch = *ip - 1;
!         if ((*sp2)->s_n != DEFDACBLKSIZE)
              error("adc~: bad vector size");
          else if (ch >= 0 && ch < sys_get_inchannels())
!             dsp_add_copy(sys_soundin + DEFDACBLKSIZE*ch,
!                 (*sp2)->s_vec, DEFDACBLKSIZE);
!         else dsp_add_zero((*sp2)->s_vec, DEFDACBLKSIZE);
      }    
  }
--- 167,176 ----
      {
          int ch = *ip - 1;
!         if ((*sp2)->s_n != sys_dacblocksize)
              error("adc~: bad vector size");
          else if (ch >= 0 && ch < sys_get_inchannels())
!             dsp_add_copy(sys_soundin + sys_dacblocksize*ch,
!                 (*sp2)->s_vec, sys_dacblocksize);
!         else dsp_add_zero((*sp2)->s_vec, sys_dacblocksize);
      }    
  }

Index: s_main.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_main.c,v
retrieving revision 1.7.4.1
retrieving revision 1.7.4.2
diff -C2 -d -r1.7.4.1 -r1.7.4.2
*** s_main.c	5 Nov 2004 14:27:47 -0000	1.7.4.1
--- s_main.c	10 Nov 2004 13:47:09 -0000	1.7.4.2
***************
*** 77,80 ****
--- 77,81 ----
  char sys_font[] = "courier"; /* tb: font name */
  static int sys_main_srate;
+ static int sys_main_dacblocksize = DEFDACBLKSIZE;
  static int sys_main_advance;
  
***************
*** 351,354 ****
--- 352,356 ----
  "-audiobuf <n>    -- specify size of audio buffer in msec\n",
  "-blocksize <n>   -- specify audio I/O block size in sample frames\n",
+ "-dacblocksize <n>-- specify audio dac~block size in samples\n",
  "-sleepgrain <n>  -- specify number of milliseconds to sleep when idle\n",
  "-nodac           -- suppress audio output\n",
***************
*** 606,609 ****
--- 608,617 ----
              argc -= 2; argv += 2;
          }
+ 	else if (!strcmp(*argv, "-dacblocksize") && argc > 1 &&
+ 		 sscanf(argv[1], "%d", &sys_main_dacblocksize) >= 1)
+ 	  {
+     	    argc -= 2;
+     	    argv += 2;
+ 	  }
          else if (!strcmp(*argv, "-sleepgrain"))
          {
***************
*** 904,908 ****
  int sys_getblksize(void)
  {
!     return (DEFDACBLKSIZE);
  }
  
--- 912,916 ----
  int sys_getblksize(void)
  {
!     return (sys_dacblocksize);
  }
  
***************
*** 916,920 ****
      int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV];
      int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV];
!     int nchindev, nchoutdev, rate, advance;
      int nmidiindev = 0, midiindev[MAXMIDIINDEV];
      int nmidioutdev = 0, midioutdev[MAXMIDIOUTDEV];
--- 924,928 ----
      int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV];
      int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV];
!     int nchindev, nchoutdev, rate, dacblksize, advance;
      int nmidiindev = 0, midiindev[MAXMIDIINDEV];
      int nmidioutdev = 0, midioutdev[MAXMIDIOUTDEV];
***************
*** 950,954 ****
              of argument parsing, and store them again. */
      sys_get_audio_params(&naudioindev, audioindev, chindev,
!         &naudiooutdev, audiooutdev, choutdev, &rate, &advance);
      if (sys_nchin >= 0)
      {
--- 958,962 ----
              of argument parsing, and store them again. */
      sys_get_audio_params(&naudioindev, audioindev, chindev,
! 			 &naudiooutdev, audiooutdev, choutdev, &rate, &dacblksize, &advance);
      if (sys_nchin >= 0)
      {
***************
*** 994,999 ****
      if (sys_main_srate)
          rate = sys_main_srate;
      sys_open_audio(naudioindev, audioindev, naudioindev, chindev,
!         naudiooutdev, audiooutdev, naudiooutdev, choutdev, rate, advance, 0);
      sys_open_midi(nmidiindev, midiindev, nmidioutdev, midioutdev, 0);
  }
--- 1002,1009 ----
      if (sys_main_srate)
          rate = sys_main_srate;
+     if (sys_main_dacblocksize)
+       dacblksize = sys_main_dacblocksize;
      sys_open_audio(naudioindev, audioindev, naudioindev, chindev,
! 		   naudiooutdev, audiooutdev, naudiooutdev, choutdev, rate, dacblksize, advance, 0);
      sys_open_midi(nmidiindev, midiindev, nmidioutdev, midioutdev, 0);
  }

Index: s_file.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_file.c,v
retrieving revision 1.2.4.2
retrieving revision 1.2.4.3
diff -C2 -d -r1.2.4.2 -r1.2.4.3
*** s_file.c	7 Nov 2004 11:13:14 -0000	1.2.4.2
--- s_file.c	10 Nov 2004 13:47:09 -0000	1.2.4.3
***************
*** 270,274 ****
      int nmidiindev, midiindev[MAXMIDIINDEV];
      int nmidioutdev, midioutdev[MAXMIDIOUTDEV];
!     int i, rate = 0, advance = 0, api, nolib;
      char prefbuf[MAXPDSTRING], keybuf[80];
      sys_initloadpreferences();
--- 270,274 ----
      int nmidiindev, midiindev[MAXMIDIINDEV];
      int nmidioutdev, midioutdev[MAXMIDIOUTDEV];
!     int i, rate = 0, advance = 0, dacblocksize = 0, api, nolib;
      char prefbuf[MAXPDSTRING], keybuf[80];
      sys_initloadpreferences();
***************
*** 314,319 ****
      if (sys_getpreference("audiobuf", prefbuf, MAXPDSTRING))
          sscanf(prefbuf, "%d", &advance);
      sys_open_audio(naudioindev, audioindev, naudioindev, chindev,
!         naudiooutdev, audiooutdev, naudiooutdev, choutdev, rate, advance, 0);
          
          /* load MIDI preferences */
--- 314,321 ----
      if (sys_getpreference("audiobuf", prefbuf, MAXPDSTRING))
          sscanf(prefbuf, "%d", &advance);
+     if (sys_getpreference("dacblocksize", prefbuf, MAXPDSTRING))
+         sscanf(prefbuf, "%d", &dacblocksize);
      sys_open_audio(naudioindev, audioindev, naudioindev, chindev,
!         naudiooutdev, audiooutdev, naudiooutdev, choutdev, rate, dacblocksize, advance, 0);
          
          /* load MIDI preferences */
***************
*** 385,389 ****
      int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV];
      int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV];
!     int i, rate, advance;
      char buf1[MAXPDSTRING], buf2[MAXPDSTRING];
      int nmidiindev, midiindev[MAXMIDIINDEV];
--- 387,391 ----
      int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV];
      int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV];
!     int i, rate, dacblocksize, advance;
      char buf1[MAXPDSTRING], buf2[MAXPDSTRING];
      int nmidiindev, midiindev[MAXMIDIINDEV];
***************
*** 398,402 ****
  
      sys_get_audio_params(&naudioindev, audioindev, chindev,
!         &naudiooutdev, audiooutdev, choutdev, &rate, &advance);
  
      if (naudioindev <= 0)
--- 400,404 ----
  
      sys_get_audio_params(&naudioindev, audioindev, chindev,
! 	&naudiooutdev, audiooutdev, choutdev, &rate, &dacblocksize, &advance);
  
      if (naudioindev <= 0)
***************
*** 423,426 ****
--- 425,431 ----
      sys_putpreference("rate", buf1);
  
+     sprintf(buf1, "%d", dacblocksize);
+     sys_putpreference("dacblocksize", buf1);
+ 
          /* MIDI settings */
      sys_get_midi_params(&nmidiindev, midiindev, &nmidioutdev, midioutdev);

Index: s_audio_sgi.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_sgi.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -C2 -d -r1.1 -r1.1.4.1
*** s_audio_sgi.c	6 Sep 2004 20:20:35 -0000	1.1
--- s_audio_sgi.c	10 Nov 2004 13:47:09 -0000	1.1.4.1
***************
*** 274,278 ****
  int sgi_send_dacs(void)
  {
!     float buf[SGI_MAXCH * DEFDACBLKSIZE], *fp1, *fp2, *fp3, *fp4;
      static int xferno = 0;
      static int callno = 0;
--- 274,278 ----
  int sgi_send_dacs(void)
  {
!     float buf[SGI_MAXCH * sys_dacblocksize], *fp1, *fp2, *fp3, *fp4;
      static int xferno = 0;
      static int callno = 0;
***************
*** 287,292 ****
      int i, n, channel;
          int result;
!     unsigned int outtransfersize = DEFDACBLKSIZE;
!     unsigned int intransfersize = DEFDACBLKSIZE;
  
                  /* no audio channels open, return */
--- 287,292 ----
      int i, n, channel;
          int result;
!     unsigned int outtransfersize = sys_dacblocksize;
!     unsigned int intransfersize = sys_dacblocksize;
  
                  /* no audio channels open, return */
***************
*** 334,349 ****
  
                          for (channel = 0, fp1 = buf;
!                     channel < outdevchannels; channel++, fp1++, fp2 += DEFDACBLKSIZE)
                          {
!                             for (i = 0, fp3 = fp1, fp4 = fp2; i < DEFDACBLKSIZE; 
                                          i++, fp3 += outdevchannels, fp4++)
                                  *fp3 = *fp4, *fp4 = 0;
                          }
!                         alWriteFrames(sgi_oport[n], buf, DEFDACBLKSIZE);
                  }
      }
  
                  /* zero out the output buffer */
!         memset(sys_soundout, 0, DEFDACBLKSIZE * sizeof(*sys_soundout) * sys_outchannels);
          if (sys_getrealtime() - timenow > 0.002)
          {
--- 334,349 ----
  
                          for (channel = 0, fp1 = buf;
!                     channel < outdevchannels; channel++, fp1++, fp2 += sys_dacblocksize)
                          {
!                             for (i = 0, fp3 = fp1, fp4 = fp2; i < sys_dacblocksize; 
                                          i++, fp3 += outdevchannels, fp4++)
                                  *fp3 = *fp4, *fp4 = 0;
                          }
!                         alWriteFrames(sgi_oport[n], buf, sys_dacblocksize);
                  }
      }
  
                  /* zero out the output buffer */
!         memset(sys_soundout, 0, sys_dacblocksize * sizeof(*sys_soundout) * sys_outchannels);
          if (sys_getrealtime() - timenow > 0.002)
          {
***************
*** 364,370 ****
                          indevchannels = sgi_ninchans[n];        /* channels supported by this device */
  
!                         if (alGetFilled(sgi_iport[n]) > DEFDACBLKSIZE)
                          {
!                             alReadFrames(sgi_iport[n], buf, DEFDACBLKSIZE);
                          }
                          else    /* have to read but nothing's there... */
--- 364,370 ----
                          indevchannels = sgi_ninchans[n];        /* channels supported by this device */
  
!                         if (alGetFilled(sgi_iport[n]) > sys_dacblocksize)
                          {
!                             alReadFrames(sgi_iport[n], buf, sys_dacblocksize);
                          }
                          else    /* have to read but nothing's there... */
***************
*** 375,381 ****
                          }
                          for (channel = 0, fp1 = buf;
!                     channel < indevchannels; channel++, fp1++, fp2 += DEFDACBLKSIZE)
                          {
!                                 for (i = 0, fp3 = fp1, fp4 = fp2; i < DEFDACBLKSIZE;
                                          i++, fp3 += indevchannels, fp4++)
                                      *fp4 = *fp3;
--- 375,381 ----
                          }
                          for (channel = 0, fp1 = buf;
!                     channel < indevchannels; channel++, fp1++, fp2 += sys_dacblocksize)
                          {
!                                 for (i = 0, fp3 = fp1, fp4 = fp2; i < sys_dacblocksize;
                                          i++, fp3 += indevchannels, fp4++)
                                      *fp4 = *fp3;

Index: s_stuff.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_stuff.h,v
retrieving revision 1.5.4.1
retrieving revision 1.5.4.2
diff -C2 -d -r1.5.4.1 -r1.5.4.2
*** s_stuff.h	5 Nov 2004 14:27:47 -0000	1.5.4.1
--- s_stuff.h	10 Nov 2004 13:47:09 -0000	1.5.4.2
***************
*** 56,60 ****
  #define SENDDACS_SLEPT 2
  
! #define DEFDACBLKSIZE 64
  extern int sys_schedblocksize;  /* audio block size for scheduler */
  extern int sys_hipriority;      /* real-time flag, true if priority boosted */
--- 56,61 ----
  #define SENDDACS_SLEPT 2
  
! #define DEFDACBLKSIZE 64        /* the default dac~blocksize */
! extern int sys_dacblocksize;    /* the real dac~blocksize */
  extern int sys_schedblocksize;  /* audio block size for scheduler */
  extern int sys_hipriority;      /* real-time flag, true if priority boosted */
***************
*** 71,75 ****
      int nchindev, int *chindev,
      int naudiooutdev, int *audiooutdev, int nchoutdev, int *choutdev,
!     int srate, int advance, int enable);
  void sys_reopen_audio( void);
  void sys_close_audio(void);
--- 72,76 ----
      int nchindev, int *chindev,
      int naudiooutdev, int *audiooutdev, int nchoutdev, int *choutdev,
!     int srate, int dacblocksize, int advance, int enable);
  void sys_reopen_audio( void);
  void sys_close_audio(void);
***************
*** 257,265 ****
      int *pnaudioindev, int *paudioindev, int *chindev,
      int *pnaudiooutdev, int *paudiooutdev, int *choutdev,
!     int *prate, int *padvance);
  void sys_save_audio_params(
      int naudioindev, int *audioindev, int *chindev,
      int naudiooutdev, int *audiooutdev, int *choutdev,
!     int rate, int advance);
  
  /* s_file.c */
--- 258,266 ----
      int *pnaudioindev, int *paudioindev, int *chindev,
      int *pnaudiooutdev, int *paudiooutdev, int *choutdev,
!     int *prate, int *dacblocksize, int *padvance);
  void sys_save_audio_params(
      int naudioindev, int *audioindev, int *chindev,
      int naudiooutdev, int *audiooutdev, int *choutdev,
!     int rate, int dacblocksize, int advance);
  
  /* s_file.c */
***************
*** 295,299 ****
  EXTERN void sys_pollmidiqueue(void );
  EXTERN int sys_pollgui(void );
! EXTERN void sys_setchsr(int chin, int chout, int sr);
  
  EXTERN void inmidi_noteon(int portno, int channel, int pitch, int velo);
--- 296,300 ----
  EXTERN void sys_pollmidiqueue(void );
  EXTERN int sys_pollgui(void );
! EXTERN void sys_setchsr(int chin, int chout, int sr, int dacblocksize);
  
  EXTERN void inmidi_noteon(int portno, int channel, int pitch, int velo);

Index: s_audio_jack.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_jack.c,v
retrieving revision 1.5
retrieving revision 1.5.4.1
diff -C2 -d -r1.5 -r1.5.4.1
*** s_audio_jack.c	6 Sep 2004 20:20:35 -0000	1.5
--- s_audio_jack.c	10 Nov 2004 13:47:09 -0000	1.5.4.1
***************
*** 344,354 ****
          fp = sys_soundout;
          for (j = 0; j < sys_outchannels; j++) {
!                 memcpy(jack_outbuf + (j * BUF_JACK) + jack_filled,fp, DEFDACBLKSIZE*sizeof(float));
!                 fp += DEFDACBLKSIZE;  
          }
          fp = sys_soundin;
          for (j = 0; j < sys_inchannels; j++) {
!                 memcpy(fp, jack_inbuf + (j * BUF_JACK) + jack_filled, DEFDACBLKSIZE*sizeof(float));
!                 fp += DEFDACBLKSIZE;
          }
  
--- 344,354 ----
          fp = sys_soundout;
          for (j = 0; j < sys_outchannels; j++) {
!                 memcpy(jack_outbuf + (j * BUF_JACK) + jack_filled,fp, sys_dacblocksize*sizeof(float));
!                 fp += sys_dacblocksize;  
          }
          fp = sys_soundin;
          for (j = 0; j < sys_inchannels; j++) {
!                 memcpy(fp, jack_inbuf + (j * BUF_JACK) + jack_filled, sys_dacblocksize*sizeof(float));
!                 fp += sys_dacblocksize;
          }
  
***************
*** 357,363 ****
              rtnval = SENDDACS_SLEPT;
            }
! 
!         memset(sys_soundout,0,DEFDACBLKSIZE*sizeof(float)*sys_outchannels);
!         jack_filled += DEFDACBLKSIZE;
          return rtnval;
  }
--- 357,363 ----
              rtnval = SENDDACS_SLEPT;
            }
!                           
!         memset(sys_soundout,0,sys_dacblocksize*sizeof(float)*sys_outchannels);
!         jack_filled += sys_dacblocksize;
          return rtnval;
  }

Index: m_sched.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_sched.c,v
retrieving revision 1.5.4.1
retrieving revision 1.5.4.2
diff -C2 -d -r1.5.4.1 -r1.5.4.2
*** m_sched.c	8 Nov 2004 20:27:10 -0000	1.5.4.1
--- m_sched.c	10 Nov 2004 13:47:08 -0000	1.5.4.2
***************
*** 23,27 ****
  static double sys_time_per_msec = TIMEUNITPERSEC / 1000.;
  
- int sys_schedblocksize = DEFDACBLKSIZE;
  int sys_usecsincelastsleep(void);
  int sys_sleepgrain;
--- 23,26 ----

Index: s_audio_alsa.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_alsa.c,v
retrieving revision 1.5.4.1
retrieving revision 1.5.4.2
diff -C2 -d -r1.5.4.1 -r1.5.4.2
*** s_audio_alsa.c	5 Nov 2004 14:27:47 -0000	1.5.4.1
--- s_audio_alsa.c	10 Nov 2004 13:47:09 -0000	1.5.4.2
***************
*** 167,171 ****
  
          /* set up the buffer */
!     bufsizeforthis = DEFDACBLKSIZE * dev->a_sampwidth * *channels;
      if (alsa_snd_buf)
      {
--- 167,171 ----
  
          /* set up the buffer */
!     bufsizeforthis = sys_dacblocksize * dev->a_sampwidth * *channels;
      if (alsa_snd_buf)
      {
***************
*** 307,316 ****
      if (outchans)
      {
!         i = (frag_size * nfrags)/DEFDACBLKSIZE + 1;
          while (i--)
          {
              for (iodev = 0; iodev < alsa_noutdev; iodev++)
                  snd_pcm_writei(alsa_outdev[iodev].a_handle, alsa_snd_buf,
!                     DEFDACBLKSIZE);
          }
      }
--- 307,316 ----
      if (outchans)
      {
!         i = (frag_size * nfrags)/sys_dacblocksize + 1;
          while (i--)
          {
              for (iodev = 0; iodev < alsa_noutdev; iodev++)
                  snd_pcm_writei(alsa_outdev[iodev].a_handle, alsa_snd_buf,
!                     sys_dacblocksize);
          }
      }
***************
*** 371,375 ****
      chansintogo = sys_inchannels;
      chansouttogo = sys_outchannels;
!     transfersize = DEFDACBLKSIZE;
  
      timelast = timenow;
--- 371,375 ----
      chansintogo = sys_inchannels;
      chansouttogo = sys_outchannels;
!     transfersize = sys_dacblocksize;
  
      timelast = timenow;
***************
*** 407,412 ****
          if (alsa_outdev[iodev].a_sampwidth == 4)
          {
!             for (i = 0; i < chans; i++, ch++, fp1 += DEFDACBLKSIZE)
!                 for (j = ch, k = DEFDACBLKSIZE, fp2 = fp1; k--;
                       j += thisdevchans, fp2++)
              {
--- 407,412 ----
          if (alsa_outdev[iodev].a_sampwidth == 4)
          {
!             for (i = 0; i < chans; i++, ch++, fp1 += sys_dacblocksize)
!                 for (j = ch, k = sys_dacblocksize, fp2 = fp1; k--;
                       j += thisdevchans, fp2++)
              {
***************
*** 415,425 ****
              } 
              for (; i < thisdevchans; i++, ch++)
!                 for (j = ch, k = DEFDACBLKSIZE; k--; j += thisdevchans)
                      ((t_alsa_sample32 *)alsa_snd_buf)[j] = 0;
          }
          else
          {
!             for (i = 0; i < chans; i++, ch++, fp1 += DEFDACBLKSIZE)
!                 for (j = ch, k = DEFDACBLKSIZE, fp2 = fp1; k--;
                       j += thisdevchans, fp2++)
              {
--- 415,425 ----
              } 
              for (; i < thisdevchans; i++, ch++)
!                 for (j = ch, k = sys_dacblocksize; k--; j += thisdevchans)
                      ((t_alsa_sample32 *)alsa_snd_buf)[j] = 0;
          }
          else
          {
!             for (i = 0; i < chans; i++, ch++, fp1 += sys_dacblocksize)
!                 for (j = ch, k = sys_dacblocksize, fp2 = fp1; k--;
                       j += thisdevchans, fp2++)
              {
***************
*** 432,436 ****
              }
              for (; i < thisdevchans; i++, ch++)
!                 for (j = ch, k = DEFDACBLKSIZE; k--; j += thisdevchans)
                      ((t_alsa_sample16 *)alsa_snd_buf)[j] = 0;
          }
--- 432,436 ----
              }
              for (; i < thisdevchans; i++, ch++)
!                 for (j = ch, k = sys_dacblocksize; k--; j += thisdevchans)
                      ((t_alsa_sample16 *)alsa_snd_buf)[j] = 0;
          }
***************
*** 457,461 ****
  
          /* zero out the output buffer */
!         memset(sys_soundout, 0, DEFDACBLKSIZE * sizeof(*sys_soundout) *
                 sys_outchannels);
          if (sys_getrealtime() - timenow > 0.002)
--- 457,461 ----
  
          /* zero out the output buffer */
!         memset(sys_soundout, 0, sys_dacblocksize * sizeof(*sys_soundout) *
                 sys_outchannels);
          if (sys_getrealtime() - timenow > 0.002)
***************
*** 499,505 ****
          if (alsa_indev[iodev].a_sampwidth == 4)
          {
!             for (i = 0; i < chans; i++, ch++, fp1 += DEFDACBLKSIZE)
              {
!                 for (j = ch, k = DEFDACBLKSIZE, fp2 = fp1; k--;
                       j += thisdevchans, fp2++)
                      *fp2 = (float) ((t_alsa_sample32 *)alsa_snd_buf)[j]
--- 499,505 ----
          if (alsa_indev[iodev].a_sampwidth == 4)
          {
!             for (i = 0; i < chans; i++, ch++, fp1 += sys_dacblocksize)
              {
!                 for (j = ch, k = sys_dacblocksize, fp2 = fp1; k--;
                       j += thisdevchans, fp2++)
                      *fp2 = (float) ((t_alsa_sample32 *)alsa_snd_buf)[j]
***************
*** 509,515 ****
          else
          {
!             for (i = 0; i < chans; i++, ch++, fp1 += DEFDACBLKSIZE)
              {
!                 for (j = ch, k = DEFDACBLKSIZE, fp2 = fp1; k--;
                      j += thisdevchans, fp2++)
                          *fp2 = (float) ((t_alsa_sample16 *)alsa_snd_buf)[j]
--- 509,515 ----
          else
          {
!             for (i = 0; i < chans; i++, ch++, fp1 += sys_dacblocksize)
              {
!                 for (j = ch, k = sys_dacblocksize, fp2 = fp1; k--;
                      j += thisdevchans, fp2++)
                          *fp2 = (float) ((t_alsa_sample16 *)alsa_snd_buf)[j]
***************
*** 571,580 ****
      memset(alsa_snd_buf, 0,
          alsa_indev[iodev].a_sampwidth *
!             DEFDACBLKSIZE * sys_outchannels);
      for (i = 0; i < 1000000; i++)
      {
          result = snd_pcm_writei(alsa_outdev[iodev].a_handle, alsa_snd_buf,
!             DEFDACBLKSIZE);
!         if (result != (int)DEFDACBLKSIZE)
              break;
      }
--- 571,580 ----
      memset(alsa_snd_buf, 0,
          alsa_indev[iodev].a_sampwidth *
!             sys_dacblocksize * sys_outchannels);
      for (i = 0; i < 1000000; i++)
      {
          result = snd_pcm_writei(alsa_outdev[iodev].a_handle, alsa_snd_buf,
!             sys_dacblocksize);
!         if (result != (int)sys_dacblocksize)
              break;
      }
***************
*** 586,597 ****
      int i, result;
      memset(alsa_snd_buf, 0,
!         alsa_outdev[iodev].a_sampwidth * DEFDACBLKSIZE *
              alsa_outdev[iodev].a_channels);
      for (i = 0; i < n; i++)
      {
          result = snd_pcm_writei(alsa_outdev[iodev].a_handle, alsa_snd_buf,
!             DEFDACBLKSIZE);
  #if 0
!         if (result != DEFDACBLKSIZE)
              post("result %d", result);
  #endif
--- 586,597 ----
      int i, result;
      memset(alsa_snd_buf, 0,
!         alsa_outdev[iodev].a_sampwidth * sys_dacblocksize *
              alsa_outdev[iodev].a_channels);
      for (i = 0; i < n; i++)
      {
          result = snd_pcm_writei(alsa_outdev[iodev].a_handle, alsa_snd_buf,
!             sys_dacblocksize);
  #if 0
!         if (result != sys_dacblocksize)
              post("result %d", result);
  #endif
***************
*** 606,612 ****
      {
          result = snd_pcm_readi(alsa_indev[iodev].a_handle, alsa_snd_buf,
!             DEFDACBLKSIZE);
  #if 0
!         if (result != DEFDACBLKSIZE)
              post("result %d", result);
  #endif
--- 606,612 ----
      {
          result = snd_pcm_readi(alsa_indev[iodev].a_handle, alsa_snd_buf,
!             sys_dacblocksize);
  #if 0
!         if (result != sys_dacblocksize)
              post("result %d", result);
  #endif
***************
*** 680,687 ****
          }
              /* the "correct" position is for all the phases to be exactly
!             equal; but since we only make corrections DEFDACBLKSIZE samples
              at a time, we just ask that the spread be not more than 3/4
              of a block.  */
!         if (maxphase <= minphase + (3 * DEFDACBLKSIZE / 4))
                  break;
  
--- 680,687 ----
          }
              /* the "correct" position is for all the phases to be exactly
!             equal; but since we only make corrections sys_dacblocksize samples
              at a time, we just ask that the spread be not more than 3/4
              of a block.  */
!         if (maxphase <= minphase + (3 * sys_dacblocksize / 4))
                  break;
  
***************
*** 694,698 ****
                  break;
              thisphase = alsa_buf_samps - outdelay;
!             if (thisphase > minphase + DEFDACBLKSIZE)
              {
                  alsa_putzeros(iodev, 1);
--- 694,698 ----
                  break;
              thisphase = alsa_buf_samps - outdelay;
!             if (thisphase > minphase + sys_dacblocksize)
              {
                  alsa_putzeros(iodev, 1);
***************
*** 707,711 ****
              if (result < 0)
                  break;
!             if (thisphase > minphase + DEFDACBLKSIZE)
              {
                  alsa_getzeros(iodev, 1);
--- 707,711 ----
              if (result < 0)
                  break;
!             if (thisphase > minphase + sys_dacblocksize)
              {
                  alsa_getzeros(iodev, 1);

Index: s_audio_oss.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_oss.c,v
retrieving revision 1.6
retrieving revision 1.6.4.1
diff -C2 -d -r1.6 -r1.6.4.1
*** s_audio_oss.c	6 Sep 2004 20:20:35 -0000	1.6
--- s_audio_oss.c	10 Nov 2004 13:47:09 -0000	1.6.4.1
***************
*** 37,43 ****
  typedef int32_t t_oss_int32;
  #define OSS_MAXSAMPLEWIDTH sizeof(t_oss_int32)
! #define OSS_BYTESPERCHAN(width) (DEFDACBLKSIZE * (width)) 
! #define OSS_XFERSAMPS(chans) (DEFDACBLKSIZE* (chans))
! #define OSS_XFERSIZE(chans, width) (DEFDACBLKSIZE * (chans) * (width))
  
  /* GLOBALS */
--- 37,43 ----
  typedef int32_t t_oss_int32;
  #define OSS_MAXSAMPLEWIDTH sizeof(t_oss_int32)
! #define OSS_BYTESPERCHAN(width) (sys_dacblocksize * (width)) 
! #define OSS_XFERSAMPS(chans) (sys_dacblocksize* (chans))
! #define OSS_XFERSIZE(chans, width) (sys_dacblocksize * (chans) * (width))
  
  /* GLOBALS */
***************
*** 189,193 ****
          {
              linux_fragsize = OSS_DEFFRAGSIZE;
!             while (linux_fragsize > DEFDACBLKSIZE
                  && linux_fragsize * 6 > sys_advance_samples)
                      linux_fragsize = linux_fragsize/2;
--- 189,193 ----
          {
              linux_fragsize = OSS_DEFFRAGSIZE;
!             while (linux_fragsize > sys_dacblocksize
                  && linux_fragsize * 6 > sys_advance_samples)
                      linux_fragsize = linux_fragsize/2;
***************
*** 275,279 ****
      char devname[20];
      int n, i, fd, flags;
!     char buf[OSS_MAXSAMPLEWIDTH * DEFDACBLKSIZE * OSS_MAXCHPERDEV];
      int num_devs = 0;
      int wantmore=0;
--- 275,279 ----
      char devname[20];
      int n, i, fd, flags;
!     char buf[OSS_MAXSAMPLEWIDTH * sys_dacblocksize * OSS_MAXCHPERDEV];
      int num_devs = 0;
      int wantmore=0;
***************
*** 468,472 ****
          read(linux_adcs[0].d_fd, buf,
              linux_adcs[0].d_bytespersamp *
!                 linux_adcs[0].d_nchannels * DEFDACBLKSIZE);
          if (sys_verbose)
              fprintf(stderr, "...done.\n");
--- 468,472 ----
          read(linux_adcs[0].d_fd, buf,
              linux_adcs[0].d_bytespersamp *
!                 linux_adcs[0].d_nchannels * sys_dacblocksize);
          if (sys_verbose)
              fprintf(stderr, "...done.\n");
***************
*** 477,485 ****
          int j;
          memset(buf, 0, linux_dacs[i].d_bytespersamp *
!                 linux_dacs[i].d_nchannels * DEFDACBLKSIZE);
!         for (j = 0; j < sys_advance_samples/DEFDACBLKSIZE; j++)
              write(linux_dacs[i].d_fd, buf,
                  linux_dacs[i].d_bytespersamp *
!                     linux_dacs[i].d_nchannels * DEFDACBLKSIZE);
      }
      sys_setalarm(0);
--- 477,485 ----
          int j;
          memset(buf, 0, linux_dacs[i].d_bytespersamp *
!                 linux_dacs[i].d_nchannels * sys_dacblocksize);
!         for (j = 0; j < sys_advance_samples/sys_dacblocksize; j++)
              write(linux_dacs[i].d_fd, buf,
                  linux_dacs[i].d_bytespersamp *
!                     linux_dacs[i].d_nchannels * sys_dacblocksize);
      }
      sys_setalarm(0);
***************
*** 553,557 ****
  {
      int dev, zeroed = 0, wantsize;
!     char buf[OSS_MAXSAMPLEWIDTH * DEFDACBLKSIZE * OSS_MAXCHPERDEV];
      audio_buf_info ainfo;
  
--- 553,557 ----
  {
      int dev, zeroed = 0, wantsize;
!     char buf[OSS_MAXSAMPLEWIDTH * sys_dacblocksize * OSS_MAXCHPERDEV];
      audio_buf_info ainfo;
  
***************
*** 633,637 ****
      long fill;
      int i, j, dev, rtnval = SENDDACS_YES;
!     char buf[OSS_MAXSAMPLEWIDTH * DEFDACBLKSIZE * OSS_MAXCHPERDEV];
      t_oss_int16 *sp;
      t_oss_int32 *lp;
--- 633,637 ----
      long fill;
      int i, j, dev, rtnval = SENDDACS_YES;
!     char buf[OSS_MAXSAMPLEWIDTH * sys_dacblocksize * OSS_MAXCHPERDEV];
      t_oss_int16 *sp;
      t_oss_int32 *lp;
***************
*** 727,732 ****
              if (linux_dacs[dev].d_bytespersamp == 4)
              {
!                 for (i = DEFDACBLKSIZE * nchannels,  fp1 = sys_soundout +       
!                     DEFDACBLKSIZE*thischan,
                      lp = (t_oss_int32 *)buf; i--; fp1++, lp++)
                  {
--- 727,732 ----
              if (linux_dacs[dev].d_bytespersamp == 4)
              {
!                 for (i = sys_dacblocksize * nchannels,  fp1 = sys_soundout +       
!                     sys_dacblocksize*thischan,
                      lp = (t_oss_int32 *)buf; i--; fp1++, lp++)
                  {
***************
*** 738,746 ****
              else
              {
!                 for (i = DEFDACBLKSIZE,  fp1 = sys_soundout +   
!                     DEFDACBLKSIZE*thischan,
                      sp = (t_oss_int16 *)buf; i--; fp1++, sp += nchannels)
                  {
!                     for (j=0, fp2 = fp1; j<nchannels; j++, fp2 += DEFDACBLKSIZE)
                      {
                          int s = *fp2 * 32767.;
--- 738,746 ----
              else
              {
!                 for (i = sys_dacblocksize,  fp1 = sys_soundout +   
!                     sys_dacblocksize*thischan,
                      sp = (t_oss_int16 *)buf; i--; fp1++, sp += nchannels)
                  {
!                     for (j=0, fp2 = fp1; j<nchannels; j++, fp2 += sys_dacblocksize)
                      {
                          int s = *fp2 * 32767.;
***************
*** 764,768 ****
      }
      memset(sys_soundout, 0,
!         sys_outchannels * (sizeof(float) * DEFDACBLKSIZE));
  
          /* do input */
--- 764,768 ----
      }
      memset(sys_soundout, 0,
!         sys_outchannels * (sizeof(float) * sys_dacblocksize));
  
          /* do input */
***************
*** 785,790 ****
          if (linux_adcs[dev].d_bytespersamp == 4)
          {
!             for (i = DEFDACBLKSIZE*nchannels,
!                 fp1 = sys_soundin + thischan*DEFDACBLKSIZE,
                      lp = (t_oss_int32 *)buf; i--; fp1++, lp++)
              {
--- 785,790 ----
          if (linux_adcs[dev].d_bytespersamp == 4)
          {
!             for (i = sys_dacblocksize*nchannels,
!                 fp1 = sys_soundin + thischan*sys_dacblocksize,
                      lp = (t_oss_int32 *)buf; i--; fp1++, lp++)
              {
***************
*** 794,802 ****
          else
          {
!             for (i = DEFDACBLKSIZE,fp1 = sys_soundin + thischan*DEFDACBLKSIZE,
                  sp = (t_oss_int16 *)buf; i--; fp1++, sp += nchannels)
              {
                  for (j=0;j<nchannels;j++)
!                     fp1[j*DEFDACBLKSIZE] = (float)sp[j]*(float)3.051850e-05;
              }
          }
--- 794,802 ----
          else
          {
!             for (i = sys_dacblocksize,fp1 = sys_soundin + thischan*sys_dacblocksize,
                  sp = (t_oss_int16 *)buf; i--; fp1++, sp += nchannels)
              {
                  for (j=0;j<nchannels;j++)
!                     fp1[j*sys_dacblocksize] = (float)sp[j]*(float)3.051850e-05;
              }
          }

Index: s_audio_alsamm.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_alsamm.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -C2 -d -r1.1.4.1 -r1.1.4.2
*** s_audio_alsamm.c	5 Nov 2004 14:27:47 -0000	1.1.4.1
--- s_audio_alsamm.c	10 Nov 2004 13:47:09 -0000	1.1.4.2
***************
*** 91,95 ****
  static unsigned int alsamm_buffertime = 0;
  static unsigned int alsamm_buffersize = 0;
- static int alsamm_transfersize = DEFDACBLKSIZE;
  
  /* bad style: we asume all cards give the same answer at init so we make this vars global
--- 91,94 ----
***************
*** 729,733 ****
    snd_pcm_sw_params_get_avail_min(swparams, &ops);
   
!   err = snd_pcm_sw_params_set_avail_min(handle, swparams, alsamm_transfersize/2);
    if (err < 0) {
      check_error(err,"Unable to set avail min for");
--- 728,732 ----
    snd_pcm_sw_params_get_avail_min(swparams, &ops);
   
!   err = snd_pcm_sw_params_set_avail_min(handle, swparams, sys_dacblocksize/2);
    if (err < 0) {
      check_error(err,"Unable to set avail min for");
***************
*** 1033,1037 ****
  
     all DAC data is in sys_soundout array with 
!    DEFDACBLKSIZE (mostly 64) for each channels which
     if we have more channels opened then dac-channels = sys_outchannels
     we have to zero (silence them), which should be done once.
--- 1032,1036 ----
  
     all DAC data is in sys_soundout array with 
!    sys_dacblocksize (mostly 64) for each channels which
     if we have more channels opened then dac-channels = sys_outchannels
     we have to zero (silence them), which should be done once.
***************
*** 1161,1170 ****
         this should only happen on first card otherwise we got a problem :-(()*/
  
!     if(oavail < alsamm_transfersize){
        return SENDDACS_NO;
      }
      
      /* transfer now */
!     size = alsamm_transfersize; 
      fp1 = fpo;
      ooffset = 0;
--- 1160,1169 ----
         this should only happen on first card otherwise we got a problem :-(()*/
  
!     if(oavail < sys_dacblocksize){
        return SENDDACS_NO;
      }
      
      /* transfer now */
!     size = sys_dacblocksize; 
      fp1 = fpo;
      ooffset = 0;
***************
*** 1207,1211 ****
          */
                  
!         for (i = 0, fp2 = fp1 + chn*alsamm_transfersize; i < oframes; i++,fp2++)
            {
              float s1 = *fp2 * F32MAX;
--- 1206,1210 ----
          */
                  
!         for (i = 0, fp2 = fp1 + chn*sys_dacblocksize; i < oframes; i++,fp2++)
            {
              float s1 = *fp2 * F32MAX;
***************
*** 1233,1237 ****
        size -= oframes;
      } /* while size */
!     fpo += ochannels*alsamm_transfersize;
  
    }/* for devno */
--- 1232,1236 ----
        size -= oframes;
      } /* while size */
!     fpo += ochannels*sys_dacblocksize;
  
    }/* for devno */
***************
*** 1277,1284 ****
      
      /* only transfer full transfersize or nothing */
!     if(iavail < alsamm_transfersize){
        return SENDDACS_NO;
      }
!     size = alsamm_transfersize; 
      fp1 = fpi;
      ioffset = 0;
--- 1276,1283 ----
      
      /* only transfer full transfersize or nothing */
!     if(iavail < sys_dacblocksize){
        return SENDDACS_NO;
      }
!     size = sys_dacblocksize; 
      fp1 = fpi;
      ioffset = 0;
***************
*** 1314,1318 ****
          t_alsa_sample32 *buf = (t_alsa_sample32 *) dev->a_addr[chn];
        
!         for (i = 0, fp2 = fp1 + chn*alsamm_transfersize; i < iframes; i++,fp2++)
            {
              /* mask the lowest bits, since subchannels info can make zero samples nonzero */
--- 1313,1317 ----
          t_alsa_sample32 *buf = (t_alsa_sample32 *) dev->a_addr[chn];
        
!         for (i = 0, fp2 = fp1 + chn*sys_dacblocksize; i < iframes; i++,fp2++)
            {
              /* mask the lowest bits, since subchannels info can make zero samples nonzero */
***************
*** 1333,1337 ****
        size -= iframes;
      }
!     fpi += ichannels*alsamm_transfersize;
    } /* for out devno < alsamm_outcards*/
    
--- 1332,1336 ----
        size -= iframes;
      }
!     fpi += ichannels*sys_dacblocksize;
    } /* for out devno < alsamm_outcards*/
    

Index: s_audio_alsa.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_alsa.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -C2 -d -r1.1 -r1.1.4.1
*** s_audio_alsa.h	6 Sep 2004 20:20:35 -0000	1.1
--- s_audio_alsa.h	10 Nov 2004 13:47:09 -0000	1.1.4.1
***************
*** 9,14 ****
  #define ALSA_SAMPLEWIDTH_16 sizeof(t_alsa_sample16)
  #define ALSA_SAMPLEWIDTH_32 sizeof(t_alsa_sample32)
! #define ALSA_XFERSIZE16  (signed int)(sizeof(t_alsa_sample16) * DEFDACBLKSIZE)
! #define ALSA_XFERSIZE32  (signed int)(sizeof(t_alsa_sample32) * DEFDACBLKSIZE)
  #define ALSA_MAXDEV 4
  #define ALSA_JITTER 1024
--- 9,14 ----
  #define ALSA_SAMPLEWIDTH_16 sizeof(t_alsa_sample16)
  #define ALSA_SAMPLEWIDTH_32 sizeof(t_alsa_sample32)
! #define ALSA_XFERSIZE16  (signed int)(sizeof(t_alsa_sample16) * sys_dacblocksize)
! #define ALSA_XFERSIZE32  (signed int)(sizeof(t_alsa_sample32) * sys_dacblocksize)
  #define ALSA_MAXDEV 4
  #define ALSA_JITTER 1024

Index: s_audio_mmio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_mmio.c,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -C2 -d -r1.4 -r1.4.4.1
*** s_audio_mmio.c	6 Sep 2004 20:20:35 -0000	1.4
--- s_audio_mmio.c	10 Nov 2004 13:47:09 -0000	1.4.4.1
***************
*** 28,32 ****
  
  int nt_realdacblksize;
! #define DEFREALDACBLKSIZE (4 * DEFDACBLKSIZE) /* larger underlying bufsize */
  
  #define MAXBUFFER 100   /* number of buffers in use at maximum advance */
--- 28,32 ----
  
  int nt_realdacblksize;
! #define DEFREALDACBLKSIZE (4 * sys_dacblocksize) /* larger underlying bufsize */
  
  #define MAXBUFFER 100   /* number of buffers in use at maximum advance */
***************
*** 509,513 ****
          int i, n;
          float maxsamp;
!         for (i = 0, n = 2 * nt_nwavein * DEFDACBLKSIZE, maxsamp = nt_inmax;
              i < n; i++)
          {
--- 509,513 ----
          int i, n;
          float maxsamp;
!         for (i = 0, n = 2 * nt_nwavein * sys_dacblocksize, maxsamp = nt_inmax;
              i < n; i++)
          {
***************
*** 517,521 ****
          }
          nt_inmax = maxsamp;
!         for (i = 0, n = 2 * nt_nwaveout * DEFDACBLKSIZE, maxsamp = nt_outmax;
              i < n; i++)
          {
--- 517,521 ----
          }
          nt_inmax = maxsamp;
!         for (i = 0, n = 2 * nt_nwaveout * sys_dacblocksize, maxsamp = nt_outmax;
              i < n; i++)
          {
***************
*** 573,579 ****
          for (i = 0, sp1 = (short *)(ntsnd_outvec[nda][phase].lpData) +
              CHANNELS_PER_DEVICE * nt_fill;
!                 i < 2; i++, fp1 += DEFDACBLKSIZE, sp1++)
          {
!             for (j = 0, fp2 = fp1, sp2 = sp1; j < DEFDACBLKSIZE;
                  j++, fp2++, sp2 += CHANNELS_PER_DEVICE)
              {
--- 573,579 ----
          for (i = 0, sp1 = (short *)(ntsnd_outvec[nda][phase].lpData) +
              CHANNELS_PER_DEVICE * nt_fill;
!                 i < 2; i++, fp1 += sys_dacblocksize, sp1++)
          {
!             for (j = 0, fp2 = fp1, sp2 = sp1; j < sys_dacblocksize;
                  j++, fp2++, sp2 += CHANNELS_PER_DEVICE)
              {
***************
*** 586,590 ****
      }
      memset(sys_soundout, 0, 
!         (DEFDACBLKSIZE *sizeof(t_sample)*CHANNELS_PER_DEVICE)*nt_nwaveout);
  
          /* vice versa for the input buffer */ 
--- 586,590 ----
      }
      memset(sys_soundout, 0, 
!         (sys_dacblocksize *sizeof(t_sample)*CHANNELS_PER_DEVICE)*nt_nwaveout);
  
          /* vice versa for the input buffer */ 
***************
*** 596,602 ****
          for (i = 0, sp1 = (short *)(ntsnd_invec[nad][phase].lpData) +
              CHANNELS_PER_DEVICE * nt_fill;
!                 i < 2; i++, fp1 += DEFDACBLKSIZE, sp1++)
          {
!             for (j = 0, fp2 = fp1, sp2 = sp1; j < DEFDACBLKSIZE;
                  j++, fp2++, sp2 += CHANNELS_PER_DEVICE)
              {
--- 596,602 ----
          for (i = 0, sp1 = (short *)(ntsnd_invec[nad][phase].lpData) +
              CHANNELS_PER_DEVICE * nt_fill;
!                 i < 2; i++, fp1 += sys_dacblocksize, sp1++)
          {
!             for (j = 0, fp2 = fp1, sp2 = sp1; j < sys_dacblocksize;
                  j++, fp2++, sp2 += CHANNELS_PER_DEVICE)
              {
***************
*** 606,610 ****
      }
  
!     nt_fill = nt_fill + DEFDACBLKSIZE;
      if (nt_fill == nt_realdacblksize)
      {
--- 606,610 ----
      }
  
!     nt_fill = nt_fill + sys_dacblocksize;
      if (nt_fill == nt_realdacblksize)
      {

Index: s_audio_pa.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_pa.c,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -C2 -d -r1.4 -r1.4.4.1
*** s_audio_pa.c	6 Sep 2004 20:20:35 -0000	1.4
--- s_audio_pa.c	10 Nov 2004 13:47:09 -0000	1.4.4.1
***************
*** 26,30 ****
  
  #define MAX_PA_CHANS 32
! #define MAX_SAMPLES_PER_FRAME MAX_PA_CHANS * DEFDACBLKSIZE
  
  #ifndef PA19
--- 26,30 ----
  
  #define MAX_PA_CHANS 32
! #define MAX_SAMPLES_PER_FRAME MAX_PA_CHANS * sys_dacblocksize
  
  #ifndef PA19
***************
*** 143,156 ****
      
      timebefore = sys_getrealtime();
!     if ((pa_inchans && GetAudioStreamReadable(pa_stream) < DEFDACBLKSIZE) ||
!         (pa_outchans && GetAudioStreamWriteable(pa_stream) < DEFDACBLKSIZE))
      {
          if (pa_inchans && pa_outchans)
          {
              int synced = 0;
!             while (GetAudioStreamWriteable(pa_stream) > 2*DEFDACBLKSIZE)
              {
                  for (j = 0; j < pa_outchans; j++)
!                     for (i = 0, fp2 = samples + j; i < DEFDACBLKSIZE; i++,
                          fp2 += pa_outchans)
                  {
--- 143,156 ----
      
      timebefore = sys_getrealtime();
!     if ((pa_inchans && GetAudioStreamReadable(pa_stream) < sys_dacblocksize) ||
!         (pa_outchans && GetAudioStreamWriteable(pa_stream) < sys_dacblocksize))
      {
          if (pa_inchans && pa_outchans)
          {
              int synced = 0;
!             while (GetAudioStreamWriteable(pa_stream) > 2*sys_dacblocksize)
              {
                  for (j = 0; j < pa_outchans; j++)
!                     for (i = 0, fp2 = samples + j; i < sys_dacblocksize; i++,
                          fp2 += pa_outchans)
                  {
***************
*** 158,167 ****
                  }
                  synced = 1;
!                 WriteAudioStream(pa_stream, samples, DEFDACBLKSIZE);
              }
!             while (GetAudioStreamReadable(pa_stream) > 2*DEFDACBLKSIZE)
              {
                  synced = 1;
!                 ReadAudioStream(pa_stream, samples, DEFDACBLKSIZE);
              }
              /* if (synced)
--- 158,167 ----
                  }
                  synced = 1;
!                 WriteAudioStream(pa_stream, samples, sys_dacblocksize);
              }
!             while (GetAudioStreamReadable(pa_stream) > 2*sys_dacblocksize)
              {
                  synced = 1;
!                 ReadAudioStream(pa_stream, samples, sys_dacblocksize);
              }
              /* if (synced)
***************
*** 172,178 ****
      if (pa_inchans)
      {
!         ReadAudioStream(pa_stream, samples, DEFDACBLKSIZE);
!         for (j = 0, fp1 = pa_soundin; j < pa_inchans; j++, fp1 += DEFDACBLKSIZE)
!             for (i = 0, fp2 = samples + j; i < DEFDACBLKSIZE; i++,
                  fp2 += pa_inchans)
          {
--- 172,178 ----
      if (pa_inchans)
      {
!         ReadAudioStream(pa_stream, samples, sys_dacblocksize);
!         for (j = 0, fp1 = pa_soundin; j < pa_inchans; j++, fp1 += sys_dacblocksize)
!             for (i = 0, fp2 = samples + j; i < sys_dacblocksize; i++,
                  fp2 += pa_inchans)
          {
***************
*** 195,200 ****
      {
          for (j = 0, fp1 = pa_soundout; j < pa_outchans; j++,
!             fp1 += DEFDACBLKSIZE)
!                 for (i = 0, fp2 = samples + j; i < DEFDACBLKSIZE; i++,
                      fp2 += pa_outchans)
          {
--- 195,200 ----
      {
          for (j = 0, fp1 = pa_soundout; j < pa_outchans; j++,
!             fp1 += sys_dacblocksize)
!                 for (i = 0, fp2 = samples + j; i < sys_dacblocksize; i++,
                      fp2 += pa_outchans)
          {
***************
*** 202,206 ****
              fp1[i] = 0;
          }
!         WriteAudioStream(pa_stream, samples, DEFDACBLKSIZE);
      }
  
--- 202,206 ----
              fp1[i] = 0;
          }
!         WriteAudioStream(pa_stream, samples, sys_dacblocksize);
      }
  

Index: s_audio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio.c,v
retrieving revision 1.5.4.1
retrieving revision 1.5.4.2
diff -C2 -d -r1.5.4.1 -r1.5.4.2
*** s_audio.c	5 Nov 2004 14:27:46 -0000	1.5.4.1
--- s_audio.c	10 Nov 2004 13:47:08 -0000	1.5.4.2
***************
*** 23,28 ****
  typedef long t_pa_sample;
  #define SYS_SAMPLEWIDTH sizeof(t_pa_sample)
! #define SYS_BYTESPERCHAN (DEFDACBLKSIZE * SYS_SAMPLEWIDTH) 
! #define SYS_XFERSAMPS (SYS_DEFAULTCH*DEFDACBLKSIZE)
  #define SYS_XFERSIZE (SYS_SAMPLEWIDTH * SYS_XFERSAMPS)
  
--- 23,28 ----
  typedef long t_pa_sample;
  #define SYS_SAMPLEWIDTH sizeof(t_pa_sample)
! #define SYS_BYTESPERCHAN (sys_dacblocksize * SYS_SAMPLEWIDTH) 
! #define SYS_XFERSAMPS (SYS_DEFAULTCH*sys_dacblocksize)
  #define SYS_XFERSIZE (SYS_SAMPLEWIDTH * SYS_XFERSAMPS)
  
***************
*** 35,38 ****
--- 35,41 ----
  int sys_audioapi = API_DEFAULT;
  
+ int sys_dacblocksize;
+ int sys_schedblocksize;
+ 
  static int sys_meters;          /* true if we're metering */
  static float sys_inmax;         /* max input amplitude */
***************
*** 59,62 ****
--- 62,66 ----
  static int audio_audiochoutdev[MAXAUDIOOUTDEV];
  static int audio_rate;
+ static int audio_dacblocksize;
  static int audio_advance;
  
***************
*** 71,75 ****
      int *pnaudioindev, int *paudioindev, int *chindev,
      int *pnaudiooutdev, int *paudiooutdev, int *choutdev,
!     int *prate, int *padvance)
  {
      int i;
--- 75,79 ----
      int *pnaudioindev, int *paudioindev, int *chindev,
      int *pnaudiooutdev, int *paudiooutdev, int *choutdev,
!     int *prate, int *pdacblocksize, int *padvance)
  {
      int i;
***************
*** 83,86 ****
--- 87,91 ----
              choutdev[i] = audio_audiochoutdev[i]; 
      *prate = audio_rate;
+     *pdacblocksize = audio_dacblocksize;
      *padvance = audio_advance;
  }
***************
*** 89,93 ****
      int naudioindev, int *audioindev, int *chindev,
      int naudiooutdev, int *audiooutdev, int *choutdev,
!     int rate, int advance)
  {
      int i;
--- 94,98 ----
      int naudioindev, int *audioindev, int *chindev,
      int naudiooutdev, int *audiooutdev, int *choutdev,
!     int rate, int dacblocksize, int advance)
  {
      int i;
***************
*** 101,104 ****
--- 106,110 ----
              audio_audiochoutdev[i] = choutdev[i]; 
      audio_rate = rate;
+     audio_dacblocksize = dacblocksize;
      audio_advance = advance;
  }
***************
*** 123,131 ****
      /* set channels and sample rate.  */
  
! void sys_setchsr(int chin, int chout, int sr)
  {
      int nblk;
!     int inbytes = (chin ? chin : 2) * (DEFDACBLKSIZE*sizeof(float));
!     int outbytes = (chout ? chout : 2) * (DEFDACBLKSIZE*sizeof(float));
  
      sys_inchannels = chin;
--- 129,147 ----
      /* set channels and sample rate.  */
  
! void sys_setchsr(int chin, int chout, int sr, int dacblocksize)
  {
      int nblk;
!     int inbytes;
!     int outbytes;
! 
!     if (dacblocksize != (1 << ilog2(dacblocksize)))
!       post("warning: adjusting dac~blocksize to power of 2: %d", 
! 	   (dacblocksize = (1 << ilog2(dacblocksize))));
! 
!     sys_dacblocksize = dacblocksize;
!     sys_schedblocksize = dacblocksize;
! 
!     inbytes = (chin ? chin : 2) * (sys_dacblocksize*sizeof(float));
!     outbytes = (chout ? chout : 2) * (sys_dacblocksize*sizeof(float));
  
      sys_inchannels = chin;
***************
*** 133,138 ****
      sys_dacsr = sr;
      sys_advance_samples = (sys_schedadvance * sys_dacsr) / (1000000.);
!     if (sys_advance_samples < 3 * DEFDACBLKSIZE)
!         sys_advance_samples = 3 * DEFDACBLKSIZE;
  
      if (sys_soundin)
--- 149,154 ----
      sys_dacsr = sr;
      sys_advance_samples = (sys_schedadvance * sys_dacsr) / (1000000.);
!     if (sys_advance_samples < 3 * sys_dacblocksize)
!         sys_advance_samples = 3 * sys_dacblocksize;
  
      if (sys_soundin)
***************
*** 161,165 ****
  void sys_open_audio(int naudioindev, int *audioindev, int nchindev,
      int *chindev, int naudiooutdev, int *audiooutdev, int nchoutdev,
!     int *choutdev, int rate, int advance, int enable)
  {
      int i, *ip;
--- 177,181 ----
  void sys_open_audio(int naudioindev, int *audioindev, int nchindev,
      int *chindev, int naudiooutdev, int *audiooutdev, int nchoutdev,
!     int *choutdev, int rate, int dacblocksize, int advance, int enable)
  {
      int i, *ip;
***************
*** 180,183 ****
--- 196,201 ----
      if (rate < 1)
          rate = DEFAULTSRATE;
+     if (dacblocksize < 1)
+       dacblocksize = DEFDACBLKSIZE;
      if (advance <= 0)
          advance = DEFAULTADVANCE;
***************
*** 289,293 ****
          enable = 0;
      sys_schedadvance = advance * 1000;
!     sys_setchsr(inchans, outchans, rate);
      sys_log_error(ERR_NOTHING);
      if (enable)
--- 307,311 ----
          enable = 0;
      sys_schedadvance = advance * 1000;
!     sys_setchsr(inchans, outchans, rate, dacblocksize);
      sys_log_error(ERR_NOTHING);
      if (enable)
***************
*** 351,355 ****
      }
      sys_save_audio_params(naudioindev, audioindev, chindev,
!         naudiooutdev, audiooutdev, choutdev, sys_dacsr, advance);
      if (sys_inchannels == 0 && sys_outchannels == 0)
          enable = 0;
--- 369,373 ----
      }
      sys_save_audio_params(naudioindev, audioindev, chindev,
! 			  naudiooutdev, audiooutdev, choutdev, sys_dacsr, sys_dacblocksize, advance);
      if (sys_inchannels == 0 && sys_outchannels == 0)
          enable = 0;
***************
*** 416,424 ****
      int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV];
      int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV];
!     int rate, advance;
      sys_get_audio_params(&naudioindev, audioindev, chindev,
!         &naudiooutdev, audiooutdev, choutdev, &rate, &advance);
      sys_open_audio(naudioindev, audioindev, naudioindev, chindev,
!         naudiooutdev, audiooutdev, naudiooutdev, choutdev, rate, advance, 1);
  }
  
--- 434,442 ----
      int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV];
      int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV];
!     int rate, dacblocksize, advance;
      sys_get_audio_params(&naudioindev, audioindev, chindev,
!        &naudiooutdev, audiooutdev, choutdev, &rate, &dacblocksize, &advance);
      sys_open_audio(naudioindev, audioindev, naudioindev, chindev,
!        naudiooutdev, audiooutdev, naudiooutdev, choutdev, rate, dacblocksize, advance, 1);
  }
  
***************
*** 429,433 ****
          int i, n;
          float maxsamp;
!         for (i = 0, n = sys_inchannels * DEFDACBLKSIZE, maxsamp = sys_inmax;
              i < n; i++)
          {
--- 447,451 ----
          int i, n;
          float maxsamp;
!         for (i = 0, n = sys_inchannels * sys_dacblocksize, maxsamp = sys_inmax;
              i < n; i++)
          {
***************
*** 437,441 ****
          }
          sys_inmax = maxsamp;
!         for (i = 0, n = sys_outchannels * DEFDACBLKSIZE, maxsamp = sys_outmax;
              i < n; i++)
          {
--- 455,459 ----
          }
          sys_inmax = maxsamp;
!         for (i = 0, n = sys_outchannels * sys_dacblocksize, maxsamp = sys_outmax;
              i < n; i++)
          {
***************
*** 645,649 ****
          audiooutdev1, audiooutdev2, audiooutdev3, audiooutdev4,
          audiooutchan1, audiooutchan2, audiooutchan3, audiooutchan4;
!     int rate, advance;
          /* these are all the devices on your system: */
      char indevlist[MAXNDEV*DEVDESCSIZE], outdevlist[MAXNDEV*DEVDESCSIZE];
--- 663,667 ----
          audiooutdev1, audiooutdev2, audiooutdev3, audiooutdev4,
          audiooutchan1, audiooutchan2, audiooutchan3, audiooutchan4;
!     int rate, dacblocksize, advance;
          /* these are all the devices on your system: */
      char indevlist[MAXNDEV*DEVDESCSIZE], outdevlist[MAXNDEV*DEVDESCSIZE];
***************
*** 675,679 ****
  
      sys_get_audio_params(&naudioindev, audioindev, chindev,
!         &naudiooutdev, audiooutdev, choutdev, &rate, &advance);
  
      /* post("naudioindev %d naudiooutdev %d longform %f",
--- 693,697 ----
  
      sys_get_audio_params(&naudioindev, audioindev, chindev,
!        &naudiooutdev, audiooutdev, choutdev, &rate, &dacblocksize, &advance);
  
      /* post("naudioindev %d naudiooutdev %d longform %f",
***************
*** 703,707 ****
  %s %d %d %d %d %d %d %d %d \
  %s %d %d %d %d %d %d %d %d \
! %d %d %d %d\n",
          indevliststring,
          audioindev1, audioindev2, audioindev3, audioindev4, 
--- 721,725 ----
  %s %d %d %d %d %d %d %d %d \
  %s %d %d %d %d %d %d %d %d \
! %d %d %d %d %d\n",
          indevliststring,
          audioindev1, audioindev2, audioindev3, audioindev4, 
***************
*** 710,714 ****
          audiooutdev1, audiooutdev2, audiooutdev3, audiooutdev4,
          audiooutchan1, audiooutchan2, audiooutchan3, audiooutchan4, 
!         rate, advance, canmulti, (flongform != 0));
      gfxstub_deleteforkey(0);
      gfxstub_new(&glob_pdobject, (void *)glob_audio_properties, buf);
--- 728,732 ----
          audiooutdev1, audiooutdev2, audiooutdev3, audiooutdev4,
          audiooutchan1, audiooutchan2, audiooutchan3, audiooutchan4, 
!         rate, dacblocksize, advance, canmulti, (flongform != 0));
      gfxstub_deleteforkey(0);
      gfxstub_new(&glob_pdobject, (void *)glob_audio_properties, buf);
***************
*** 720,724 ****
      int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV];
      int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV];
!     int rate, advance, audioon, i, nindev, noutdev;
      int audioindev1, audioinchan1, audiooutdev1, audiooutchan1;
      int newaudioindev[4], newaudioinchan[4],
--- 738,742 ----
      int naudioindev, audioindev[MAXAUDIOINDEV], chindev[MAXAUDIOINDEV];
      int naudiooutdev, audiooutdev[MAXAUDIOOUTDEV], choutdev[MAXAUDIOOUTDEV];
!     int rate, dacblocksize, advance, audioon, i, nindev, noutdev;
      int audioindev1, audioinchan1, audiooutdev1, audiooutchan1;
      int newaudioindev[4], newaudioinchan[4],
***************
*** 726,730 ****
          /* the new values the dialog came back with: */
      int newrate = atom_getintarg(16, argc, argv);
!     int newadvance = atom_getintarg(17, argc, argv);
      int statewas;
  
--- 744,749 ----
          /* the new values the dialog came back with: */
      int newrate = atom_getintarg(16, argc, argv);
!     int newdacblocksize = atom_getintarg(17, argc, argv);
!     int newadvance = atom_getintarg(18, argc, argv);
      int statewas;
  
***************
*** 763,767 ****
      sys_open_audio(nindev, newaudioindev, nindev, newaudioinchan,
          noutdev, newaudiooutdev, noutdev, newaudiooutchan,
!         newrate, newadvance, 1);
  }
  
--- 782,786 ----
      sys_open_audio(nindev, newaudioindev, nindev, newaudioinchan,
          noutdev, newaudiooutdev, noutdev, newaudiooutchan,
!         newrate, newdacblocksize, newadvance, 1);
  }
  

Index: u_main.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
retrieving revision 1.4.4.2
retrieving revision 1.4.4.3
diff -C2 -d -r1.4.4.2 -r1.4.4.3
*** u_main.tk	7 Nov 2004 12:38:56 -0000	1.4.4.2
--- u_main.tk	10 Nov 2004 13:47:09 -0000	1.4.4.3
***************
*** 2961,2965 ****
      global audio_outchan1 audio_outchan2 audio_outchan3 audio_outchan4
      global audio_outenable1 audio_outenable2 audio_outenable3 audio_outenable4
!     global audio_sr audio_advance
  
      pd [concat pd audio-dialog \
--- 2961,2965 ----
      global audio_outchan1 audio_outchan2 audio_outchan3 audio_outchan4
      global audio_outenable1 audio_outenable2 audio_outenable3 audio_outenable4
!     global audio_sr audio_dacblocksize audio_advance
  
      pd [concat pd audio-dialog \
***************
*** 2981,2984 ****
--- 2981,2985 ----
      	[expr $audio_outchan4 * ( $audio_outenable4 ? 1 : -1 ) ]\
  	$audio_sr \
+ 	$audio_dacblocksize \
  	$audio_advance \
  	\;]
***************
*** 3025,3029 ****
      	inchan1 inchan2 inchan3 inchan4 \
      	outdevlist outdev1 outdev2 outdev3 outdev4 \
! 	outchan1 outchan2 outchan3 outchan4 sr advance multi longform} {
      global audio_indev1 audio_indev2 audio_indev3 audio_indev4 
      global audio_inchan1 audio_inchan2 audio_inchan3 audio_inchan4
--- 3026,3030 ----
      	inchan1 inchan2 inchan3 inchan4 \
      	outdevlist outdev1 outdev2 outdev3 outdev4 \
! 	outchan1 outchan2 outchan3 outchan4 sr dacblocksize advance multi longform} {
      global audio_indev1 audio_indev2 audio_indev3 audio_indev4 
      global audio_inchan1 audio_inchan2 audio_inchan3 audio_inchan4
***************
*** 3032,3036 ****
      global audio_outchan1 audio_outchan2 audio_outchan3 audio_outchan4
      global audio_outenable1 audio_outenable2 audio_outenable3 audio_outenable4
!     global audio_sr audio_advance
      global audio_indevlist audio_outdevlist
  
--- 3033,3037 ----
      global audio_outchan1 audio_outchan2 audio_outchan3 audio_outchan4
      global audio_outenable1 audio_outenable2 audio_outenable3 audio_outenable4
!     global audio_sr audio_dacblocksize audio_advance
      global audio_indevlist audio_outdevlist
  
***************
*** 3064,3067 ****
--- 3065,3069 ----
  
      set audio_sr $sr
+     set audio_dacblocksize $dacblocksize
      set audio_advance $advance
      set audio_indevlist $indevlist
***************
*** 3092,3096 ****
      label $id.srf.l2 -text "delay (msec):"
      entry $id.srf.x2 -textvariable audio_advance -width 4
!     pack $id.srf.l1 $id.srf.x1 $id.srf.l2 $id.srf.x2 -side left
      
      	# input device 1
--- 3094,3100 ----
      label $id.srf.l2 -text "delay (msec):"
      entry $id.srf.x2 -textvariable audio_advance -width 4
!     label $id.srf.l3 -text "dacblocksize:"
!     entry $id.srf.x3 -textvariable audio_dacblocksize -width 4
!     pack $id.srf.l1 $id.srf.x1 $id.srf.l2 $id.srf.x2 $id.srf.l3 $id.srf.x3 -side left
      
      	# input device 1





More information about the Pd-cvs mailing list