From 5e9124e97a3ce109ed5bbf4219ae5eb2453a22da Mon Sep 17 00:00:00 2001
From: Jonathan Wilkes <jon.w.wilkes@gmail.com>
Date: Sun, 15 Sep 2019 20:16:30 -0400
Subject: [PATCH] cast dsp_add args to (t_int) for int types (like s_n of
 t_signal)

This gets rid of some undefined behavior that occurs from sending an
int as an argument to dsp_add which reads it back as a t_int. On certain
archs this will produce garbage values in the perform routine which can
cause crashes.
---
 externals/autotune/autotune~.c                |   2 +-
 externals/bassemu~/bassemu~.c                 |   3 +-
 externals/bsaylor/aenv~.c                     |   2 +-
 externals/bsaylor/partconv~.c                 |   2 +-
 externals/bsaylor/pvoc~.c                     |   2 +-
 externals/bsaylor/susloop~.c                  |   2 +-
 externals/bsaylor/svf~.c                      |   2 +-
 externals/bsaylor/zhzxh~.c                    |   2 +-
 externals/creb/modules++/biquadseries~.cc     |   2 +-
 externals/creb/modules++/blosc~.cc            |  10 +-
 externals/creb/modules++/filterortho~.cc      |   3 +-
 externals/creb/modules/abs~.c                 |   2 +-
 externals/creb/modules/bdiag~.c               |   2 +-
 externals/creb/modules/bfft~.c                |   6 +-
 externals/creb/modules/bitsplit~.c            |   2 +-
 externals/creb/modules/blocknorm~.c           |   2 +-
 externals/creb/modules/bmatrix~.c             |   3 +-
 externals/creb/modules/bwin~.c                |   2 +-
 externals/creb/modules/cheby~.c               |   2 +-
 externals/creb/modules/cmath~.c               |   2 +-
 externals/creb/modules/diag~.c                |   2 +-
 externals/creb/modules/dist~.c                |   2 +-
 externals/creb/modules/dwt~.c                 |   8 +-
 externals/creb/modules/dynwav~.c              |   2 +-
 externals/creb/modules/eadsr~.c               |   2 +-
 externals/creb/modules/ead~.c                 |   2 +-
 externals/creb/modules/ear~.c                 |   2 +-
 externals/creb/modules/eblosc~.c              |  10 +-
 externals/creb/modules/fdn~.c                 |   2 +-
 externals/creb/modules/junction~.c            |   4 +-
 externals/creb/modules/lattice~.c             |   2 +-
 externals/creb/modules/permut~.c              |   2 +-
 externals/creb/modules/qmult~.c               |   2 +-
 externals/creb/modules/qnorm~.c               |   2 +-
 externals/creb/modules/ramp~.c                |   2 +-
 externals/creb/modules/resofilt~.c            |   2 +-
 externals/creb/modules/sbosc~.c               |   3 +-
 externals/creb/modules/scrollgrid1D~.c        |   2 +-
 externals/creb/modules/statwav~.c             |   2 +-
 externals/creb/modules/tabreadmix~.c          |   2 +-
 externals/creb/modules/xfm~.c                 |   2 +-
 externals/cxc/delta~.c                        |   2 +-
 externals/cxc/mean~.c                         |   6 +-
 externals/cxc/random1~.c                      |   2 +-
 externals/cxc/random_fl~.c                    |   2 +-
 externals/cxc/random_icg~.c                   |   2 +-
 externals/cxc/reson~.c                        |   2 +-
 externals/deprecated/pan_gogins~.c            |   2 +-
 externals/disis/disis_munger.c                |   2 +-
 externals/disis/disis_phasor~.c               |   2 +-
 externals/earplug~/earplug~.c                 |   2 +-
 externals/ekext/framescore~.c                 |   2 +-
 externals/ekext/framespect~.c                 |   2 +-
 externals/ekext/hasc~.c                       |   2 +-
 externals/ekext/hssc~.c                       |   2 +-
 externals/ekext/lpc~.c                        |   2 +-
 externals/ekext/lpreson~.c                    |   2 +-
 externals/ekext/peakit~.c                     |   2 +-
 externals/ekext/simile~.c                     |   2 +-
 externals/ekext/voicing_detector~.c           |   2 +-
 externals/ekext/zeroxpos~.c                   |   2 +-
 externals/ext13/catch13~.c                    |   4 +-
 externals/ext13/mandelbrot~.c                 |   4 +-
 externals/ext13/piperead~.c                   |   6 +-
 externals/ext13/pipewrite~.c                  |   6 +-
 externals/ext13/promiscous~.c                 |   2 +-
 externals/ext13/receive13~.c                  |   4 +-
 externals/ext13/scramble~.c                   |   4 +-
 externals/ext13/scramble~.c.save              | 634 ------------------
 externals/ext13/send13~.c                     |   2 +-
 externals/ext13/sfread.c                      |  12 +-
 externals/ext13/sfwrite13~.c                  |   6 +-
 externals/ext13/streamin13~.c                 |   2 +-
 externals/ext13/streamout13~.c                |   4 +-
 externals/ext13/throw13~.c                    |   2 +-
 externals/fftw/rfftw~.c                       |   2 +-
 externals/fftw/rifftw~.c                      |   2 +-
 externals/fluid~/fluid~.c                     |   2 +-
 externals/footils/rx7/pd/rx7~.cpp             |   2 +-
 externals/freeverb~/freeverb~.c               |   4 +-
 externals/ggee/control/inv.c                  |   2 +-
 externals/ggee/experimental/fofsynth~.c       |   2 +-
 externals/ggee/experimental/pvocfreq.c        |   2 +-
 externals/ggee/experimental/stk.cpp           |   2 +-
 externals/ggee/experimental/tabwrite4~.c      |   2 +-
 externals/ggee/filters/moog~.c                |   4 +-
 externals/ggee/signal/atan2~.c                |   4 +-
 externals/ggee/signal/mixer~.c                |   2 +-
 externals/ggee/signal/sfwrite~.c              |   6 +-
 externals/ggee/signal/streamin~.c             |   2 +-
 externals/ggee/signal/streamout~.c            |   6 +-
 externals/grh/adaptive/src/lms2~.c            |   2 +-
 externals/grh/adaptive/src/lms~.c             |   2 +-
 externals/grh/adaptive/src/nlms2~.c           |   2 +-
 externals/grh/adaptive/src/nlms3~.c           |   2 +-
 externals/grh/adaptive/src/nlms~.c            |   2 +-
 externals/grh/pix_linNN/pix_linNN.cpp         |   2 +-
 externals/grh/pix_recNN/pix_recNN.cpp         |   2 +-
 externals/iem/iem_adaptfilt/src/NLMSCC~.c     |   4 +-
 externals/iem/iem_adaptfilt/src/NLMSerr_in~.c |   4 +-
 externals/iem/iem_adaptfilt/src/NLMS~.c       |   4 +-
 externals/iem/iem_adaptfilt/src/n_CLNLMS~.c   |   4 +-
 externals/iem/iem_adaptfilt/src/n_CNLMS~.c    |   4 +-
 externals/iem/iem_delay/src/block_delay~.c    |   4 +-
 externals/iem/iem_delay/src/n_delay1p_line~.c |   4 +-
 externals/iem/iem_delay/src/n_delay2p_line~.c |   4 +-
 externals/iem/iem_delay/src/nz~.c             |   4 +-
 .../iem/iem_matrix/src/matrix_bundle_line8~.c |   4 +-
 .../iem/iem_matrix/src/matrix_bundle_line~.c  |   4 +-
 .../iem/iem_matrix/src/matrix_bundle_stat~.c  |   4 +-
 .../iem_matrix/src/matrix_diag_mul_line8~.c   |   4 +-
 .../iem_matrix/src/matrix_diag_mul_line~.c    |   4 +-
 .../iem_matrix/src/matrix_diag_mul_stat~.c    |   4 +-
 .../iem/iem_matrix/src/matrix_mul_line8~.c    |   4 +-
 .../iem/iem_matrix/src/matrix_mul_line~.c     |   4 +-
 .../iem/iem_matrix/src/matrix_mul_stat~.c     |   4 +-
 .../iem/iem_spec2/src/spec2_1p1z_freq~.c      |   4 +-
 .../iem/iem_spec2/src/spec2_1p1z_time~.c      |   4 +-
 externals/iem/iem_spec2/src/spec2_abs~.c      |   4 +-
 .../iem/iem_spec2/src/spec2_add_scalar~.c     |   4 +-
 externals/iem/iem_spec2/src/spec2_add~.c      |   4 +-
 .../iem/iem_spec2/src/spec2_block_delay~.c    |   4 +-
 externals/iem/iem_spec2/src/spec2_clip_max~.c |   4 +-
 externals/iem/iem_spec2/src/spec2_clip_min~.c |   4 +-
 externals/iem/iem_spec2/src/spec2_dbtopow~.c  |   2 +-
 externals/iem/iem_spec2/src/spec2_dbtorms~.c  |   2 +-
 .../iem_spec2/src/spec2_matrix_bundle_stat~.c |   4 +-
 .../iem/iem_spec2/src/spec2_mul_scalar~.c     |   4 +-
 externals/iem/iem_spec2/src/spec2_mul~.c      |   4 +-
 externals/iem/iem_spec2/src/spec2_powtodb~.c  |   2 +-
 externals/iem/iem_spec2/src/spec2_rmstodb~.c  |   2 +-
 externals/iem/iem_spec2/src/spec2_shift~.c    |   2 +-
 externals/iem/iem_spec2/src/spec2_sqrt~.c     |   2 +-
 externals/iem/iem_spec2/src/spec2_stretch~.c  |   2 +-
 externals/iem/iem_spec2/src/spec2_sub~.c      |   4 +-
 externals/iem/iem_spec2/src/spec2_sum~.c      |   4 +-
 externals/iem/iem_spec2/src/spec2_tab_conv~.c |   2 +-
 .../iem_spec2/src/spec2_tabreceive_enable~.c  |   4 +-
 .../iem/iem_spec2/src/spec2_tabreceive~.c     |   4 +-
 externals/iem/iemmatrix/src/mtx_mul~.c        |   4 +-
 externals/iem16/src/del16read~.c              |   2 +-
 externals/iem16/src/del16write~.c             |   2 +-
 externals/iem16/src/tab16play~.c              |   2 +-
 externals/iem16/src/tab16read4~.c             |   2 +-
 externals/iem16/src/tab16read~.c              |   2 +-
 externals/iem16/src/tab16receive~.c           |   2 +-
 externals/iem16/src/tab16send~.c              |   2 +-
 externals/iem16/src/tab16write~.c             |   2 +-
 externals/iem16/src/vd16~.c                   |   2 +-
 externals/iemlib/iem_mp3/src/mp3play~.c       |   2 +-
 externals/iemlib/iem_t3_lib/src/t3_line~.c    |   2 +-
 externals/iemlib/iem_t3_lib/src/t3_sig~.c     |   4 +-
 externals/iemlib/iemlib1/src/FIR~.c           |   2 +-
 externals/iemlib/iemlib1/src/filter~.c        |  16 +-
 externals/iemlib/iemlib1/src/hml_shelf~.c     |   4 +-
 externals/iemlib/iemlib1/src/iem_cot4~.c      |   2 +-
 externals/iemlib/iemlib1/src/iem_delay~.c     |   4 +-
 externals/iemlib/iemlib1/src/iem_pow4~.c      |   2 +-
 externals/iemlib/iemlib1/src/iem_sqrt4~.c     |   2 +-
 externals/iemlib/iemlib1/src/lp1_t~.c         |   4 +-
 externals/iemlib/iemlib1/src/mov_avrg_kern~.c |   2 +-
 externals/iemlib/iemlib1/src/para_bp2~.c      |   4 +-
 externals/iemlib/iemlib1/src/peakenv_hold~.c  |   2 +-
 externals/iemlib/iemlib1/src/peakenv~.c       |   2 +-
 externals/iemlib/iemlib1/src/prvu~.c          |   2 +-
 externals/iemlib/iemlib1/src/pvu~.c           |   2 +-
 externals/iemlib/iemlib1/src/rvu~.c           |   2 +-
 externals/iemlib/iemlib1/src/sin_freq~.c      |   2 +-
 externals/iemlib/iemlib1/src/sin_phase~.c     |   2 +-
 externals/iemlib/iemlib1/src/sparse_FIR~.c    |   2 +-
 externals/iemlib/iemlib1/src/vcf_filter~.c    |  10 +-
 externals/iemlib/iemlib2/src/LFO_noise~.c     |   2 +-
 externals/iemlib/iemlib2/src/fade~.c          |   2 +-
 externals/iemlib/iemlib2/src/m2f~.c           |   2 +-
 externals/lyonpotpourri/adsr~.c               |   2 +-
 externals/lyonpotpourri/arrayfilt~.c          |   2 +-
 externals/lyonpotpourri/bashfest~.c           |   4 +-
 externals/lyonpotpourri/buffet~.c             |   2 +-
 externals/lyonpotpourri/bvplay~.c             |   6 +-
 externals/lyonpotpourri/cartopol~.c           |   2 +-
 externals/lyonpotpourri/channel~.c            |   2 +-
 externals/lyonpotpourri/chopper~.c            |   2 +-
 externals/lyonpotpourri/click2bang~.c         |   2 +-
 externals/lyonpotpourri/click2float~.c        |   2 +-
 externals/lyonpotpourri/clickhold~.c          |   2 +-
 externals/lyonpotpourri/click~.c              |   2 +-
 externals/lyonpotpourri/counter~.c            |   2 +-
 externals/lyonpotpourri/distortion~.c         |   2 +-
 externals/lyonpotpourri/dynss~.c              |   2 +-
 externals/lyonpotpourri/expflam~.c            |   2 +-
 externals/lyonpotpourri/flanjah~.c            |   2 +-
 externals/lyonpotpourri/granola~.c            |   2 +-
 externals/lyonpotpourri/granulesf~.c          |   6 +-
 externals/lyonpotpourri/granule~.c            |   2 +-
 externals/lyonpotpourri/kbuffer~.c            |   2 +-
 externals/lyonpotpourri/killdc~.c             |   2 +-
 externals/lyonpotpourri/latch~.c              |   2 +-
 externals/lyonpotpourri/magfreq_analysis~.c   |   2 +-
 externals/lyonpotpourri/markov~.c             |   2 +-
 externals/lyonpotpourri/mask~.c               |   2 +-
 externals/lyonpotpourri/oscil~.c              |   2 +-
 externals/lyonpotpourri/phasemod~.c           |   2 +-
 externals/lyonpotpourri/player~.c             |   4 +-
 externals/lyonpotpourri/poltocar~.c           |   2 +-
 externals/lyonpotpourri/pulser~.c             |   2 +-
 externals/lyonpotpourri/quadpan~.c            |   2 +-
 externals/lyonpotpourri/rtrig~.c              |   2 +-
 externals/lyonpotpourri/sigseq~.c             |   4 +-
 externals/lyonpotpourri/squash~.c             |   2 +-
 externals/lyonpotpourri/stutter~.c            |   2 +-
 externals/lyonpotpourri/vdp~.c                |   2 +-
 externals/lyonpotpourri/vecdex~.c             |   4 +-
 externals/lyonpotpourri/waveshape~.c          |   2 +-
 externals/lyonpotpourri/windowvec~.c          |   4 +-
 externals/markex/abs~.c                       |   2 +-
 externals/markex/reson~.c                     |   2 +-
 externals/miXed/cyclone/shadow/nettles.c      |  24 +-
 externals/miXed/cyclone/sickle/Clip.c         |   2 +-
 externals/miXed/cyclone/sickle/Line.c         |   2 +-
 externals/miXed/cyclone/sickle/Scope.c        |   4 +-
 externals/miXed/cyclone/sickle/Scope.c.old    |   4 +-
 externals/miXed/cyclone/sickle/abs.c          |   6 +-
 externals/miXed/cyclone/sickle/acos.c         |   2 +-
 externals/miXed/cyclone/sickle/acosh.c        |   2 +-
 externals/miXed/cyclone/sickle/allpass.c      |   2 +-
 externals/miXed/cyclone/sickle/asin.c         |   2 +-
 externals/miXed/cyclone/sickle/asinh.c        |   2 +-
 externals/miXed/cyclone/sickle/atan.c         |   2 +-
 externals/miXed/cyclone/sickle/atan2.c        |   2 +-
 externals/miXed/cyclone/sickle/atanh.c        |   2 +-
 externals/miXed/cyclone/sickle/atodb.c        |   2 +-
 externals/miXed/cyclone/sickle/average.c      |   2 +-
 externals/miXed/cyclone/sickle/avg.c          |   2 +-
 externals/miXed/cyclone/sickle/bitand.c       |   4 +-
 externals/miXed/cyclone/sickle/bitnot.c       |   2 +-
 externals/miXed/cyclone/sickle/bitor.c        |   4 +-
 externals/miXed/cyclone/sickle/bitshift.c     |   2 +-
 externals/miXed/cyclone/sickle/bitxor.c       |   4 +-
 externals/miXed/cyclone/sickle/capture.c      |   4 +-
 externals/miXed/cyclone/sickle/cartopol.c     |   4 +-
 externals/miXed/cyclone/sickle/change.c       |   2 +-
 externals/miXed/cyclone/sickle/click.c        |   2 +-
 externals/miXed/cyclone/sickle/comb.c         |   2 +-
 externals/miXed/cyclone/sickle/cosh.c         |   2 +-
 externals/miXed/cyclone/sickle/cosx.c         |   2 +-
 externals/miXed/cyclone/sickle/count.c        |   2 +-
 externals/miXed/cyclone/sickle/curve.c        |   2 +-
 externals/miXed/cyclone/sickle/cycle.c        |   2 +-
 externals/miXed/cyclone/sickle/dbtoa.c        |   2 +-
 externals/miXed/cyclone/sickle/delay.c        |   2 +-
 externals/miXed/cyclone/sickle/delta.c        |   2 +-
 externals/miXed/cyclone/sickle/deltaclip.c    |   2 +-
 externals/miXed/cyclone/sickle/edge.c         |   2 +-
 externals/miXed/cyclone/sickle/frameaccum.c   |   2 +-
 externals/miXed/cyclone/sickle/framedelta.c   |   2 +-
 externals/miXed/cyclone/sickle/kink.c         |   2 +-
 externals/miXed/cyclone/sickle/log.c          |   2 +-
 externals/miXed/cyclone/sickle/lores.c        |   2 +-
 externals/miXed/cyclone/sickle/matrix.c       |   4 +-
 externals/miXed/cyclone/sickle/maximum.c      |   2 +-
 externals/miXed/cyclone/sickle/minimum.c      |   2 +-
 externals/miXed/cyclone/sickle/minmax.c       |   2 +-
 externals/miXed/cyclone/sickle/mstosamps.c    |   2 +-
 externals/miXed/cyclone/sickle/onepole.c      |   2 +-
 externals/miXed/cyclone/sickle/overdrive.c    |   2 +-
 externals/miXed/cyclone/sickle/peakamp.c      |   2 +-
 externals/miXed/cyclone/sickle/phasewrap.c    |   6 +-
 externals/miXed/cyclone/sickle/pink.c         |   2 +-
 externals/miXed/cyclone/sickle/poltocar.c     |   4 +-
 externals/miXed/cyclone/sickle/pong.c         |   4 +-
 externals/miXed/cyclone/sickle/pow.c          |   2 +-
 externals/miXed/cyclone/sickle/rampsmooth.c   |   2 +-
 externals/miXed/cyclone/sickle/rand.c         |   2 +-
 externals/miXed/cyclone/sickle/reson.c        |   2 +-
 externals/miXed/cyclone/sickle/round.c        |   2 +-
 externals/miXed/cyclone/sickle/sah.c          |   2 +-
 externals/miXed/cyclone/sickle/sampstoms.c    |   2 +-
 externals/miXed/cyclone/sickle/sinh.c         |   2 +-
 externals/miXed/cyclone/sickle/sinx.c         |   2 +-
 externals/miXed/cyclone/sickle/slide.c        |   2 +-
 externals/miXed/cyclone/sickle/spike.c        |   2 +-
 externals/miXed/cyclone/sickle/svf.c          |   2 +-
 externals/miXed/cyclone/sickle/tanh.c         |   2 +-
 externals/miXed/cyclone/sickle/tanx.c         |   2 +-
 externals/miXed/cyclone/sickle/train.c        |   2 +-
 externals/miXed/cyclone/sickle/trapezoid.c    |   2 +-
 externals/miXed/cyclone/sickle/triangle.c     |   2 +-
 externals/miXed/cyclone/sickle/trunc.c        |   4 +-
 externals/miXed/cyclone/sickle/vectral.c      |   2 +-
 externals/miXed/cyclone/sickle/zerox.c        |   2 +-
 externals/mjlib/convolve~.c                   |   2 +-
 externals/mjlib/pin~.c                        |   2 +-
 externals/mjlib/synapseA~.c                   |   2 +-
 externals/mmonoplayer/atari2600~.c            |   2 +-
 externals/moonlib/panvol~.c                   |   2 +-
 externals/moonlib/sfread2~.c                  |   6 +-
 externals/moonlib/ssaw~.c                     |   2 +-
 externals/moonlib/tabenv.c                    |   2 +-
 externals/motex/ln~.c                         |   4 +-
 externals/motex/pansig~.c                     |   2 +-
 externals/motex/pan~.c                        |   2 +-
 externals/motex/pol2rec~.c                    |   4 +-
 externals/motex/polygate~.c                   |  20 +-
 externals/motex/rec2pol~.c                    |   6 +-
 externals/mrpeach/op~/op~.c                   |   2 +-
 externals/mrpeach/rcosc~/rcosc~.c             |   2 +-
 externals/mrpeach/rc~/rc~.c                   |   2 +-
 externals/mrpeach/rojo~/rojo~.c               |   2 +-
 externals/mrpeach/sqosc~/sqosc~.c             |   2 +-
 externals/nusmuk/nusmuk-audio/bq~.c           |   2 +-
 externals/nusmuk/nusmuk-audio/tabosc4c~.c     |   2 +-
 externals/nusmuk/nusmuk-audio/tabosci~.c      |   2 +-
 externals/nusmuk/nusmuk-audio/tabread4c~.c    |   2 +-
 externals/olafmatt/clone/clone.c              |  16 +-
 externals/olafmatt/clone/clone_signal.c       |   4 +-
 externals/oscbank~/oscbank~.c                 |   2 +-
 externals/pdogg/oggread~.c                    |   2 +-
 externals/pdogg/oggwrite~.c                   |   2 +-
 externals/pdp/modules/generic/pdp_metro.c     |   2 +-
 externals/pdp/modules/image_io/pdp_qt.c       |   2 +-
 .../pdp/modules/image_special/pdp_scan.c      |   2 +-
 .../pdp/modules/image_special/pdp_scanxy.c    |   2 +-
 .../pdp/modules/image_special/pdp_scope.c     |   2 +-
 externals/pidip/modules/pdp_icedthe~.c        |   2 +-
 externals/pidip/modules/pdp_rec~.c            |   2 +-
 externals/pidip/modules/pdp_segsnd~.c         |   2 +-
 externals/pidip/modules/pdp_theonice~.c       |   2 +-
 externals/pidip/modules/pdp_theorin~.c        |   2 +-
 externals/pidip/modules/pdp_theorout~.c       |   2 +-
 externals/pidip/modules/pdp_yqt.c             |   2 +-
 externals/pmpd/pmpd~.c                        |   2 +-
 externals/postlude/flib/src/bmax~.c           |   2 +-
 externals/postlude/flib/src/cc~.c             |   4 +-
 externals/postlude/flib/src/clean~.c          |   2 +-
 externals/postlude/flib/src/cross~.c          |   4 +-
 externals/postlude/flib/src/ha~.c             |   2 +-
 externals/postlude/flib/src/hca~.c            |   2 +-
 externals/postlude/flib/src/irreg~.c          |   2 +-
 externals/postlude/flib/src/melf~.c           |   2 +-
 externals/postlude/flib/src/mspec~.c          |   2 +-
 externals/postlude/flib/src/peak~.c           |   2 +-
 externals/postlude/flib/src/pp~.c             |   2 +-
 externals/postlude/flib/src/pspec~.c          |   2 +-
 externals/postlude/flib/src/sc~.c             |   2 +-
 externals/postlude/flib/src/sfm~.c            |   2 +-
 externals/postlude/flib/src/ss~.c             |   2 +-
 externals/postlude/flib/src/trist~.c          |   2 +-
 externals/postlude/flib/src/wdv~.c            |   2 +-
 externals/rjlib/src/rj_barkflux_accum~.c      |   2 +-
 externals/rjlib/src/rj_centroid~.c            |   2 +-
 externals/rjlib/src/rj_senergy~.c             |   2 +-
 externals/rjlib/src/rj_zcr~.c                 |   2 +-
 externals/signal/bonk~/bonk~.c                |   2 +-
 externals/signal/fiddle~/fiddle~.c            |   4 +-
 externals/signal/loop~/loop~.c                |   2 +-
 externals/signal/lrshift~/lrshift~.c          |   2 +-
 externals/sigpack/chop~.c                     |   2 +-
 externals/sigpack/decimate~.c                 |   2 +-
 externals/sigpack/diode~.c                    |   2 +-
 externals/sigpack/foldback~.c                 |   2 +-
 externals/sigpack/foldover~.c                 |   2 +-
 externals/sigpack/freqdiv~.c                  |   2 +-
 externals/sigpack/freqshift~.c                |   2 +-
 externals/sigpack/hardlimit~.c                |   2 +-
 externals/sigpack/harmgen~.c                  |   2 +-
 externals/sigpack/impulse~.c                  |   2 +-
 externals/sigpack/rectify~.c                  |   2 +-
 externals/sigpack/round~.c                    |   2 +-
 externals/sigpack/saturate~.c                 |   2 +-
 externals/sigpack/shape~.c                    |   2 +-
 externals/sigpack/sieve~.c                    |   2 +-
 externals/sigpack/split~.c                    |   2 +-
 externals/sigpack/transient~.c                |   2 +-
 externals/sigpack/ustep~.c                    |   2 +-
 externals/sigpack/valverect~.c                |   2 +-
 externals/sigpack/vowel~.c                    |   2 +-
 externals/sigpack/wavewrap~.c                 |   2 +-
 externals/tb/erfc~/erfc~.c                    |   2 +-
 externals/tb/erf~/erf~.c                      |   2 +-
 externals/tb/volctl~/volctl~.c                |   6 +-
 externals/tof/src/breakpoints~.c              |   2 +-
 externals/tof/src/common~.c                   |   2 +-
 externals/tof/src/crossfade~.c                |   2 +-
 externals/tof/src/phasorshot~.c               |   2 +-
 externals/tof/test/accum~.c                   |   2 +-
 externals/tof/test/count.c                    |   2 +-
 externals/tof/test/frameaccum.c               |   2 +-
 externals/unauthorized/audience~.c            |  18 +-
 externals/unauthorized/beatify~.c             |   2 +-
 externals/unauthorized/compressor~.c          |   2 +-
 externals/unauthorized/cooled~.c              |   2 +-
 externals/unauthorized/disto~.c               |   2 +-
 externals/unauthorized/formant~.c             |   2 +-
 externals/unauthorized/mp3amp~.c              |   2 +-
 externals/unauthorized/mp3cast~.c             |   2 +-
 externals/unauthorized/mp3fileout~.c          |   2 +-
 externals/unauthorized/mp3streamin~.c         |   2 +-
 externals/unauthorized/mp3streamout~.c        |   2 +-
 externals/unauthorized/mp3write~.c            |   2 +-
 externals/unauthorized/randomblock~.c         |   2 +-
 externals/unauthorized/samplebox~.c           |   2 +-
 externals/unauthorized/scratcher~.c           |   2 +-
 externals/unauthorized/sonogram~.c            |   2 +-
 externals/unauthorized/speexin~.c             |   2 +-
 externals/unauthorized/speexout~.c            |   2 +-
 externals/unauthorized/spigot~.c              |   2 +-
 externals/unauthorized/vocoder~.c             |   2 +-
 externals/unauthorized/wahwah~.c              |   2 +-
 externals/vst/vst~.cpp                        |   4 +-
 externals/windowing/bartlett~.c               |   2 +-
 externals/windowing/blackman~.c               |   2 +-
 externals/windowing/connes~.c                 |   2 +-
 externals/windowing/cosine~.c                 |   2 +-
 externals/windowing/gaussian~.c               |   2 +-
 externals/windowing/hamming~.c                |   2 +-
 externals/windowing/hanning~.c                |   2 +-
 externals/windowing/kaiser~.c                 |   2 +-
 externals/windowing/lanczos~.c                |   2 +-
 externals/windowing/welch~.c                  |   2 +-
 externals/zexy/src/0x260x26_tilde.c           |  12 +-
 externals/zexy/src/0x3c_tilde.c               |  12 +-
 externals/zexy/src/0x3d0x3d_tilde.c           |  12 +-
 externals/zexy/src/0x3e_tilde.c               |  12 +-
 externals/zexy/src/0x7c0x7c_tilde.c           |  12 +-
 externals/zexy/src/absgn~.c                   |   4 +-
 externals/zexy/src/abs~.c                     |   4 +-
 externals/zexy/src/avg~.c                     |   2 +-
 externals/zexy/src/blockmirror~.c             |   2 +-
 externals/zexy/src/blockshuffle~.c            |   2 +-
 externals/zexy/src/blockswap~.c               |   2 +-
 externals/zexy/src/demultiplex~.c             |   2 +-
 externals/zexy/src/dfreq~.c                   |   2 +-
 externals/zexy/src/dirac~.c                   |   4 +-
 externals/zexy/src/doublepole~.c              |   2 +-
 externals/zexy/src/envrms~.c                  |   2 +-
 externals/zexy/src/multiline~.c               |   2 +-
 externals/zexy/src/multiplex~.c               |   2 +-
 externals/zexy/src/noish~.c                   |   2 +-
 externals/zexy/src/noisi~.c                   |   2 +-
 externals/zexy/src/pack~.c                    |   2 +-
 externals/zexy/src/pdf~.c                     |   2 +-
 externals/zexy/src/quantize~.c                |   2 +-
 externals/zexy/src/route~.c                   |   2 +-
 externals/zexy/src/sfplay.c                   |   8 +-
 externals/zexy/src/sfrecord.c                 |   8 +-
 externals/zexy/src/sgn~.c                     |   6 +-
 externals/zexy/src/sigzero~.c                 |   2 +-
 externals/zexy/src/step~.c                    |   2 +-
 externals/zexy/src/swap~.c                    |   2 +-
 externals/zexy/src/tabread4~~.c               |   2 +-
 externals/zexy/src/tavg~.c                    |   2 +-
 externals/zexy/src/unpack~.c                  |   2 +-
 externals/zexy/src/z~.c                       |   2 +-
 453 files changed, 653 insertions(+), 1283 deletions(-)
 delete mode 100644 externals/ext13/scramble~.c.save

diff --git a/externals/autotune/autotune~.c b/externals/autotune/autotune~.c
index 71dc9343e..e65d8bcd7 100644
--- a/externals/autotune/autotune~.c
+++ b/externals/autotune/autotune~.c
@@ -547,7 +547,7 @@ void autotune_dsp(t_autotune *x, t_signal **sp, short *count)
 	
 	if(x->fs != sp[0]->s_sr)  autotune_init(x, sp[0]->s_sr);
 	
-	dsp_add(autotune_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	dsp_add(autotune_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/bassemu~/bassemu~.c b/externals/bassemu~/bassemu~.c
index 14966fc52..dcb9d5b29 100644
--- a/externals/bassemu~/bassemu~.c
+++ b/externals/bassemu~/bassemu~.c
@@ -230,7 +230,8 @@ static t_int *bassemu_perform(t_int *ww)
 static void bassemu_dsp(t_bassemu *x, t_signal **sp)
 {
 	x->sr = sp[0]->s_sr;
-	dsp_add(bassemu_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	dsp_add(bassemu_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec,
+            (t_int)sp[0]->s_n);
 }
 
 static void recalc(t_bassemu *x)
diff --git a/externals/bsaylor/aenv~.c b/externals/bsaylor/aenv~.c
index 6e0daa5fc..d37262390 100644
--- a/externals/bsaylor/aenv~.c
+++ b/externals/bsaylor/aenv~.c
@@ -99,7 +99,7 @@ static t_int *aenv_perform(t_int *w)
 
 static void aenv_dsp(t_aenv *x, t_signal **sp)
 {
-	dsp_add(aenv_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+	dsp_add(aenv_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void aenv_float(t_aenv *x, t_float f)
diff --git a/externals/bsaylor/partconv~.c b/externals/bsaylor/partconv~.c
index 80a108b7b..5ddadc963 100644
--- a/externals/bsaylor/partconv~.c
+++ b/externals/bsaylor/partconv~.c
@@ -337,7 +337,7 @@ static void partconv_dsp(t_partconv *x, t_signal **sp)
 		partconv_set(x, x->arrayname);
 	}
 
-	dsp_add(partconv_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	dsp_add(partconv_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *partconv_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/bsaylor/pvoc~.c b/externals/bsaylor/pvoc~.c
index 62c38c505..3402ef70b 100644
--- a/externals/bsaylor/pvoc~.c
+++ b/externals/bsaylor/pvoc~.c
@@ -258,7 +258,7 @@ static t_int *pvoc_perform(t_int *w)
 
 static void pvoc_dsp(t_pvoc *x, t_signal **sp)
 {
-	    dsp_add(pvoc_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+	    dsp_add(pvoc_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 // adapted from jsarlo's windowing library
diff --git a/externals/bsaylor/susloop~.c b/externals/bsaylor/susloop~.c
index 1e968df48..227274e47 100644
--- a/externals/bsaylor/susloop~.c
+++ b/externals/bsaylor/susloop~.c
@@ -88,7 +88,7 @@ static t_int *susloop_perform(t_int *w)
 
 static void susloop_dsp(t_susloop *x, t_signal **sp)
 {
-	    dsp_add(susloop_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	    dsp_add(susloop_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *susloop_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/bsaylor/svf~.c b/externals/bsaylor/svf~.c
index d40f5220b..5c80ce699 100644
--- a/externals/bsaylor/svf~.c
+++ b/externals/bsaylor/svf~.c
@@ -124,7 +124,7 @@ static t_int *svf_perform(t_int *w)
 
 static void svf_dsp(t_svf *x, t_signal **sp)
 {
-	dsp_add(svf_perform, 7, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[0]->s_n);
+	dsp_add(svf_perform, 7, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *svf_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/bsaylor/zhzxh~.c b/externals/bsaylor/zhzxh~.c
index 2292912b4..3533b131f 100644
--- a/externals/bsaylor/zhzxh~.c
+++ b/externals/bsaylor/zhzxh~.c
@@ -59,7 +59,7 @@ static t_int *zhzxh_perform(t_int *w)
 
 static void zhzxh_dsp(t_zhzxh *x, t_signal **sp)
 {
-	dsp_add(zhzxh_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	dsp_add(zhzxh_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *zhzxh_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/creb/modules++/biquadseries~.cc b/externals/creb/modules++/biquadseries~.cc
index f4a24639d..819f5bf07 100644
--- a/externals/creb/modules++/biquadseries~.cc
+++ b/externals/creb/modules++/biquadseries~.cc
@@ -77,7 +77,7 @@ static t_int *biquadseries_perform(t_int *w)
 
 static void biquadseries_dsp(t_biquadseries *x, t_signal **sp)
 {
-    dsp_add(biquadseries_perform, 4, x->biquadseries, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(biquadseries_perform, 4, x->biquadseries, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 
 }                                  
 void biquadseries_free(void)
diff --git a/externals/creb/modules++/blosc~.cc b/externals/creb/modules++/blosc~.cc
index ee353d69c..2ab91f60f 100644
--- a/externals/creb/modules++/blosc~.cc
+++ b/externals/creb/modules++/blosc~.cc
@@ -478,30 +478,30 @@ static void blosc_dsp(t_blosc *x, t_signal **sp)
   if (x->x_ctl.c_waveform == gensym("syncsaw")){
       x->x_ctl.c_scale = 1.0;
       x->x_ctl.c_scale_update = 1.0;
-      dsp_add(blosc_perform_hardsync_saw, 5, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
+      dsp_add(blosc_perform_hardsync_saw, 5, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
   }
 
   /* 1 osc */
   else if (x->x_ctl.c_waveform == gensym("pulse")){
       x->x_ctl.c_scale = 1.0;
       x->x_ctl.c_scale_update = 1.0;
-      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
   }
   else if (x->x_ctl.c_waveform == gensym("pulse2")){
       x->x_ctl.c_phase_inc_scale *= 2;
       x->x_ctl.c_scale = 1.0;
       x->x_ctl.c_scale_update = -1.0;
-      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
   }
   else if (x->x_ctl.c_waveform == gensym("comparator")){
       x->x_ctl.c_scale = 1.0;
       x->x_ctl.c_scale_update = 1.0;
-      dsp_add(blosc_perform_comparator, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+      dsp_add(blosc_perform_comparator, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
   }
   else{
        x->x_ctl.c_scale = 1.0;
       x->x_ctl.c_scale_update = 1.0;
-      dsp_add(blosc_perform_saw, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+      dsp_add(blosc_perform_saw, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
   }
 
 
diff --git a/externals/creb/modules++/filterortho~.cc b/externals/creb/modules++/filterortho~.cc
index 14c28968d..9dc3e07f1 100644
--- a/externals/creb/modules++/filterortho~.cc
+++ b/externals/creb/modules++/filterortho~.cc
@@ -68,7 +68,8 @@ static t_int *filterortho_perform(t_int *w)
 
 static void filterortho_dsp(t_filterortho *x, t_signal **sp)
 {
-    dsp_add(filterortho_perform, 4, x->filterortho, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(filterortho_perform, 4, x->filterortho, (t_int)sp[0]->s_n,
+        sp[0]->s_vec, sp[1]->s_vec);
 
 }                                  
 void filterortho_free(t_filterortho *x)
diff --git a/externals/creb/modules/abs~.c b/externals/creb/modules/abs~.c
index c4e0aa1d0..3c5c0eb05 100644
--- a/externals/creb/modules/abs~.c
+++ b/externals/creb/modules/abs~.c
@@ -30,7 +30,7 @@ static t_int *abs_perform(t_int *w)
 
 static void abs_dsp(t_abs *x, t_signal **sp)
 {
-    dsp_add(abs_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(abs_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *abs_new(void)
diff --git a/externals/creb/modules/bdiag~.c b/externals/creb/modules/bdiag~.c
index bcc9ce4bf..440f1c0d4 100644
--- a/externals/creb/modules/bdiag~.c
+++ b/externals/creb/modules/bdiag~.c
@@ -215,7 +215,7 @@ static void bdiag_dsp(t_bdiag *x, t_signal **sp)
 	}
       
            
-      dsp_add(bdiag_perform, 4, &x->x_ctl, sp[0]->s_n, 
+      dsp_add(bdiag_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, 
 	      sp[0]->s_vec, sp[1]->s_vec);
     }
 
diff --git a/externals/creb/modules/bfft~.c b/externals/creb/modules/bfft~.c
index 9910f14d9..7930f89c4 100644
--- a/externals/creb/modules/bfft~.c
+++ b/externals/creb/modules/bfft~.c
@@ -177,7 +177,7 @@ static void bfft_dsp(t_bfft *x, t_signal **sp)
       in = out;
     }
 
-  dsp_add(bfft_perform, 4, &x->x_ctl, n, in, out);
+  dsp_add(bfft_perform, 4, &x->x_ctl, (t_int)n, in, out);
 
 }
 
@@ -196,7 +196,7 @@ static void ibfft_dsp(t_bfft *x, t_signal **sp)
       in = out;
     }
 
-  dsp_add(ibfft_perform, 4, &x->x_ctl, n, in, out);
+  dsp_add(ibfft_perform, 4, &x->x_ctl, (t_int)n, in, out);
 
 }
 
@@ -214,7 +214,7 @@ static void fht_dsp(t_bfft *x, t_signal **sp)
       in = out;
     }
 
-  dsp_add(fht_perform, 4, &x->x_ctl, n, in, out);
+  dsp_add(fht_perform, 4, &x->x_ctl, (t_int)n, in, out);
 
 }
 
diff --git a/externals/creb/modules/bitsplit~.c b/externals/creb/modules/bitsplit~.c
index 85b69a134..f81be641e 100644
--- a/externals/creb/modules/bitsplit~.c
+++ b/externals/creb/modules/bitsplit~.c
@@ -71,7 +71,7 @@ static void bitsplit_dsp(t_bitsplit *x, t_signal **sp)
     for (i=0;i<x->x_ctl.c_outputs;i++){
 	x->x_ctl.c_output[i] = sp[i+1]->s_vec;
     }
-    dsp_add(bitsplit_perform, 2, &x->x_ctl, sp[0]->s_n);
+    dsp_add(bitsplit_perform, 2, &x->x_ctl, (t_int)sp[0]->s_n);
 }                                  
 
 
diff --git a/externals/creb/modules/blocknorm~.c b/externals/creb/modules/blocknorm~.c
index 414a046d6..f47f5892c 100644
--- a/externals/creb/modules/blocknorm~.c
+++ b/externals/creb/modules/blocknorm~.c
@@ -90,7 +90,7 @@ static void blocknorm_dsp(t_blocknorm *x, t_signal **sp)
 	x->x_ctl.c_input[i] = sp[i]->s_vec;
 	x->x_ctl.c_output[i] = sp[c+i]->s_vec;
     }
-    dsp_add(blocknorm_perform, 2, &x->x_ctl, sp[0]->s_n);
+    dsp_add(blocknorm_perform, 2, &x->x_ctl, (t_int)sp[0]->s_n);
 }                                  
 
 
diff --git a/externals/creb/modules/bmatrix~.c b/externals/creb/modules/bmatrix~.c
index 2561894ae..05c726889 100644
--- a/externals/creb/modules/bmatrix~.c
+++ b/externals/creb/modules/bmatrix~.c
@@ -102,7 +102,8 @@ static void matrix_dsp(t_matrix *x, t_signal **sp)
   
   for (i=0;i<n;i++) x->x_ctl.c_A[i] = 1;
 
-  dsp_add(matrix_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+  dsp_add(matrix_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec,
+    sp[1]->s_vec);
 
 
 }                                  
diff --git a/externals/creb/modules/bwin~.c b/externals/creb/modules/bwin~.c
index 69c941a9d..7cb46fcc9 100644
--- a/externals/creb/modules/bwin~.c
+++ b/externals/creb/modules/bwin~.c
@@ -138,7 +138,7 @@ static void window_dsp(t_window *x, t_signal **sp)
 	window_type(x, x->x_type, x->x_typearg);
     }
 
-    dsp_add(window_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, n);
+    dsp_add(window_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)n);
 }
 
 static void window_free(t_window *x)
diff --git a/externals/creb/modules/cheby~.c b/externals/creb/modules/cheby~.c
index fdd02dcbf..70f19c30e 100644
--- a/externals/creb/modules/cheby~.c
+++ b/externals/creb/modules/cheby~.c
@@ -91,7 +91,7 @@ static t_int *cheby_perform(t_int *w)
 
 static void cheby_dsp(t_cheby *x, t_signal **sp)
 {
-    dsp_add(cheby_perform, 4, &x->x_ctl, sp[0]->s_n, 
+    dsp_add(cheby_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, 
 	    sp[0]->s_vec, sp[1]->s_vec);
 
 }                                  
diff --git a/externals/creb/modules/cmath~.c b/externals/creb/modules/cmath~.c
index c2f11bc60..b01f09330 100644
--- a/externals/creb/modules/cmath~.c
+++ b/externals/creb/modules/cmath~.c
@@ -126,7 +126,7 @@ static t_int *cmath_perform_nifft(t_int *w)
 
 static void cmath_dsp(t_cmath *x, t_signal **sp)
 {
-    dsp_add(x->x_perf, 5, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
+    dsp_add(x->x_perf, 5, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 
 }                                  
 void cmath_free(void)
diff --git a/externals/creb/modules/diag~.c b/externals/creb/modules/diag~.c
index 6d054154d..443ca8110 100644
--- a/externals/creb/modules/diag~.c
+++ b/externals/creb/modules/diag~.c
@@ -160,7 +160,7 @@ static void diag_dsp(t_diag *x, t_signal **sp)
 
 
 
-  dsp_add(diag_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+  dsp_add(diag_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 
 }
                                   
diff --git a/externals/creb/modules/dist~.c b/externals/creb/modules/dist~.c
index 6cab910f6..4cda5494a 100644
--- a/externals/creb/modules/dist~.c
+++ b/externals/creb/modules/dist~.c
@@ -237,7 +237,7 @@ static t_int *dist_perform(t_int *w)
 
 static void dist_dsp(t_dist *x, t_signal **sp)
 {
-    dsp_add(dist_perform, 4, &x->x_ctl, sp[0]->s_n, 
+    dsp_add(dist_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, 
 	    sp[0]->s_vec, sp[1]->s_vec);
 
 }                                  
diff --git a/externals/creb/modules/dwt~.c b/externals/creb/modules/dwt~.c
index 5c4a41e6a..f212b0bee 100644
--- a/externals/creb/modules/dwt~.c
+++ b/externals/creb/modules/dwt~.c
@@ -716,16 +716,16 @@ static void dwt_dsp(t_dwt *x, t_signal **sp)
 
   switch(x->x_ctl.c_type){
   case DWT:
-    dsp_add(dwt_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(dwt_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     break;
   case IDWT:
-    dsp_add(idwt_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(idwt_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     break;
   case DWT16:
-    dsp_add(dwt16_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(dwt16_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     break;
   case IDWT16:
-    dsp_add(idwt16_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(idwt16_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     break;
 
 
diff --git a/externals/creb/modules/dynwav~.c b/externals/creb/modules/dynwav~.c
index f1e0e1561..36d5b2e10 100644
--- a/externals/creb/modules/dynwav~.c
+++ b/externals/creb/modules/dynwav~.c
@@ -262,7 +262,7 @@ static void dynwav_dsp(t_dynwav *x, t_signal **sp)
     }
 
 
-  dsp_add(dynwav_perform_8point, 5, &x->x_ctl, sp[0]->s_n, 
+  dsp_add(dynwav_perform_8point, 5, &x->x_ctl, (t_int)sp[0]->s_n, 
 	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 
 
diff --git a/externals/creb/modules/eadsr~.c b/externals/creb/modules/eadsr~.c
index 9c5597061..2dfcfa19f 100644
--- a/externals/creb/modules/eadsr~.c
+++ b/externals/creb/modules/eadsr~.c
@@ -122,7 +122,7 @@ static t_int *eadsr_perform(t_int *w)
 static void eadsr_dsp(t_eadsr *x, t_signal **sp)
 {
     x->x_sr = sp[0]->s_sr;
-    dsp_add(eadsr_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(eadsr_perform, 3, &x->x_ctl, sp[0]->s_n, (t_int)sp[0]->s_vec);
 
 }                                  
 void eadsr_free(void)
diff --git a/externals/creb/modules/ead~.c b/externals/creb/modules/ead~.c
index 4c9f8f2ae..4faa104d0 100644
--- a/externals/creb/modules/ead~.c
+++ b/externals/creb/modules/ead~.c
@@ -107,7 +107,7 @@ static t_int *ead_perform(t_int *w)
 
 static void ead_dsp(t_ead *x, t_signal **sp)
 {
-  dsp_add(ead_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
+  dsp_add(ead_perform, 3, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }                                  
 
 /* destructor */
diff --git a/externals/creb/modules/ear~.c b/externals/creb/modules/ear~.c
index 04d9ebabb..fb1a05afa 100644
--- a/externals/creb/modules/ear~.c
+++ b/externals/creb/modules/ear~.c
@@ -95,7 +95,7 @@ static t_int *ear_perform(t_int *w)
 static void ear_dsp(t_ear *x, t_signal **sp)
 {
     x->x_sr = sp[0]->s_sr;
-    dsp_add(ear_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(ear_perform, 3, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec);
 
 }                                  
 void ear_free(void)
diff --git a/externals/creb/modules/eblosc~.c b/externals/creb/modules/eblosc~.c
index 82779b148..728af1500 100644
--- a/externals/creb/modules/eblosc~.c
+++ b/externals/creb/modules/eblosc~.c
@@ -503,7 +503,7 @@ static void eblosc_dsp(t_eblosc *x, t_signal **sp)
   if (x->x_ctl.c_waveform == gensym("syncsaw")){
       x->x_ctl.c_scale = 1.0f;
       x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(eblosc_perform_hardsync_saw, 5, &x->x_ctl, sp[0]->s_n,
+      dsp_add(eblosc_perform_hardsync_saw, 5, &x->x_ctl, (t_int)sp[0]->s_n,
 	      sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
   }
 
@@ -511,26 +511,26 @@ static void eblosc_dsp(t_eblosc *x, t_signal **sp)
   else if (x->x_ctl.c_waveform == gensym("pulse")){
       x->x_ctl.c_scale = 1.0f;
       x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(eblosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n,
+      dsp_add(eblosc_perform_pulse, 4, &x->x_ctl, (t_int)sp[0]->s_n,
 	      sp[0]->s_vec, sp[1]->s_vec);
   }
   else if (x->x_ctl.c_waveform == gensym("pulse2")){
       x->x_ctl.c_phase_inc_scale *= 2;
       x->x_ctl.c_scale = 1.0f;
       x->x_ctl.c_scale_update = -1.0f;
-      dsp_add(eblosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n,
+      dsp_add(eblosc_perform_pulse, 4, &x->x_ctl, (t_int)sp[0]->s_n,
 	      sp[0]->s_vec, sp[1]->s_vec);
   }
   else if (x->x_ctl.c_waveform == gensym("comparator")){
       x->x_ctl.c_scale = 1.0f;
       x->x_ctl.c_scale_update = 1.0f;
       dsp_add(eblosc_perform_comparator, 4, &x->x_ctl,
-	      sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	      (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
   }
   else{
        x->x_ctl.c_scale = 1.0f;
       x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(eblosc_perform_saw, 4, &x->x_ctl, sp[0]->s_n,
+      dsp_add(eblosc_perform_saw, 4, &x->x_ctl, (t_int)sp[0]->s_n,
 	      sp[0]->s_vec, sp[1]->s_vec);
   }
 
diff --git a/externals/creb/modules/fdn~.c b/externals/creb/modules/fdn~.c
index ffcb77045..e0c29acc2 100644
--- a/externals/creb/modules/fdn~.c
+++ b/externals/creb/modules/fdn~.c
@@ -255,7 +255,7 @@ static void fdn_dsp(t_fdn *x, t_signal **sp)
   dsp_add(fdn_perform, 
 	  5, 
 	  &x->x_ctl, 
-	  sp[0]->s_n, 
+	  (t_int)sp[0]->s_n, 
 	  sp[0]->s_vec, 
 	  sp[1]->s_vec, 
 	  sp[2]->s_vec);
diff --git a/externals/creb/modules/junction~.c b/externals/creb/modules/junction~.c
index ef68e50c6..591002c69 100644
--- a/externals/creb/modules/junction~.c
+++ b/externals/creb/modules/junction~.c
@@ -145,9 +145,9 @@ static void junction_dsp(t_junction *x, t_signal **sp)
   x->x_ctl.c_norm =  norm; 
 
 
-  dsp_add(junction_perform, 2, &x->x_ctl, sp[0]->s_n);
+  dsp_add(junction_perform, 2, &x->x_ctl, (t_int)sp[0]->s_n);
 
-    /*    dsp_add(junction_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);*/
+    /*    dsp_add(junction_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);*/
 
 }                                  
 
diff --git a/externals/creb/modules/lattice~.c b/externals/creb/modules/lattice~.c
index f60070587..101835f00 100644
--- a/externals/creb/modules/lattice~.c
+++ b/externals/creb/modules/lattice~.c
@@ -85,7 +85,7 @@ static t_int *lattice_perform(t_int *w)
 
 static void lattice_dsp(t_lattice *x, t_signal **sp)
 {
-    dsp_add(lattice_perform, 4, &x->x_ctl, sp[0]->s_n,
+    dsp_add(lattice_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec);
 
 }                                  
diff --git a/externals/creb/modules/permut~.c b/externals/creb/modules/permut~.c
index 80b392c19..8a29e2fba 100644
--- a/externals/creb/modules/permut~.c
+++ b/externals/creb/modules/permut~.c
@@ -149,7 +149,7 @@ static t_int *permut_perform(t_int *w)
 static void permut_dsp(t_permut *x, t_signal **sp)
 {
   permut_resize_table(x, sp[0]->s_n);
-  dsp_add(permut_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+  dsp_add(permut_perform, 4, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 
 }
                                   
diff --git a/externals/creb/modules/qmult~.c b/externals/creb/modules/qmult~.c
index 55ed7df58..d1bf1ab8a 100644
--- a/externals/creb/modules/qmult~.c
+++ b/externals/creb/modules/qmult~.c
@@ -129,7 +129,7 @@ static void qmult_dsp(t_qmult *x, t_signal **sp)
       x->x_ctl.c_output[i] = sp[i+8]->s_vec;
     }
 
-  dsp_add(qmult_perform, 2, &x->x_ctl, sp[0]->s_n);
+  dsp_add(qmult_perform, 2, &x->x_ctl, (t_int)sp[0]->s_n);
 
 
 }                                  
diff --git a/externals/creb/modules/qnorm~.c b/externals/creb/modules/qnorm~.c
index b1e037179..342a2677d 100644
--- a/externals/creb/modules/qnorm~.c
+++ b/externals/creb/modules/qnorm~.c
@@ -101,7 +101,7 @@ static void qnorm_dsp(t_qnorm *x, t_signal **sp)
       x->x_ctl.c_output[i] = sp[i+4]->s_vec;
     }
 
-  dsp_add(qnorm_perform, 2, &x->x_ctl, sp[0]->s_n);
+  dsp_add(qnorm_perform, 2, &x->x_ctl, (t_int)sp[0]->s_n);
 
 
 }                                  
diff --git a/externals/creb/modules/ramp~.c b/externals/creb/modules/ramp~.c
index ad82efab7..3d55462a0 100644
--- a/externals/creb/modules/ramp~.c
+++ b/externals/creb/modules/ramp~.c
@@ -75,7 +75,7 @@ static t_int *ramp_perform(t_int *w)
 
 static void ramp_dsp(t_ramp *x, t_signal **sp)
 {
-    dsp_add(ramp_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(ramp_perform, 3, &x->x_ctl, (t_int)sp[0]->s_n, sp[0]->s_vec);
 
 }                                  
 void ramp_free(void)
diff --git a/externals/creb/modules/resofilt~.c b/externals/creb/modules/resofilt~.c
index 1d7754596..cc84ea9e2 100644
--- a/externals/creb/modules/resofilt~.c
+++ b/externals/creb/modules/resofilt~.c
@@ -357,7 +357,7 @@ static void resofilt_dsp(t_resofilt *x, t_signal **sp)
   dsp_add(x->x_dsp,
 	  6, 
 	  &x->x_ctl, 
-	  sp[0]->s_n, 
+	  (t_int)sp[0]->s_n, 
 	  sp[0]->s_vec, 
 	  sp[1]->s_vec, 
 	  sp[2]->s_vec, 
diff --git a/externals/creb/modules/sbosc~.c b/externals/creb/modules/sbosc~.c
index 1ffccd85a..755bd9c83 100644
--- a/externals/creb/modules/sbosc~.c
+++ b/externals/creb/modules/sbosc~.c
@@ -139,7 +139,8 @@ static t_int *sbosc_tilde_perform(t_int *w)
 static void sbosc_tilde_dsp(t_sbosc_tilde *x, t_signal **sp)
 {
     dsp_add(sbosc_tilde_perform, 6, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
+        (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/creb/modules/scrollgrid1D~.c b/externals/creb/modules/scrollgrid1D~.c
index e2391bcea..5b0904686 100644
--- a/externals/creb/modules/scrollgrid1D~.c
+++ b/externals/creb/modules/scrollgrid1D~.c
@@ -159,7 +159,7 @@ static void scrollgrid1D_dsp(t_scrollgrid1D *x, t_signal **sp)
   dsp_add(scrollgrid1D_perform, 
 	  9, 
 	  &x->x_ctl, 
-	  sp[0]->s_n, 
+	  (t_int)sp[0]->s_n, 
 	  sp[0]->s_vec, 
 	  sp[1]->s_vec, 
 	  sp[2]->s_vec,
diff --git a/externals/creb/modules/statwav~.c b/externals/creb/modules/statwav~.c
index 7ceee68b9..e762728cc 100644
--- a/externals/creb/modules/statwav~.c
+++ b/externals/creb/modules/statwav~.c
@@ -129,7 +129,7 @@ static void statwav_tilde_dsp(t_statwav_tilde *x, t_signal **sp)
     statwav_tilde_set(x, x->x_arrayname);
 
     dsp_add(statwav_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/creb/modules/tabreadmix~.c b/externals/creb/modules/tabreadmix~.c
index dc6f99e82..241ab2096 100644
--- a/externals/creb/modules/tabreadmix~.c
+++ b/externals/creb/modules/tabreadmix~.c
@@ -276,7 +276,7 @@ static void tabreadmix_tilde_dsp(t_tabreadmix_tilde *x, t_signal **sp)
     tabreadmix_tilde_set(x, x->x_arrayname);
 
     dsp_add(tabreadmix_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/creb/modules/xfm~.c b/externals/creb/modules/xfm~.c
index a7a0d9fcb..41648fdd9 100644
--- a/externals/creb/modules/xfm~.c
+++ b/externals/creb/modules/xfm~.c
@@ -203,7 +203,7 @@ static void xfm_dsp(t_xfm *x, t_signal **sp)
   dsp_add(xfm_perform, 
 	  8, 
 	  &x->x_ctl, 
-	  sp[0]->s_n, 
+	  (t_int)sp[0]->s_n, 
 	  sp[0]->s_vec, 
 	  sp[1]->s_vec, 
 	  sp[2]->s_vec,
diff --git a/externals/cxc/delta~.c b/externals/cxc/delta~.c
index ba8d0e0c4..3614a38ac 100644
--- a/externals/cxc/delta~.c
+++ b/externals/cxc/delta~.c
@@ -35,7 +35,7 @@ static t_int *delta_perform(t_int *w)
 
 static void delta_dsp(t_delta *x, t_signal **sp)
 {
-  dsp_add(delta_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(delta_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *delta_new(void)
diff --git a/externals/cxc/mean~.c b/externals/cxc/mean~.c
index 54cfc71b7..cc17df4e6 100644
--- a/externals/cxc/mean~.c
+++ b/externals/cxc/mean~.c
@@ -379,9 +379,9 @@ static void mean_tilde_set(t_mean_tilde *x, t_symbol *s)
 static void mean_tilde_dsp(t_mean_tilde *x, t_signal **sp)
 {
   mean_tilde_set(x, x->x_arrayname);
-  //dsp_add(mean_tilde_perform, 2, x, sp[0]->s_vec, sp[0]->s_n);
-  //dsp_add(mean_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
-  dsp_add(mean_tilde_perform, 2, x, sp[0]->s_n);
+  //dsp_add(mean_tilde_perform, 2, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
+  //dsp_add(mean_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
+  dsp_add(mean_tilde_perform, 2, x, (t_int)sp[0]->s_n);
 }
 
 static void mean_tilde_bang(t_mean_tilde *x)
diff --git a/externals/cxc/random1~.c b/externals/cxc/random1~.c
index f14f2b1f6..2bbf8bd96 100644
--- a/externals/cxc/random1~.c
+++ b/externals/cxc/random1~.c
@@ -102,7 +102,7 @@ static t_int *random1_tilde_perform(t_int *w)
 
 static void random1_tilde_dsp(t_random1_tilde *x, t_signal **sp)
 {
-  dsp_add(random1_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(random1_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void random1_tilde_setup(void)
diff --git a/externals/cxc/random_fl~.c b/externals/cxc/random_fl~.c
index 8747193e6..3d8aa8ddd 100644
--- a/externals/cxc/random_fl~.c
+++ b/externals/cxc/random_fl~.c
@@ -86,7 +86,7 @@ static t_int *random_fl_tilde_perform(t_int *w)
 
 static void random_fl_tilde_dsp(t_random_fl_tilde *x, t_signal **sp)
 {
-  dsp_add(random_fl_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(random_fl_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void random_fl_tilde_setup(void)
diff --git a/externals/cxc/random_icg~.c b/externals/cxc/random_icg~.c
index 553325478..c303a8c13 100644
--- a/externals/cxc/random_icg~.c
+++ b/externals/cxc/random_icg~.c
@@ -150,7 +150,7 @@ static t_int *random_icg_tilde_perform(t_int *w)
 
 static void random_icg_tilde_dsp(t_random_icg_tilde *x, t_signal **sp)
 {
-  dsp_add(random_icg_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(random_icg_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/cxc/reson~.c b/externals/cxc/reson~.c
index 7bca2e04f..ca6ca8607 100644
--- a/externals/cxc/reson~.c
+++ b/externals/cxc/reson~.c
@@ -102,7 +102,7 @@ static void sigreson_dsp(t_sigreson *x, t_signal **sp)
 	x->x_ctl->c_samprate = sp[0]->s_sr;
 	sigreson_float(x, x->x_ctl->c_freq);
 	dsp_add(cu_reson, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
-		x->x_ctl, sp[0]->s_n);
+		x->x_ctl, (t_int)sp[0]->s_n);
 }
 
 static void sigreson_ft1(t_sigreson *x, t_floatarg f) /* sets feedback */
diff --git a/externals/deprecated/pan_gogins~.c b/externals/deprecated/pan_gogins~.c
index 35acf5f85..689a49ac4 100644
--- a/externals/deprecated/pan_gogins~.c
+++ b/externals/deprecated/pan_gogins~.c
@@ -84,7 +84,7 @@ static void pan_gogins_dsp(t_pan_gogins *x, t_signal **sp)
   float *out2 = sp[2]->s_vec;
 
   dsp_add(pan_gogins_perform, 5,
-	  in1, out1, out2, n, x);
+	  in1, out1, out2, (t_int)n, x);
 }
 
 void pan_gogins_f(t_pan_gogins *x, t_floatarg f)
diff --git a/externals/disis/disis_munger.c b/externals/disis/disis_munger.c
index 504617843..05b02ee33 100644
--- a/externals/disis/disis_munger.c
+++ b/externals/disis/disis_munger.c
@@ -1753,7 +1753,7 @@ static void munger_dsp(t_disis_munger *x, t_signal **sp)
     {
         x->x_out[i] = (t_float *)(sp[i + 1]->s_vec);
     }
-    dsp_add(munger_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(munger_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void disis_munger_tilde_setup(void)
diff --git a/externals/disis/disis_phasor~.c b/externals/disis/disis_phasor~.c
index d656da532..010bfd356 100644
--- a/externals/disis/disis_phasor~.c
+++ b/externals/disis/disis_phasor~.c
@@ -118,7 +118,7 @@ t_int *disis_phasor_perform(t_int *w)
 static void disis_phasor_dsp(t_disis_phasor *x, t_signal **sp)
 {
     x->x_conv = 1./sp[0]->s_sr;
-    dsp_add(disis_phasor_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(disis_phasor_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void disis_phasor_free(t_disis_phasor *x)
diff --git a/externals/earplug~/earplug~.c b/externals/earplug~/earplug~.c
index 4f0c6e66d..c53d3207a 100644
--- a/externals/earplug~/earplug~.c
+++ b/externals/earplug~/earplug~.c
@@ -167,7 +167,7 @@ static t_int *earplug_perform(t_int *w)
 static void earplug_dsp(t_earplug *x, t_signal **sp)
 {
 		// callback, params, userdata, in_samples, out_L,		out_R,		blocksize.
-    dsp_add(earplug_perform, 5, x,  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(earplug_perform, 5, x,  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *earplug_new(t_floatarg azimArg, t_floatarg elevArg)
diff --git a/externals/ekext/framescore~.c b/externals/ekext/framescore~.c
index ebc851f68..b6b5ecfca 100644
--- a/externals/ekext/framescore~.c
+++ b/externals/ekext/framescore~.c
@@ -66,7 +66,7 @@ t_int *framescore_tilde_perform(t_int *w)
 void framescore_tilde_dsp(t_framescore_tilde *x, t_signal **sp)
 {
   dsp_add(framescore_tilde_perform, 4, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void *framescore_tilde_new(t_floatarg f)
diff --git a/externals/ekext/framespect~.c b/externals/ekext/framespect~.c
index f029f144c..4cfac97e1 100644
--- a/externals/ekext/framespect~.c
+++ b/externals/ekext/framespect~.c
@@ -74,7 +74,7 @@ t_int *framespect_tilde_perform(t_int *w)
 void framespect_tilde_dsp(t_framespect_tilde *x, t_signal **sp)
 {
   dsp_add(framespect_tilde_perform, 6, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void *framespect_tilde_new(t_floatarg f)
diff --git a/externals/ekext/hasc~.c b/externals/ekext/hasc~.c
index 3ea9e0153..a402e5839 100644
--- a/externals/ekext/hasc~.c
+++ b/externals/ekext/hasc~.c
@@ -65,7 +65,7 @@ t_int *hasc_tilde_perform(t_int *w)
 void hasc_tilde_dsp(t_hasc_tilde *x, t_signal **sp)
 {
   dsp_add(hasc_tilde_perform, 4, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void *hasc_tilde_new(t_floatarg f)
diff --git a/externals/ekext/hssc~.c b/externals/ekext/hssc~.c
index 1cf57b659..7440b98be 100644
--- a/externals/ekext/hssc~.c
+++ b/externals/ekext/hssc~.c
@@ -62,7 +62,7 @@ t_int *hssc_tilde_perform(t_int *w)
 void hssc_tilde_dsp(t_hssc_tilde *x, t_signal **sp)
 {
   dsp_add(hssc_tilde_perform, 4, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void *hssc_tilde_new(t_floatarg f)
diff --git a/externals/ekext/lpc~.c b/externals/ekext/lpc~.c
index f91deee03..1ee35e4ac 100644
--- a/externals/ekext/lpc~.c
+++ b/externals/ekext/lpc~.c
@@ -172,7 +172,7 @@ void *lpc_tilde_dsp(t_lpc_tilde *x, t_signal **sp)
 {
   x->x_schur.c_input = sp[0]->s_vec;
   x->x_schur.c_residual = sp[1]->s_vec;
-  dsp_add(lpc_tilde_perform, 3, x, &x->x_schur, sp[0]->s_n);
+  dsp_add(lpc_tilde_perform, 3, x, &x->x_schur, (t_int)sp[0]->s_n);
   return (void *)x;
 }
 
diff --git a/externals/ekext/lpreson~.c b/externals/ekext/lpreson~.c
index b8f5ccccb..0047d1258 100644
--- a/externals/ekext/lpreson~.c
+++ b/externals/ekext/lpreson~.c
@@ -102,7 +102,7 @@ void *lpreson_tilde_dsp(t_lpreson_tilde *x, t_signal **sp)
 {
   x->x_ctl.c_residual = sp[0]->s_vec;
   x->x_ctl.c_output = sp[1]->s_vec;
-  dsp_add(lpreson_tilde_perform, 3, x, &x->x_ctl, sp[0]->s_n);
+  dsp_add(lpreson_tilde_perform, 3, x, &x->x_ctl, (t_int)sp[0]->s_n);
   return (void *)x;
 }
 
diff --git a/externals/ekext/peakit~.c b/externals/ekext/peakit~.c
index a5a74b410..934f5e524 100644
--- a/externals/ekext/peakit~.c
+++ b/externals/ekext/peakit~.c
@@ -112,7 +112,7 @@ void *peakit_tilde_dsp(t_peakit_tilde *x, t_signal **sp)
 {
   x->x_ctl.f_real = sp[0]->s_vec;
   x->x_ctl.f_imag = sp[1]->s_vec;
-  dsp_add(peakit_tilde_perform, 4, x, &x->x_ctl, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(peakit_tilde_perform, 4, x, &x->x_ctl, sp[0]->s_vec, (t_int)sp[0]->s_n);
   return (void *)x;
 }
 
diff --git a/externals/ekext/simile~.c b/externals/ekext/simile~.c
index 1df58ba96..9fc8cacbe 100644
--- a/externals/ekext/simile~.c
+++ b/externals/ekext/simile~.c
@@ -51,7 +51,7 @@ t_int *simile_tilde_perform(t_int *w) {
 
 void simile_tilde_dsp(t_simile_tilde *x, t_signal **sp) {
   dsp_add(simile_tilde_perform, 6, x, 
-	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void *simile_tilde_new(t_floatarg f) {
diff --git a/externals/ekext/voicing_detector~.c b/externals/ekext/voicing_detector~.c
index 5d91719ed..12839a0db 100644
--- a/externals/ekext/voicing_detector~.c
+++ b/externals/ekext/voicing_detector~.c
@@ -99,7 +99,7 @@ void voicing_detector_tilde_method(t_voicing_detector_tilde *x, t_floatarg f)
 void *voicing_detector_tilde_dsp(t_voicing_detector_tilde *x, t_signal **sp)
 {
   x->x_ctl.c_input = sp[0]->s_vec;
-  dsp_add(voicing_detector_tilde_perform, 3, x, &x->x_ctl, sp[0]->s_n);
+  dsp_add(voicing_detector_tilde_perform, 3, x, &x->x_ctl, (t_int)sp[0]->s_n);
   return (void *)x;
 }
 
diff --git a/externals/ekext/zeroxpos~.c b/externals/ekext/zeroxpos~.c
index f52fb6583..452bd048c 100644
--- a/externals/ekext/zeroxpos~.c
+++ b/externals/ekext/zeroxpos~.c
@@ -157,7 +157,7 @@ void zeroxpos_tilde_mode(t_zeroxpos_tilde *x, t_floatarg fmode)
 void *zeroxpos_tilde_dsp(t_zeroxpos_tilde *x, t_signal **sp) 
 {
   x->x_ctl.c_input = sp[0]->s_vec;
-  dsp_add(zeroxpos_tilde_perform, 3, x, &x->x_ctl, sp[0]->s_n);
+  dsp_add(zeroxpos_tilde_perform, 3, x, &x->x_ctl, (t_int)sp[0]->s_n);
   return (void *)x;
 }
 
diff --git a/externals/ext13/catch13~.c b/externals/ext13/catch13~.c
index afebd2b7f..c71bc5785 100644
--- a/externals/ext13/catch13~.c
+++ b/externals/ext13/catch13~.c
@@ -62,9 +62,9 @@ t_int *sigcatch13_perf8(t_int *w)
     if (x->x_n == sp[0]->s_n)
     {
 	if(sp[0]->s_n&7)
-	    dsp_add(sigcatch13_perform, 3, x->x_vec, sp[0]->s_vec, sp[0]->s_n);
+	    dsp_add(sigcatch13_perform, 3, x->x_vec, sp[0]->s_vec, (t_int)sp[0]->s_n);
 	else
-	    dsp_add(sigcatch13_perf8, 3, x->x_vec, sp[0]->s_vec, sp[0]->s_n);
+	    dsp_add(sigcatch13_perf8, 3, x->x_vec, sp[0]->s_vec, (t_int)sp[0]->s_n);
     }
     else error("sigcatch13 %s: unexpected vector size", x->x_sym->s_name);
 }
diff --git a/externals/ext13/mandelbrot~.c b/externals/ext13/mandelbrot~.c
index 4ccc3e4bc..86a8d3bba 100644
--- a/externals/ext13/mandelbrot~.c
+++ b/externals/ext13/mandelbrot~.c
@@ -101,9 +101,9 @@ t_int *mandelbrot_tilde_perf8(t_int *w)
 void dsp_add_mandelbrot_tilde(t_mandelbrot_tilde *x,t_sample *in1, t_sample *in2, t_sample *out, int n)
 {
     if (n&7)
-    	dsp_add(mandelbrot_tilde_perform, 5, x, in1, in2, out, n);
+    	dsp_add(mandelbrot_tilde_perform, 5, x, in1, in2, out, (t_int)n);
     else	
-    	dsp_add(mandelbrot_tilde_perf8, 5, x, in1, in2, out, n);
+    	dsp_add(mandelbrot_tilde_perf8, 5, x, in1, in2, out, (t_int)n);
 }
 
 void mandelbrot_tilde_dsp(t_mandelbrot_tilde *x, t_signal **sp)
diff --git a/externals/ext13/piperead~.c b/externals/ext13/piperead~.c
index a9c0d4cc3..f1dd4a772 100644
--- a/externals/ext13/piperead~.c
+++ b/externals/ext13/piperead~.c
@@ -116,17 +116,17 @@ static void piperead_tilde_dsp(t_piperead_tilde *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(piperead_tilde_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(piperead_tilde_perform, 5, x, sp[0]->s_vec, 
-		  sp[1]->s_vec,sp[2]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec,sp[2]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(piperead_tilde_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,sp[2]->s_vec,
 		  sp[3]->s_vec,sp[4]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
 }
diff --git a/externals/ext13/pipewrite~.c b/externals/ext13/pipewrite~.c
index da5e25461..5f50f565d 100644
--- a/externals/ext13/pipewrite~.c
+++ b/externals/ext13/pipewrite~.c
@@ -223,18 +223,18 @@ static void pipewrite_tilde_dsp(t_pipewrite_tilde *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(pipewrite_tilde_perform, 3, x, sp[0]->s_vec, 
-		   sp[0]->s_n);
+		   (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(pipewrite_tilde_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(pipewrite_tilde_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,
 		  sp[2]->s_vec,
 		  sp[3]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
 }
diff --git a/externals/ext13/promiscous~.c b/externals/ext13/promiscous~.c
index bf1083631..b8fd87178 100644
--- a/externals/ext13/promiscous~.c
+++ b/externals/ext13/promiscous~.c
@@ -125,7 +125,7 @@ t_int *promiscous_tilde_perform(t_int *w)
 static void promiscous_tilde_dsp(t_promiscous_tilde *x, t_signal **sp)
 {
 	dsp_add(promiscous_tilde_perform, 3, x, sp[0]->s_vec,
-	sp[0]->s_n);
+	(t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/ext13/receive13~.c b/externals/ext13/receive13~.c
index 4ff4e3191..7496655df 100644
--- a/externals/ext13/receive13~.c
+++ b/externals/ext13/receive13~.c
@@ -99,10 +99,10 @@ void sigreceive13_set(t_sigreceive13 *x, t_symbol *s)
     	sigreceive13_set(x, x->x_sym);
 	if(sp[0]->s_n&7)
 	    dsp_add(sigreceive13_perform, 3,
-		    x, sp[0]->s_vec, sp[0]->s_n);
+		    x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 	else
 	    dsp_add(sigreceive13_perf8, 3,
-		    x, sp[0]->s_vec, sp[0]->s_n);
+		    x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     }
 }
 
diff --git a/externals/ext13/scramble~.c b/externals/ext13/scramble~.c
index e7b3d9d3a..c8a34f154 100644
--- a/externals/ext13/scramble~.c
+++ b/externals/ext13/scramble~.c
@@ -460,12 +460,12 @@ static void scramble_tilde_dsp(t_scramble_tilde *x, t_signal **sp)
     switch (x->x_channels) {
        case 1:
           dsp_add(scramble_tilde_perform, 4, x, sp[0]->s_vec,
-          sp[1]->s_vec, sp[0]->s_n);
+          sp[1]->s_vec, (t_int)sp[0]->s_n);
 //          post ("1 channel");
           break;
        case 2:
           dsp_add(scramble_tilde_perform, 6, x, sp[0]->s_vec,
-          sp[1]->s_vec,sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+          sp[1]->s_vec,sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 //          post ("2 channels");
           break;
      }
diff --git a/externals/ext13/scramble~.c.save b/externals/ext13/scramble~.c.save
deleted file mode 100644
index f4957a766..000000000
--- a/externals/ext13/scramble~.c.save
+++ /dev/null
@@ -1,634 +0,0 @@
-#include "m_pd.h"
-#include "ext13.h"
-#include <sys/types.h>
-#include <string.h>
-#include <sys/errno.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-
-
-
-/* ------------------------ scramble_tilde~ ----------------------------- */
-
-static t_class *scramble_tilde_class;
-
-typedef struct _scramble_grain
-{
-    t_float* L;
-    t_float* R;
-    int size;
-    t_float maximum;
-    struct _scramble_grain *next;
-}t_scramble_grain;
-
-typedef struct _scramble_tilde
-{
-     t_object x_obj;
-     int x_n;
-     t_int x_channels;
-     t_float play, analize;
-     t_float dir, current_dir, pitch, actual_pitch, grain_r, autopitch;
-     t_float valsum, valavg;
-     int valsumcount, valsummax;
-     int autofollow, playmode, semitones;
-     t_scramble_grain *firstgrain;
-     t_scramble_grain *workgrain;
-     t_scramble_grain *ring;
-     int grains, newgrains, w_grain, r_grain, n_grain, gotagrain, flush;
-     int r_d, w_d, dist, mindist, lowptr, hiptr, lastlowptr;
-     t_float lowval, hival, prevval, lowborder, normalize;
-     int nsamples;
-     t_outlet *trigger1;
-     t_outlet *trigger2;
-} t_scramble_tilde;
-
-
-/* grain functions*/
-static t_scramble_grain* scramble_tilde_newgrain(){
-     t_scramble_grain* thegrain;
-     thegrain = getbytes( sizeof(t_scramble_grain));
-     thegrain->L = NULL;
-     thegrain->R = NULL;
-     thegrain->size = 0;
-     thegrain->next = NULL;
-     return (thegrain);
-}
-
-
-static t_scramble_grain* scramble_tilde_getgrain(t_scramble_grain* firstgrain, int n){
-     t_scramble_grain* thegrain = firstgrain;
-     while (n--){
-     if (thegrain->next){
-         thegrain = thegrain->next;
-     }else
-         return (NULL);
-     }
-     return (thegrain);
-}
-
-static int scramble_tilde_getsomegrain(t_scramble_grain* firstgrain,int g){
-    t_scramble_grain* thegrain ;
-    int r;
-    do{
-      r =  rand() % g;
-      thegrain = scramble_tilde_getgrain(firstgrain, r);
-    }while (thegrain->size == 0);
-    return (r);
-}
-
-static void scramble_tilde_grainbuf(t_scramble_grain* grain, int c, int n){
-     if (!grain->size)
-        grain->L =  getbytes(n * sizeof(t_float));
-     else
-        grain->L =  resizebytes(grain->L, grain->size * sizeof(t_float), n * sizeof(t_float)); 
-
-     if (c == 2){
-         if (!grain->size)
-             grain->R =  getbytes(n * sizeof(t_float));
-         else
-             grain->R =  resizebytes(grain->R, grain->size * sizeof(t_float), n * sizeof(t_float));
-     }
-     grain->size = n;
-}
-
-static void scramble_tilde_freegrain(t_scramble_grain* grain, int c){
-     if (grain->size){
-        freebytes(grain->L, grain->size * sizeof(t_float));
-        if (c == 2) freebytes(grain->R, grain->size * sizeof(t_float));
-        grain->size = 0;
-        grain->next = NULL;
-     }
-}
-
-
-t_int *scramble_tilde_perform(t_int *w)
-{
-    t_scramble_tilde*  x = (t_scramble_tilde*)(w[1]);
-    int i;
-    int erg=0;
-    int n;
-    t_float val, valL, valR, killval;
-
-    t_float* out[x->x_channels];
-    t_float* in[x->x_channels];
-
-    float n_factor, frac,  a,  b,  c,  d, cminusb;
-    int index;
-    float *fp;
-    t_atom at[2];
-
-    /* anything changed?*/
-    if (x->flush){
-      int i = x->grains;
-      x->flush = 0;
-      x->gotagrain = 0;
-      while (i--)
-        scramble_tilde_grainbuf(scramble_tilde_getgrain(x->firstgrain,i),x->x_channels,0);
-    }
-    
-    if (x->newgrains){
-      int tmp = x->grains;
-      if (x->newgrains > x->grains){
-        x->workgrain = scramble_tilde_getgrain(x->firstgrain,x->grains - 1); /*-1 ???*/
-        tmp = x->newgrains;
-        x->newgrains -= x->grains;
-        x->grains = tmp;
-        while (x->newgrains--){
-           x->workgrain->next = scramble_tilde_newgrain();
-           x->workgrain = x->workgrain->next;
-        }
- //       post ("now %d grains",x->grains);
-      }else{
-        if (x->newgrains < x->grains){
-           t_scramble_grain*  tmpgrain;
-
-           x->grains = x->newgrains;
-           x->workgrain = scramble_tilde_getgrain(x->firstgrain,x->grains - 1);
-
-           /* delete old grains */
-           while (x->workgrain->next){
-             tmpgrain = x->workgrain->next;
-             scramble_tilde_freegrain(x->workgrain,x->x_channels);
-             x->workgrain = tmpgrain;
-           }
-
-           /* reset readpointer if needed*/
-           if (x->r_grain >=  x->grains){
-             x->r_grain = 0;
-             x->grain_r = -1;
-           }
-//           post ("now %d grains",x->grains);
-        }
-      }
-      x->newgrains=0;
-    }
-
-    if ((x->ring->size > x->x_n) || (x->ring->size < x->x_n) ){
-//       post ("scramble~: new size for ringbuffer:%d samples, %d channels, oldsize:%d",x->x_n,x->x_channels,x->ring->size);
-       scramble_tilde_grainbuf(x->ring, x->x_channels ,x->x_n);
-       x->x_n = x->ring->size;
-       x->dist = 0;
-       x->lowptr = x->r_d;
-       x->lastlowptr = -1;
-       x->lowval = x->lowborder;
-    }
-    
-    for (i = 0; i < x->x_channels ;i++)
-       in[i] = (t_float *)(w[2 + i]);
-
-    for (i = 0;i < x->x_channels ;i++)
-       out[i] = (t_float *)(w[2 + x->x_channels + i]);
-
-    n = (int)(w[2 + x->x_channels * 2]);/*number of samples*/
-//    post ("n:%d",n);
-    
-    while (n--){
-    /*read from input*/
-       if (++x->r_d > x->x_n){
-           x->r_d = 0;
-       }
-       valL = *(t_float*)(x->ring->L +  x->r_d) = *in[0]++;
-       if (valL < 0) valL *= -1;
-       if (x->x_channels == 2){
-         valR = *(t_float*)(x->ring->R + x->r_d) = *in[1]++;
-         if (valR < 0) valR *= -1;
-         val =  valL + valR / 2.0;
-         if (valL > x->hival){
-            x->hiptr = x->r_d;
-            x->hival = valL;
-         }
-         if (valR > x->hival){
-            x->hiptr = x->r_d;
-            x->hival = valR;
-         }
-       }else {
-         val = valL;
-          if (valL > x->hival){
-            x->hiptr = x->r_d;
-            x->hival = valL;
-          }
-       }
-
-//       if (val < 0) val *= -1;
-
-       x->valsum += val;
-//       if (x->valsumcount++ > x->mindist * 10){
-       if (x->valsumcount++  && (x->r_d == 0)){
-          x->valavg = x->valsum / x->valsumcount;
-          x->valsumcount = 0;
-          x->valsum = 0;
-          if (x->autofollow && ( x->valavg > 0.003)) {
-            x->lowborder = x->valavg;
-//            post ("lowborder = %f",x->lowborder);
-          }
-       }
-
-       if ((val < x->lowborder) && (x->prevval > x->lowborder)){
-       /* a new low-period */
-         x->dist = -1;
-         x->lowptr =  x->r_d;
-         x->lowval = val;
-//           post ("low");
-       }
-       if ((x->r_d + 1) == x->lastlowptr){
-         /* one round without a point to cut */
-          x->lastlowptr = -1; 
-          x->lowval = x->lowborder;
-          x->hival = 0;
-//          post ("lastlowptr: reset");
-       }
-       
-       if (val < x->lowborder){x->dist++;}
-
-       if (val <= x->lowval) {
-          x->lowptr = x->r_d;
-          x->lowval = val;
-          /*found a point to cut*/
-       }
-
-       if ((val > x->lowborder) && (x->prevval < x->lowborder) && ( x->dist < x->mindist)){
-         /*too short low-period*/
-          x->dist = 0;
-          x->lowptr = x->r_d;
-          x->lowval = x->lowborder;
-//         post ("low too short");
-       }
-       
-       if ((val > x->lowborder) && (x->prevval < x->lowborder) && ( x->dist > x->mindist)){
-       /*found a low-period to cut */
-         if ((x->lastlowptr != -1) ){
-           int grainlen = 0;
-           int i = 0;
-           int wp = 1; /*first and last sample of grain should be 0.0*/
-
-           x->gotagrain = 1;
-           /* how long is the new grain */
-           if (x->lastlowptr > x->lowptr){
-             grainlen = x->x_n - x->lastlowptr + x->lowptr;
-           }else{
-             grainlen = x->lowptr - x->lastlowptr;
-           }
-           
-           if (x->analize){
-             /*find and prepare the grain*/
-             if (++x->w_grain >= x->grains ) x->w_grain = 0;
-             x->workgrain = scramble_tilde_getgrain (x->firstgrain, x->w_grain);
-             scramble_tilde_grainbuf(x->workgrain, x->x_channels, grainlen + 2);
-  
-             *(t_float*)(x->workgrain->L) = 0.0;
-             *(t_float*)(x->workgrain->L + x->workgrain->size -1) = 0.0;
-             if (x->x_channels == 2){
-               *(t_float*)(x->workgrain->R) = 0.0;
-               *(t_float*)(x->workgrain->R + x->workgrain->size -1) = 0.0;
-             }
-             x->workgrain->maximum = x->hival;
-
-             /*notify the world*/
-             SETFLOAT(at, grainlen);
-             SETFLOAT(at+1, x->w_grain + 1);
-             outlet_list(x->trigger1, 0, 2, at);
-
-             /*copy to the grain*/
-             i =  x->lastlowptr;
-             while (grainlen--){
-                if (++i >= x->x_n) i = 0;
-                *(t_float*)(x->workgrain->L + wp ) = *(t_float*)(x->ring->L + i);
-                if (x->x_channels == 2)
-                  *(t_float*)(x->workgrain->R + wp ) = *(t_float*)(x->ring->R + i);
-                wp++;
-             }
-           }/*end if analize*/
-//           post ("copied: w_grain: %d",x->w_grain);
-         }/* end lastlowptr != -1*/
-         x->dist = 0;
-         x->hival = 0;
-         x->lastlowptr = x->lowptr; 
-       }/*end found a low-period to cut */
-
-       x->prevval = val;
-   }/*end while n-- (read from input)*/
-
-
-/*--------------------playback--------------*/
-   n = (int)(w[2 + x->x_channels * 2]);/*number of samples*/
-
-   x->workgrain = scramble_tilde_getgrain (x->firstgrain, x->r_grain);
-   if (x->normalize && x->workgrain) n_factor = x->normalize / x->workgrain->maximum;
-   else  n_factor = 1;
-   
-   while (n--){
-     int wgs;
-     if (x->workgrain) wgs = x->workgrain->size - 2;
-     else wgs = 0;
-     if (( (x->grain_r >=  wgs) || (x->grain_r < 1) || (x->workgrain == NULL) ) && x->play && x->gotagrain){
-        if (x->playmode < 2){
-            x->r_grain = scramble_tilde_getsomegrain(x->firstgrain, x->grains);
-            x->workgrain = scramble_tilde_getgrain (x->firstgrain, x->r_grain);
-        }else{
-           if (x->n_grain == -1){
-             x->play = 0;
-             x->r_grain = 0;
-             x->workgrain = NULL;
-           }else{
-              x->r_grain = x->n_grain;
-              x->workgrain = scramble_tilde_getgrain (x->firstgrain, x->r_grain);
-              x->n_grain = -1;
-              if ((x->r_grain == x->w_grain) || (x->workgrain == NULL)){
-                x->play = 0;
-                x->r_grain = 0;
-                x->workgrain = NULL;
-              }  else if (!x->workgrain->size){
-                x->play = 0;
-                x->r_grain = 0;
-                x->workgrain = NULL;
-              }
-           }
-        }/*end if playmode < 2*/
-
-        if (x->workgrain){
-          if (((rand() % 200) / 100.0  - 1.0 ) < x->dir){
-            x->current_dir = 1;
-            x->grain_r = 1;
-          }
-          else{
-            x->current_dir = -1;
-            x->grain_r = x->workgrain->size -3;
-          }
-
-          if ( ( (x->autopitch >= 1.) && (x->semitones) ) || ( (x->autopitch) && (! x->semitones) ) ){
-            if (x->semitones){
-              int ap = (int)x->autopitch;
-              int rauf = 0;
-              int count ;
-
-              if (rand() % 2 == 1){ rauf = 1;}
-/*              post ("rauf:%d",rauf); */
-
-              x->actual_pitch = x->pitch;
-
-              for (count = (rand() % ap); count >= 0; count--){
-                /*1.05946 = 12te wurzel aus 2 */
-                if (rauf){
-                  x->actual_pitch = x->actual_pitch * 1.05946;
-                }else{
-                  x->actual_pitch = x->actual_pitch / 1.05946;
-                }
-              }
-            }else{
-              if (((rand() % 200) / 100.0  - 1.0 ) > 0){ 
-                 x->actual_pitch = x->pitch + x->pitch * ((rand() % 100 ) / 100.0 * x->autopitch);
-              }else{
-                 x->actual_pitch = x->pitch - x->pitch / ((rand() % 100 ) / 100.0 * x->autopitch);
-              }
-            }/*end if semitones*/
-          } else {
-            x->actual_pitch = x->pitch;
-          }/* end if autopitch*/
-
-/*          post ("x->actual_pitch:%f, x->autopitch:%f",x->actual_pitch,x->autopitch); */
-          
-          if (x->normalize) n_factor = x->normalize / x->workgrain->maximum;
-          else  n_factor = 1;
-
-          SETFLOAT(at, (x->workgrain->size - 2) / x->actual_pitch);
-          SETFLOAT(at+1, x->r_grain + 1);
-          outlet_list(x->trigger2, 0, 2, at);
-
-        }/*end if workgrain !=NULL */
-     }/* end finding a new grain*/
-         
-     if (x->play && x->gotagrain){
-         /*write graincontent to output*/
-         /* 4 point interpolation taken from ../src/d_array.c tabread4~ */
-         index = x->grain_r;
-         if (index < 1)
-           index = 1, frac = 0;
-         else if (index > x->workgrain->size - 3)
-           index = x->workgrain->size - 3, frac = 1;
-         else
-            frac = x->grain_r - index;
-
-         fp = (t_float*)(x->workgrain->L + index);
-         a = fp[-1];
-         b = fp[0];
-         c = fp[1];
-         d = fp[2];
-
-         cminusb = c-b;
-         *out[0]++ = (b + frac * (
-                  cminusb - 0.5f * (frac-1.) * (
-                    (a - d + 3.0f * cminusb) * frac + (b - a - cminusb)
-                  )
-         )) * n_factor;
-
-         if (x->x_channels == 2){
-           fp = (t_float*)(x->workgrain->R + index);
-           a = fp[-1];
-           b = fp[0];
-           c = fp[1];
-           d = fp[2];
-           cminusb = c-b;
-           *out[1]++ = (b + frac * (
-                      cminusb - 0.5f * (frac-1.) * (
-                          (a - d + 3.0f * cminusb) * frac + (b - a - cminusb)
-                      )
-           )) * n_factor;
-         }
-         x->grain_r += x->current_dir * x->actual_pitch;
-     }else/* if play*/{
-        *out[0]++ = 0;
-        if (x->x_channels == 2)
-          *out[1]++ = 0;
-     }/*end if play */
-   }/*end while n-- */
-   return (w + x->x_channels * 2 + 3);
-}
-
-static void scramble_tilde_dsp(t_scramble_tilde *x, t_signal **sp)
-{
-    switch (x->x_channels) {
-       case 1:
-          dsp_add(scramble_tilde_perform, 4, x, sp[0]->s_vec,
-          sp[1]->s_vec, sp[0]->s_n);
-//          post ("1 channel");
-          break;
-       case 2:
-          dsp_add(scramble_tilde_perform, 6, x, sp[0]->s_vec,
-          sp[1]->s_vec,sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
-//          post ("2 channels");
-          break;
-     }
-}
-
-
-static void scramble_tilde_free(t_scramble_tilde *x){
-  int n = x->grains - 1;
-  while (n--){
-    scramble_tilde_freegrain (scramble_tilde_getgrain(x->firstgrain,n),x->x_channels);
-    scramble_tilde_freegrain (x->ring,x->x_channels);
-  }
-}
-
-
-static void *scramble_tilde_new(t_floatarg c,t_floatarg b)
-{
-    t_scramble_tilde *x = (t_scramble_tilde *)pd_new(scramble_tilde_class);
-    int i;
-//    x->bufL = NULL;
-//    x->bufR = NULL;
-    x->x_channels = (t_int)c;
-    if (x->x_channels > 2) {
-       x->x_channels = 2;
-       post ("maximum: 2 channels");
-    }
-    if (x->x_channels < 1) x->x_channels = 1;
-
-    outlet_new(&x->x_obj, gensym("signal"));
-    if (x->x_channels == 2){
-      inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
-      outlet_new(&x->x_obj, gensym("signal"));
-    }
-
-    x->trigger1 = outlet_new(&x->x_obj, &s_float);
-    x->trigger2 = outlet_new(&x->x_obj, &s_float);
-    x->dir = 1;
-    x->pitch = 1;
-    x->actual_pitch = 1;
-    x->autopitch = 0;
-    x->semitones = 1;
-    x->autofollow = 1;
-    x->playmode = 1;
-    x->normalize = 0;
-    x->analize = 1;
-    x->flush = 0;
-    x->x_n = (int)b;
-    if (x->x_n >882000 ){x->x_n = 882000;}
-    if (x->x_n < 88200 ){x->x_n = 88200;}
-/*    x->rR = x->rL = x->wR = x->wL = NULL;*/
-    x->lowptr = 0;
-    x->lastlowptr = x->r_d = x->grain_r = -1;
-    x->mindist = 1024;
-    x->lowborder = 0.35;
-//    scramble_tilde_tempbuf(x,x->x_n);
-    x->ring = scramble_tilde_newgrain();
-    scramble_tilde_grainbuf(x->ring,x->x_channels,x->x_n);
-
-    x->valsum = x->valavg = x->valsumcount = 0;
-    x->valsummax = 1024;
-
-    /* the grains:*/
-    x->grains = 50;
-    x->r_grain = 0;
-    x->w_grain = x->n_grain = -1;
-    x->firstgrain = x->workgrain = scramble_tilde_newgrain();
-    for (i = 1;i < x->grains;i++){
-        x->workgrain->next = scramble_tilde_newgrain();
-        x->workgrain = x->workgrain->next;
-    }
-    return (x);
-}
-
-void *scramble_tilde_float(t_scramble_tilde* x, t_float n){
-  x->play = n;
-  if (x->playmode == 2) x->n_grain = (int)n - 1;
-}
-
-void *scramble_tilde_buffer(t_scramble_tilde* x, t_float n){
-  if (n > 64) x->x_n = (int)n;
-//  post ("buffersize now:%d",x->x_n);
-}
-
-void *scramble_tilde_threshold(t_scramble_tilde* x, t_float t){
-    if (t >0) {
-      x->lowborder = t;
-      x->autofollow = 0;
-    }else{
-      post ("threshold must be a positive value (0.1 - 0.8 makes sense)");
-    }
-    
-}
-
-void *scramble_tilde_grains(t_scramble_tilde* x, t_float g){
-    if ((g > 1) && (g < 2048) ) x->newgrains = (int)g;
-    else post ("scramble~: minimum # of grains must be 2 an maximum # is 2048");
-}
-
-void scramble_tilde_mindist(t_scramble_tilde* x, t_float t){
-    if ((t > 0)  && (t < x->x_n)) x->mindist = (int)t;
-    else post ("scramble~: minimum distance must be positive value lower than buffersize");
-}
-
-void scramble_tilde_direction(t_scramble_tilde* x, t_float d){
-     if (d > 1) d = 1;
-     if (d < -1) d = -1;
-     x->dir = d;
-}
-
-void scramble_tilde_autofollow(t_scramble_tilde* x){
-     x->autofollow = 1;
-}
-
-void scramble_tilde_pitch(t_scramble_tilde* x, t_float p){
-     if (p > 0) x->pitch = p;
-     else post ("scramble~: pitch must be  > 0");
-}
-
-void scramble_tilde_autopitch(t_scramble_tilde* x, t_float p){
-     x->autopitch = p;
-}
-
-void scramble_tilde_semitones(t_scramble_tilde* x, t_float p){
-     x->semitones = (int)p;
-}
-
-
-void scramble_tilde_normalize(t_scramble_tilde* x, t_float n){
-     x->normalize = n;
-}
-
-void scramble_tilde_analize(t_scramble_tilde* x, t_float f){
-     x->analize = f;
-}
-
-void scramble_tilde_flush(t_scramble_tilde* x){
-    x->flush = 1;
-}
-
-void scramble_tilde_playmode(t_scramble_tilde* x, t_float p){
-    x->playmode = (int)p;
-    if (x->playmode < 0) x->playmode = 0;
-    if (x->playmode < 1) x->playmode = 2;
-    switch (x->playmode){
-      case 0: post ("scramble~: playmode off");
-              break;
-      case 1: post ("scramble~: active playmode");
-              break;
-      case 2: post ("scramble~: passive playmode");
-              break;
-      default: post ("scramble~: invalid playmode");        
-    }
-}
-
-
-void scramble_tilde_setup(void)
-{
-    scramble_tilde_class = class_new(gensym("scramble~"), (t_newmethod) scramble_tilde_new, 0,
-    	sizeof(t_scramble_tilde), 0, A_DEFFLOAT,A_DEFFLOAT, 0);
-    class_addfloat(scramble_tilde_class,scramble_tilde_float);
-    class_addmethod(scramble_tilde_class, nullfn, gensym("signal"), 0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_dsp, gensym("dsp"), 0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_buffer, gensym("buffer"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_threshold, gensym("threshold"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_grains, gensym("grains"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_mindist, gensym("min_length"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_direction, gensym("direction"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_autofollow, gensym("autofollow"),0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_pitch, gensym("pitch"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_autopitch, gensym("autopitch"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_semitones, gensym("semitones"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_flush, gensym("flush"), 0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_normalize, gensym("normalize"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_analize, gensym("analize"), A_DEFFLOAT,0);
-    class_addmethod(scramble_tilde_class, (t_method) scramble_tilde_playmode, gensym("playmode"), A_DEFFLOAT,0);
-}
diff --git a/externals/ext13/send13~.c b/externals/ext13/send13~.c
index 78bcc6e8b..14a143474 100644
--- a/externals/ext13/send13~.c
+++ b/externals/ext13/send13~.c
@@ -52,7 +52,7 @@
  void sigsend13_dsp(t_sigsend13 *x, t_signal **sp)
 {
     if (x->x_n == sp[0]->s_n)
-    	dsp_add(sigsend13_perform, 3, sp[0]->s_vec, x->x_vec, sp[0]->s_n);
+    	dsp_add(sigsend13_perform, 3, sp[0]->s_vec, x->x_vec, (t_int)sp[0]->s_n);
     else error("sigsend13 %s: unexpected vector size", x->x_sym->s_name);
 }
 
diff --git a/externals/ext13/sfread.c b/externals/ext13/sfread.c
index d9c796373..9d990a47b 100644
--- a/externals/ext13/sfread.c
+++ b/externals/ext13/sfread.c
@@ -169,17 +169,17 @@ static void sfread_dsp(t_sfread *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(sfread_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(sfread_perform, 5, x, sp[0]->s_vec, 
-		  sp[1]->s_vec,sp[2]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec,sp[2]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(sfread_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,sp[2]->s_vec,
 		  sp[3]->s_vec,sp[4]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
 }
@@ -304,18 +304,18 @@ static void sfwrite_dsp(t_sfwrite *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(sfwrite_perform, 3, x, sp[0]->s_vec, 
-		   sp[0]->s_n);
+		   (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(sfwrite_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(sfwrite_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,
 		  sp[2]->s_vec,
 		  sp[3]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
      post("sfwrite: dsp end"); 
diff --git a/externals/ext13/sfwrite13~.c b/externals/ext13/sfwrite13~.c
index 0e2e7124e..ecf4532dd 100644
--- a/externals/ext13/sfwrite13~.c
+++ b/externals/ext13/sfwrite13~.c
@@ -238,18 +238,18 @@ static void sfwrite13_dsp(t_sfwrite13 *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(sfwrite13_perform, 3, x, sp[0]->s_vec, 
-		   sp[0]->s_n);
+		   (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(sfwrite13_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(sfwrite13_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,
 		  sp[2]->s_vec,
 		  sp[3]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
 }
diff --git a/externals/ext13/streamin13~.c b/externals/ext13/streamin13~.c
index 65f633940..32ac03b20 100644
--- a/externals/ext13/streamin13~.c
+++ b/externals/ext13/streamin13~.c
@@ -290,7 +290,7 @@ static void streamin13_dsp(t_streamin13 *x, t_signal **sp)
   myvec[1] = (t_int*)sp[0]->s_n;
   for (i=0;i < x->x_n;i++)
     myvec[2 + i] = (t_int*)sp[i]->s_vec;
-  dsp_addv(streamin13_perform, x->x_n + 3, (t_int*)myvec);
+  dsp_addv(streamin13_perform, (t_int)(x->x_n + 3), (t_int*)myvec);
   freebytes(myvec,sizeof(t_int)*(x->x_n + 3));
 
 }
diff --git a/externals/ext13/streamout13~.c b/externals/ext13/streamout13~.c
index 7e68a4acf..714c1b0e3 100644
--- a/externals/ext13/streamout13~.c
+++ b/externals/ext13/streamout13~.c
@@ -278,7 +278,7 @@ static t_int *streamout13_perform(t_int *w)
 static void streamout13_dsp(t_streamout13 *x, t_signal **sp)
 {
 /*
-    dsp_add(streamout13_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(streamout13_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 */
   int i;
   t_int** myvec = getbytes(sizeof(t_int)*(x->x_n + 3));
@@ -287,7 +287,7 @@ static void streamout13_dsp(t_streamout13 *x, t_signal **sp)
   myvec[1] = (t_int*)sp[0]->s_n;
   for (i=0;i < x->x_n/*+1*/;i++)
     myvec[2 + i] = (t_int*)sp[i]->s_vec;
-  dsp_addv(streamout13_perform, x->x_n + 3, (t_int*)myvec);
+  dsp_addv(streamout13_perform, (t_int)(x->x_n + 3), (t_int*)myvec);
   freebytes(myvec,sizeof(t_int)*(x->x_n + 3));
 }
 
diff --git a/externals/ext13/throw13~.c b/externals/ext13/throw13~.c
index dc9d439ef..d0252c75a 100644
--- a/externals/ext13/throw13~.c
+++ b/externals/ext13/throw13~.c
@@ -75,7 +75,7 @@
     {
     	sigthrow13_set(x, x->x_sym);
     	dsp_add(sigthrow13_perform, 3,
-    	    x, sp[0]->s_vec, sp[0]->s_n);
+    	    x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     }
 }
 
diff --git a/externals/fftw/rfftw~.c b/externals/fftw/rfftw~.c
index 4678c8c79..f9142a331 100644
--- a/externals/fftw/rfftw~.c
+++ b/externals/fftw/rfftw~.c
@@ -64,7 +64,7 @@ static void sigrfftw_dsp(t_sigrfftw *x, t_signal **sp)
                                               NULL,
                                               in, out1, out2,
                                               FFTW_ESTIMATE | FFTW_PRESERVE_INPUT);
-      dsp_add(sigrfftw_perform,3,&x->plan,out2+1,n2-1);
+      dsp_add(sigrfftw_perform,3,&x->plan,out2+1,(t_int)(n2-1));
     }
 
   dsp_add_zero(out1 + n2, n2);
diff --git a/externals/fftw/rifftw~.c b/externals/fftw/rifftw~.c
index a0d85ac50..f563c535a 100644
--- a/externals/fftw/rifftw~.c
+++ b/externals/fftw/rifftw~.c
@@ -65,7 +65,7 @@ static void sigrifftw_dsp(t_sigrifftw *x, t_signal **sp)
                                               in1, in2, out, 
                                               FFTW_ESTIMATE | FFTW_PRESERVE_INPUT);
       dsp_add_zero(in1+ n/2, n/2);
-      dsp_add(sigrifftw_perform,3,&x->plan,in2,n2);
+      dsp_add(sigrifftw_perform,3,&x->plan,in2,(t_int)n2);
     }
 }
 
diff --git a/externals/fluid~/fluid~.c b/externals/fluid~/fluid~.c
index 3a81a7d1b..8aca760cf 100644
--- a/externals/fluid~/fluid~.c
+++ b/externals/fluid~/fluid~.c
@@ -28,7 +28,7 @@ t_int *fluid_tilde_perform(t_int *w)
 static void fluid_tilde_dsp(t_fluid_tilde *x, t_signal **sp)
 {
     dsp_add(fluid_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void fluid_tilde_free(t_fluid_tilde *x)
diff --git a/externals/footils/rx7/pd/rx7~.cpp b/externals/footils/rx7/pd/rx7~.cpp
index e7d573aa8..738a5f90b 100644
--- a/externals/footils/rx7/pd/rx7~.cpp
+++ b/externals/footils/rx7/pd/rx7~.cpp
@@ -226,7 +226,7 @@ static t_int *rx7_perform(t_int *w)
 
 static void rx7_dsp(t_rx7 *x, t_signal **sp)
 {
-	dsp_add(rx7_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+	dsp_add(rx7_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 extern "C" void rx7_tilde_setup(void)
diff --git a/externals/freeverb~/freeverb~.c b/externals/freeverb~/freeverb~.c
index 237ad7153..c9fc331d8 100644
--- a/externals/freeverb~/freeverb~.c
+++ b/externals/freeverb~/freeverb~.c
@@ -527,9 +527,9 @@ static void dsp_add_freeverb(t_freeverb *x, t_sample *in1, t_sample *in2,
 							 t_sample *out1, t_sample *out2, int n)
 {
 	if(n & 7)	// check whether block size is multiple of 8
-		dsp_add(freeverb_perform, 6, x, in1, in2, out1, out2, n);
+		dsp_add(freeverb_perform, 6, x, in1, in2, out1, out2, (t_int)n);
 	else
-		dsp_add(freeverb_perf8, 6, x, in1, in2, out1, out2, n);
+		dsp_add(freeverb_perf8, 6, x, in1, in2, out1, out2, (t_int)n);
 }
 
 void freeverb_dsp(t_freeverb *x, t_signal **sp)
diff --git a/externals/ggee/control/inv.c b/externals/ggee/control/inv.c
index de3d1c6c3..f25102464 100644
--- a/externals/ggee/control/inv.c
+++ b/externals/ggee/control/inv.c
@@ -30,7 +30,7 @@ static t_int *inv_perform(t_int *w)    /* not static; also used in d_fft.c */
 
 static void inv_dsp(t_inv *x, t_signal **sp)
 {
-    dsp_add(inv_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(inv_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void inv_tilde_setup(void)
diff --git a/externals/ggee/experimental/fofsynth~.c b/externals/ggee/experimental/fofsynth~.c
index 637f06194..7294578e6 100644
--- a/externals/ggee/experimental/fofsynth~.c
+++ b/externals/ggee/experimental/fofsynth~.c
@@ -277,7 +277,7 @@ static void fofsynth_dsp(t_fofsynth *x, t_signal **sp)
      }
                
      dsp_add(fofsynth_perform, 4, x,
-	     sp[0]->s_vec,sp[1]->s_vec, sp[0]->s_n);
+	     sp[0]->s_vec,sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/ggee/experimental/pvocfreq.c b/externals/ggee/experimental/pvocfreq.c
index d1f4b189f..506440543 100644
--- a/externals/ggee/experimental/pvocfreq.c
+++ b/externals/ggee/experimental/pvocfreq.c
@@ -85,7 +85,7 @@ static t_int *shuffle_perform(t_int *w)
 static void shuffle_dsp(t_shuffle *x, t_signal **sp)
 {
 	  dsp_add(shuffle_perform, 5, x, sp[0]->s_vec, 
-		  sp[1]->s_vec,sp[2]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec,sp[2]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/ggee/experimental/stk.cpp b/externals/ggee/experimental/stk.cpp
index c69f93a66..a1fb9adb4 100644
--- a/externals/ggee/experimental/stk.cpp
+++ b/externals/ggee/experimental/stk.cpp
@@ -105,7 +105,7 @@ static t_int *stk_perform(t_int *w)
 
 static void stk_dsp(t_stk *x, t_signal **sp)
 {
-     dsp_add(stk_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+     dsp_add(stk_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/ggee/experimental/tabwrite4~.c b/externals/ggee/experimental/tabwrite4~.c
index 87e1f2cfa..5edab05a0 100644
--- a/externals/ggee/experimental/tabwrite4~.c
+++ b/externals/ggee/experimental/tabwrite4~.c
@@ -156,7 +156,7 @@ void tabwrite4_tilde_set(t_tabwrite4_tilde *x, t_symbol *s)
 static void tabwrite4_tilde_dsp(t_tabwrite4_tilde *x, t_signal **sp)
 {
     tabwrite4_tilde_set(x, x->x_arrayname);
-    dsp_add(tabwrite4_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(tabwrite4_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void tabwrite4_tilde_bang(t_tabwrite4_tilde *x)
diff --git a/externals/ggee/filters/moog~.c b/externals/ggee/filters/moog~.c
index 5719fcc63..3a95f6666 100644
--- a/externals/ggee/filters/moog~.c
+++ b/externals/ggee/filters/moog~.c
@@ -161,9 +161,9 @@ t_int *moog_perf8(t_int *w)
 void dsp_add_moog(t_moog *x, t_sample *in1, t_sample *in2, t_sample *in3, t_sample *out, int n)
 {
     if (n&7)
-    	dsp_add(moog_perform, 6,(t_int)x, in1,in2,in3, out, n);
+    	dsp_add(moog_perform, 6,(t_int)x, in1,in2,in3, out, (t_int)n);
     else	
-    	dsp_add(moog_perf8, 6,(t_int) x, in1, in2, in3, out, n);
+    	dsp_add(moog_perf8, 6,(t_int) x, in1, in2, in3, out, (t_int)n);
 }
 
 static void moog_dsp(t_moog *x, t_signal **sp)
diff --git a/externals/ggee/signal/atan2~.c b/externals/ggee/signal/atan2~.c
index 63ee0d00e..8211437d1 100644
--- a/externals/ggee/signal/atan2~.c
+++ b/externals/ggee/signal/atan2~.c
@@ -67,9 +67,9 @@ t_int *atan2_perf8(t_int *w)
 void dsp_add_atan2(t_sample *in1, t_sample *in2, t_sample *out, int n)
 {
     if (n&7)
-    	dsp_add(atan2_perform, 4, in1, in2, out, n);
+    	dsp_add(atan2_perform, 4, in1, in2, out, (t_int)n);
     else	
-    	dsp_add(atan2_perf8, 4, in1, in2, out, n);
+    	dsp_add(atan2_perf8, 4, in1, in2, out, (t_int)n);
 }
 
 static void atan2_dsp(t_atan2 *x, t_signal **sp)
diff --git a/externals/ggee/signal/mixer~.c b/externals/ggee/signal/mixer~.c
index 90c1d278c..5b395500c 100644
--- a/externals/ggee/signal/mixer~.c
+++ b/externals/ggee/signal/mixer~.c
@@ -91,7 +91,7 @@ static void mixer_dsp(t_mixer *x, t_signal **sp)
   for (i=0;i < x->x_n+1;i++)
     myvec[2 + i] = (t_int*)sp[i]->s_vec;
 
-  dsp_addv(mixer_perform, x->x_n + 3, (t_int*)myvec);
+  dsp_addv(mixer_perform, (t_int)(x->x_n + 3), (t_int*)myvec);
   freebytes(myvec,sizeof(t_int)*(x->x_n + 3));
 }
 
diff --git a/externals/ggee/signal/sfwrite~.c b/externals/ggee/signal/sfwrite~.c
index 71ef52de4..1209572c5 100644
--- a/externals/ggee/signal/sfwrite~.c
+++ b/externals/ggee/signal/sfwrite~.c
@@ -217,18 +217,18 @@ static void sfwrite_dsp(t_sfwrite *x, t_signal **sp)
      switch (x->x_channels) {
      case 1:
 	  dsp_add(sfwrite_perform, 3, x, sp[0]->s_vec, 
-		   sp[0]->s_n);
+		   (t_int)sp[0]->s_n);
 	  break;
      case 2:
 	  dsp_add(sfwrite_perform, 4, x, sp[0]->s_vec, 
-		  sp[1]->s_vec, sp[0]->s_n);
+		  sp[1]->s_vec, (t_int)sp[0]->s_n);
 	  break;
      case 4:
 	  dsp_add(sfwrite_perform, 6, x, sp[0]->s_vec, 
 		  sp[1]->s_vec,
 		  sp[2]->s_vec,
 		  sp[3]->s_vec,
-		  sp[0]->s_n);
+		  (t_int)sp[0]->s_n);
 	  break;
      }
 }
diff --git a/externals/ggee/signal/streamin~.c b/externals/ggee/signal/streamin~.c
index 646670afd..93306ab51 100644
--- a/externals/ggee/signal/streamin~.c
+++ b/externals/ggee/signal/streamin~.c
@@ -355,7 +355,7 @@ static t_int *streamin_perform(t_int *w)
 
 static void streamin_dsp(t_streamin *x, t_signal **sp)
 {
-    dsp_add(streamin_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(streamin_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/ggee/signal/streamout~.c b/externals/ggee/signal/streamout~.c
index 34233b192..d8e9e77f1 100644
--- a/externals/ggee/signal/streamout~.c
+++ b/externals/ggee/signal/streamout~.c
@@ -252,16 +252,16 @@ static void streamout_dsp(t_streamout *x, t_signal **sp)
 {
   switch (x->x_tag.channels) {
   case 1:
-    dsp_add(streamout_perform, 3, x,sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(streamout_perform, 3, x,sp[0]->s_vec, (t_int)sp[0]->s_n);
     post("one channel mode");
     break;
   case 2:
-    dsp_add(streamout_perform, 4, x,sp[0]->s_vec, sp[1]->s_vec,sp[0]->s_n);
+    dsp_add(streamout_perform, 4, x,sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
     post("two channel mode");
     break;
   case 4:
     dsp_add(streamout_perform, 6, x,sp[0]->s_vec, sp[1]->s_vec,
-	    sp[2]->s_vec,sp[3]->s_vec,sp[0]->s_n);
+	    sp[2]->s_vec,sp[3]->s_vec, (t_int)sp[0]->s_n);
     post("four channel mode");
     break;
   default:
diff --git a/externals/grh/adaptive/src/lms2~.c b/externals/grh/adaptive/src/lms2~.c
index 1946d53c2..4d4c68453 100644
--- a/externals/grh/adaptive/src/lms2~.c
+++ b/externals/grh/adaptive/src/lms2~.c
@@ -226,7 +226,7 @@ static void lms2_tilde_dsp(t_lms2_tilde *x, t_signal **sp)
   }
   
   dsp_add(lms2_tilde_perform, 6, sp[0]->s_vec, sp[1]->s_vec, 
-          sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n, x);
+          sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void lms2_tilde_helper(void)
diff --git a/externals/grh/adaptive/src/lms~.c b/externals/grh/adaptive/src/lms~.c
index e8bcddfb5..593fa5956 100644
--- a/externals/grh/adaptive/src/lms~.c
+++ b/externals/grh/adaptive/src/lms~.c
@@ -201,7 +201,7 @@ static void lms_tilde_dsp(t_lms_tilde *x, t_signal **sp)
   }
 
   dsp_add(lms_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, 
-	  sp[2]->s_vec, sp[0]->s_n);
+	  sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void lms_tilde_helper(void)
diff --git a/externals/grh/adaptive/src/nlms2~.c b/externals/grh/adaptive/src/nlms2~.c
index 847f907b6..c5006dbca 100644
--- a/externals/grh/adaptive/src/nlms2~.c
+++ b/externals/grh/adaptive/src/nlms2~.c
@@ -249,7 +249,7 @@ static void nlms2_tilde_dsp(t_nlms2_tilde *x, t_signal **sp)
   }
 
   dsp_add(nlms2_tilde_perform, 6, sp[0]->s_vec, sp[1]->s_vec, 
-          sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n, x);
+          sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void nlms2_tilde_helper(void)
diff --git a/externals/grh/adaptive/src/nlms3~.c b/externals/grh/adaptive/src/nlms3~.c
index 162f65ab5..99175c761 100644
--- a/externals/grh/adaptive/src/nlms3~.c
+++ b/externals/grh/adaptive/src/nlms3~.c
@@ -303,7 +303,7 @@ static void nlms3_tilde_dsp(t_nlms3_tilde *x, t_signal **sp)
 
   dsp_add(nlms3_tilde_perform, 8, sp[0]->s_vec, sp[1]->s_vec, 
           sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, 
-          sp[5]->s_vec, sp[0]->s_n, x);
+          sp[5]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void nlms3_tilde_helper(void)
diff --git a/externals/grh/adaptive/src/nlms~.c b/externals/grh/adaptive/src/nlms~.c
index 0d4f95da4..631d1df43 100644
--- a/externals/grh/adaptive/src/nlms~.c
+++ b/externals/grh/adaptive/src/nlms~.c
@@ -225,7 +225,7 @@ static void nlms_tilde_dsp(t_nlms_tilde *x, t_signal **sp)
   }
 
   dsp_add(nlms_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, 
-	  sp[2]->s_vec, sp[0]->s_n);
+	  sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void nlms_tilde_helper(void)
diff --git a/externals/grh/pix_linNN/pix_linNN.cpp b/externals/grh/pix_linNN/pix_linNN.cpp
index bc68398e6..3c0436157 100644
--- a/externals/grh/pix_linNN/pix_linNN.cpp
+++ b/externals/grh/pix_linNN/pix_linNN.cpp
@@ -213,7 +213,7 @@ t_int* pix_linNN::perform(t_int* w)
  */
 void pix_linNN::dspMess(void *data, t_signal** sp)
 {
-  dsp_add(perform, 4, data, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(perform, 4, data, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 //----------------------------------------------------------
diff --git a/externals/grh/pix_recNN/pix_recNN.cpp b/externals/grh/pix_recNN/pix_recNN.cpp
index e816135b2..3b8787b21 100644
--- a/externals/grh/pix_recNN/pix_recNN.cpp
+++ b/externals/grh/pix_recNN/pix_recNN.cpp
@@ -264,7 +264,7 @@ t_int* pix_recNN::perform(t_int* w)
  */
 void pix_recNN::dspMess(void *data, t_signal** sp)
 {
-  dsp_add(perform, 4, data, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(perform, 4, data, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 //----------------------------------------------------------
diff --git a/externals/iem/iem_adaptfilt/src/NLMSCC~.c b/externals/iem/iem_adaptfilt/src/NLMSCC~.c
index 5824e1fb9..0b43ac2f3 100644
--- a/externals/iem/iem_adaptfilt/src/NLMSCC~.c
+++ b/externals/iem/iem_adaptfilt/src/NLMSCC~.c
@@ -288,9 +288,9 @@ static void NLMSCC_tilde_dsp(t_NLMSCC_tilde *x, t_signal **sp)
     x->x_wmax_array_mem_beg = NLMSCC_tilde_check_array(x->x_wmax_array_sym_name, x->x_n_order);
 
     if(!(x->x_w_array_mem_beg && x->x_wmin_array_mem_beg && x->x_wmax_array_mem_beg))
-        dsp_add(NLMSCC_tilde_perform_zero, 2, x, n);
+        dsp_add(NLMSCC_tilde_perform_zero, 2, x, (t_int)n);
     else
-        dsp_add(NLMSCC_tilde_perform, 2, x, n);
+        dsp_add(NLMSCC_tilde_perform, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c b/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c
index b0f300e67..c3246fe56 100644
--- a/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c
+++ b/externals/iem/iem_adaptfilt/src/NLMSerr_in~.c
@@ -200,9 +200,9 @@ static void NLMSerr_in_tilde_dsp(t_NLMSerr_in_tilde *x, t_signal **sp)
     x->x_w_array_mem_beg = NLMSerr_in_tilde_check_array(x->x_w_array_sym_name, x->x_n_order);
 
     if(!x->x_w_array_mem_beg)
-        dsp_add(NLMSerr_in_tilde_perform_zero, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+        dsp_add(NLMSerr_in_tilde_perform_zero, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
     else
-        dsp_add(NLMSerr_in_tilde_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+        dsp_add(NLMSerr_in_tilde_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/iem/iem_adaptfilt/src/NLMS~.c b/externals/iem/iem_adaptfilt/src/NLMS~.c
index ee225baa1..e2e2cba2a 100644
--- a/externals/iem/iem_adaptfilt/src/NLMS~.c
+++ b/externals/iem/iem_adaptfilt/src/NLMS~.c
@@ -246,9 +246,9 @@ static void NLMS_tilde_dsp(t_NLMS_tilde *x, t_signal **sp)
     x->x_w_array_mem_beg = NLMS_tilde_check_array(x->x_w_array_sym_name, x->x_n_order);
 
     if(!x->x_w_array_mem_beg)
-        dsp_add(NLMS_tilde_perform_zero, 2, x, n);
+        dsp_add(NLMS_tilde_perform_zero, 2, x, (t_int)n);
     else
-        dsp_add(NLMS_tilde_perform, 2, x, n);
+        dsp_add(NLMS_tilde_perform, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c b/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c
index 23a00d8d4..49f2aa954 100644
--- a/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c
+++ b/externals/iem/iem_adaptfilt/src/n_CLNLMS~.c
@@ -376,9 +376,9 @@ static void n_CLNLMS_tilde_dsp(t_n_CLNLMS_tilde *x, t_signal **sp)
   }
   
   if(!ok_w)
-    dsp_add(n_CLNLMS_tilde_perform_zero, 2, x, n);
+    dsp_add(n_CLNLMS_tilde_perform_zero, 2, x, (t_int)n);
   else
-    dsp_add(n_CLNLMS_tilde_perform, 2, x, n);
+    dsp_add(n_CLNLMS_tilde_perform, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_adaptfilt/src/n_CNLMS~.c b/externals/iem/iem_adaptfilt/src/n_CNLMS~.c
index 1b636fc61..216585dca 100644
--- a/externals/iem/iem_adaptfilt/src/n_CNLMS~.c
+++ b/externals/iem/iem_adaptfilt/src/n_CNLMS~.c
@@ -365,9 +365,9 @@ static void n_CNLMS_tilde_dsp(t_n_CNLMS_tilde *x, t_signal **sp)
   }
   
   if(!ok_w)
-    dsp_add(n_CNLMS_tilde_perform_zero, 2, x, n);
+    dsp_add(n_CNLMS_tilde_perform_zero, 2, x, (t_int)n);
   else
-    dsp_add(n_CNLMS_tilde_perform, 2, x, n);
+    dsp_add(n_CNLMS_tilde_perform, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_delay/src/block_delay~.c b/externals/iem/iem_delay/src/block_delay~.c
index 0bec230db..77797a5b2 100644
--- a/externals/iem/iem_delay/src/block_delay~.c
+++ b/externals/iem/iem_delay/src/block_delay~.c
@@ -92,9 +92,9 @@ static void block_delay_tilde_dsp(t_block_delay_tilde *x, t_signal **sp)
 		x->x_begmem = (t_float *)resizebytes(x->x_begmem, x->x_blocksize*sizeof(t_float), n*sizeof(t_float));
 	x->x_blocksize = n;
 	if(n&7)
-		dsp_add(block_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+		dsp_add(block_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 	else
-		dsp_add(block_delay_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+		dsp_add(block_delay_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *block_delay_tilde_new(void)
diff --git a/externals/iem/iem_delay/src/n_delay1p_line~.c b/externals/iem/iem_delay/src/n_delay1p_line~.c
index 35516d2f6..cbc32c489 100644
--- a/externals/iem/iem_delay/src/n_delay1p_line~.c
+++ b/externals/iem/iem_delay/src/n_delay1p_line~.c
@@ -359,9 +359,9 @@ static void n_delay1p_line_tilde_dsp(t_n_delay1p_line_tilde *x, t_signal **sp)
 	for(i=0; i<nd; i++)
 		x->x_io[i] = sp[i]->s_vec;
 	if(n&7)
-		dsp_add(n_delay1p_line_tilde_perform, 2, x, n);
+		dsp_add(n_delay1p_line_tilde_perform, 2, x, (t_int)n);
 	else
-		dsp_add(n_delay1p_line_tilde_perf8, 2, x, n);
+		dsp_add(n_delay1p_line_tilde_perf8, 2, x, (t_int)n);
 }
 
 static void *n_delay1p_line_tilde_new(t_floatarg fout, t_floatarg delay_ms, t_floatarg interpol_ms)
diff --git a/externals/iem/iem_delay/src/n_delay2p_line~.c b/externals/iem/iem_delay/src/n_delay2p_line~.c
index 5a91e2abb..fb6137ea3 100644
--- a/externals/iem/iem_delay/src/n_delay2p_line~.c
+++ b/externals/iem/iem_delay/src/n_delay2p_line~.c
@@ -392,9 +392,9 @@ static void n_delay2p_line_tilde_dsp(t_n_delay2p_line_tilde *x, t_signal **sp)
 	for(i=0; i<nd; i++)
 		x->x_io[i] = sp[i]->s_vec;
 	if(n&7)
-		dsp_add(n_delay2p_line_tilde_perform, 2, x, n);
+		dsp_add(n_delay2p_line_tilde_perform, 2, x, (t_int)n);
 	else
-		dsp_add(n_delay2p_line_tilde_perf8, 2, x, n);
+		dsp_add(n_delay2p_line_tilde_perf8, 2, x, (t_int)n);
 }
 
 static void *n_delay2p_line_tilde_new(t_floatarg fout, t_floatarg delay_ms, t_floatarg interpol_ms)
diff --git a/externals/iem/iem_delay/src/nz~.c b/externals/iem/iem_delay/src/nz~.c
index 6318dbfc0..34b880fa1 100644
--- a/externals/iem/iem_delay/src/nz~.c
+++ b/externals/iem/iem_delay/src/nz~.c
@@ -191,9 +191,9 @@ static void nz_tilde_dsp(t_nz_tilde *x, t_signal **sp)
 	for(i=0; i<num_dels; i++)
 		x->x_io[i] = sp[i]->s_vec;
 	if(n&7)
-		dsp_add(nz_tilde_perform, 2, x, n);
+		dsp_add(nz_tilde_perform, 2, x, (t_int)n);
 	else
-		dsp_add(nz_tilde_perf8, 2, x, n);
+		dsp_add(nz_tilde_perf8, 2, x, (t_int)n);
 }
 
 static void *nz_tilde_new(t_floatarg n_delays, t_floatarg max_delay_samples)
diff --git a/externals/iem/iem_matrix/src/matrix_bundle_line8~.c b/externals/iem/iem_matrix/src/matrix_bundle_line8~.c
index e9f614536..deb3defb4 100644
--- a/externals/iem/iem_matrix/src/matrix_bundle_line8~.c
+++ b/externals/iem/iem_matrix/src/matrix_bundle_line8~.c
@@ -371,11 +371,11 @@ static void matrix_bundle_line8_tilde_dsp(t_matrix_bundle_line8_tilde *x, t_sign
   
   if(n&7)
   {
-    dsp_add(matrix_bundle_line8_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_bundle_line8_tilde_perform_zero, 2, x, (t_int)n);
     post("ERROR!!! matrix_bundle_line8_tilde~ : blocksize is %d and not a multiple of 8", n);
   }
   else
-    dsp_add(matrix_bundle_line8_tilde_perf8, 2, x, n);
+    dsp_add(matrix_bundle_line8_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_bundle_line~.c b/externals/iem/iem_matrix/src/matrix_bundle_line~.c
index e7ae5f93b..44736a4cf 100644
--- a/externals/iem/iem_matrix/src/matrix_bundle_line~.c
+++ b/externals/iem/iem_matrix/src/matrix_bundle_line~.c
@@ -385,11 +385,11 @@ static void matrix_bundle_line_tilde_dsp(t_matrix_bundle_line_tilde *x, t_signal
   
   if(n&7)
   {
-    dsp_add(matrix_bundle_line_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_bundle_line_tilde_perform_zero, 2, x, (t_int)n);
     post("ERROR!!! matrix_bundle_line_tilde~ : blocksize is %d and not a multiple of 8", n);
   }
   else
-    dsp_add(matrix_bundle_line_tilde_perf8, 2, x, n);
+    dsp_add(matrix_bundle_line_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_bundle_stat~.c b/externals/iem/iem_matrix/src/matrix_bundle_stat~.c
index df0f14700..64ddc7001 100644
--- a/externals/iem/iem_matrix/src/matrix_bundle_stat~.c
+++ b/externals/iem/iem_matrix/src/matrix_bundle_stat~.c
@@ -217,9 +217,9 @@ static void matrix_bundle_stat_tilde_dsp(t_matrix_bundle_stat_tilde *x, t_signal
   
   n = sp[0]->s_n;
   if(n&7)
-    dsp_add(matrix_bundle_stat_tilde_perform, 2, x, sp[0]->s_n);
+    dsp_add(matrix_bundle_stat_tilde_perform, 2, x, (t_int)sp[0]->s_n);
   else
-    dsp_add(matrix_bundle_stat_tilde_perf8, 2, x, sp[0]->s_n);
+    dsp_add(matrix_bundle_stat_tilde_perf8, 2, x, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_diag_mul_line8~.c b/externals/iem/iem_matrix/src/matrix_diag_mul_line8~.c
index 771ea8ba7..a00973978 100644
--- a/externals/iem/iem_matrix/src/matrix_diag_mul_line8~.c
+++ b/externals/iem/iem_matrix/src/matrix_diag_mul_line8~.c
@@ -296,9 +296,9 @@ static void matrix_diag_mul_line8_tilde_dsp(t_matrix_diag_mul_line8_tilde *x, t_
   x->x_8overn = 8.0f / (t_float)n;
   
   if(n&7)
-    dsp_add(matrix_diag_mul_line8_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_diag_mul_line8_tilde_perform_zero, 2, x, (t_int)n);
   else
-    dsp_add(matrix_diag_mul_line8_tilde_perf8, 2, x, n);
+    dsp_add(matrix_diag_mul_line8_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_diag_mul_line~.c b/externals/iem/iem_matrix/src/matrix_diag_mul_line~.c
index 7bad1bb0f..71bb0bb5e 100644
--- a/externals/iem/iem_matrix/src/matrix_diag_mul_line~.c
+++ b/externals/iem/iem_matrix/src/matrix_diag_mul_line~.c
@@ -302,9 +302,9 @@ static void matrix_diag_mul_line_tilde_dsp(t_matrix_diag_mul_line_tilde *x, t_si
   x->x_1overn = 1.0f / (t_float)n;
   
   if(n&7)
-    dsp_add(matrix_diag_mul_line_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_diag_mul_line_tilde_perform_zero, 2, x, (t_int)n);
   else
-    dsp_add(matrix_diag_mul_line_tilde_perf8, 2, x, n);
+    dsp_add(matrix_diag_mul_line_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_diag_mul_stat~.c b/externals/iem/iem_matrix/src/matrix_diag_mul_stat~.c
index 9edb511f5..de2645ba1 100644
--- a/externals/iem/iem_matrix/src/matrix_diag_mul_stat~.c
+++ b/externals/iem/iem_matrix/src/matrix_diag_mul_stat~.c
@@ -171,9 +171,9 @@ static void matrix_diag_mul_stat_tilde_dsp(t_matrix_diag_mul_stat_tilde *x, t_si
   
   n = sp[0]->s_n;
   if(n&7)
-    dsp_add(matrix_diag_mul_stat_tilde_perform, 2, x, n);
+    dsp_add(matrix_diag_mul_stat_tilde_perform, 2, x, (t_int)n);
   else
-    dsp_add(matrix_diag_mul_stat_tilde_perf8, 2, x, n);
+    dsp_add(matrix_diag_mul_stat_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_mul_line8~.c b/externals/iem/iem_matrix/src/matrix_mul_line8~.c
index 10f58fb21..7b615a32d 100644
--- a/externals/iem/iem_matrix/src/matrix_mul_line8~.c
+++ b/externals/iem/iem_matrix/src/matrix_mul_line8~.c
@@ -557,11 +557,11 @@ static void matrix_mul_line8_tilde_dsp(t_matrix_mul_line8_tilde *x, t_signal **s
   
   if(n&7)
   {
-    dsp_add(matrix_mul_line8_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_mul_line8_tilde_perform_zero, 2, x, (t_int)n);
     post("ERROR!!! matrix_mul_line8~ : blocksize is %d and not a multiple of 8", n);
   }
   else
-    dsp_add(matrix_mul_line8_tilde_perf8, 2, x, n);
+    dsp_add(matrix_mul_line8_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_mul_line~.c b/externals/iem/iem_matrix/src/matrix_mul_line~.c
index b41c8b2c3..96dc59877 100644
--- a/externals/iem/iem_matrix/src/matrix_mul_line~.c
+++ b/externals/iem/iem_matrix/src/matrix_mul_line~.c
@@ -586,11 +586,11 @@ static void matrix_mul_line_tilde_dsp(t_matrix_mul_line_tilde *x, t_signal **sp)
   
   if(n&7)
   {
-    dsp_add(matrix_mul_line_tilde_perform_zero, 2, x, n);
+    dsp_add(matrix_mul_line_tilde_perform_zero, 2, x, (t_int)n);
     post("ERROR!!! matrix_mul_line~ : blocksize is %d and not a multiple of 8", n);
   }
   else
-    dsp_add(matrix_mul_line_tilde_perf8, 2, x, n);
+    dsp_add(matrix_mul_line_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_matrix/src/matrix_mul_stat~.c b/externals/iem/iem_matrix/src/matrix_mul_stat~.c
index ada652a53..f61d1746d 100644
--- a/externals/iem/iem_matrix/src/matrix_mul_stat~.c
+++ b/externals/iem/iem_matrix/src/matrix_mul_stat~.c
@@ -394,9 +394,9 @@ static void matrix_mul_stat_tilde_dsp(t_matrix_mul_stat_tilde *x, t_signal **sp)
   
   n = sp[0]->s_n;
   if(n&7)
-    dsp_add(matrix_mul_stat_tilde_perform, 2, x, n);
+    dsp_add(matrix_mul_stat_tilde_perform, 2, x, (t_int)n);
   else
-    dsp_add(matrix_mul_stat_tilde_perf8, 2, x, n);
+    dsp_add(matrix_mul_stat_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_spec2/src/spec2_1p1z_freq~.c b/externals/iem/iem_spec2/src/spec2_1p1z_freq~.c
index 6d95a8649..fef24b46a 100644
--- a/externals/iem/iem_spec2/src/spec2_1p1z_freq~.c
+++ b/externals/iem/iem_spec2/src/spec2_1p1z_freq~.c
@@ -463,9 +463,9 @@ static void spec2_1p1z_freq_tilde_dsp(t_spec2_1p1z_freq_tilde *x, t_signal **sp)
   }
   
   if(n&15)
-    dsp_add(spec2_1p1z_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_1p1z_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(spec2_1p1z_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_1p1z_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void spec2_1p1z_freq_tilde_free(t_spec2_1p1z_freq_tilde *x)
diff --git a/externals/iem/iem_spec2/src/spec2_1p1z_time~.c b/externals/iem/iem_spec2/src/spec2_1p1z_time~.c
index 852ea9908..196f70913 100644
--- a/externals/iem/iem_spec2/src/spec2_1p1z_time~.c
+++ b/externals/iem/iem_spec2/src/spec2_1p1z_time~.c
@@ -174,9 +174,9 @@ static void spec2_1p1z_time_tilde_dsp(t_spec2_1p1z_time_tilde *x, t_signal **sp)
     x->x_begmem_back = x->x_begmem_forw + n +1;
   }
   if(n&15)
-    dsp_add(spec2_1p1z_time_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_1p1z_time_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(spec2_1p1z_time_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_1p1z_time_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_1p1z_time_tilde_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/iem/iem_spec2/src/spec2_abs~.c b/externals/iem/iem_spec2/src/spec2_abs~.c
index 521b0e0f9..ebae0277d 100644
--- a/externals/iem/iem_spec2/src/spec2_abs~.c
+++ b/externals/iem/iem_spec2/src/spec2_abs~.c
@@ -68,9 +68,9 @@ static void spec2_abs_tilde_dsp(t_spec2_abs_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_abs_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+    dsp_add(spec2_abs_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_abs_tilde_perf16, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+    dsp_add(spec2_abs_tilde_perf16, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_abs_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_add_scalar~.c b/externals/iem/iem_spec2/src/spec2_add_scalar~.c
index 219baeefc..78a398714 100644
--- a/externals/iem/iem_spec2/src/spec2_add_scalar~.c
+++ b/externals/iem/iem_spec2/src/spec2_add_scalar~.c
@@ -74,9 +74,9 @@ static void spec2_add_scalar_tilde_dsp(t_spec2_add_scalar_tilde *x, t_signal **s
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_add_scalar_tilde_perform, 3, sp[0]->s_vec, x, n);
+    dsp_add(spec2_add_scalar_tilde_perform, 3, sp[0]->s_vec, x, (t_int)n);
   else
-    dsp_add(spec2_add_scalar_tilde_perf16, 3, sp[0]->s_vec, x, n);
+    dsp_add(spec2_add_scalar_tilde_perf16, 3, sp[0]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_add_scalar_tilde_new(t_floatarg f)
diff --git a/externals/iem/iem_spec2/src/spec2_add~.c b/externals/iem/iem_spec2/src/spec2_add~.c
index cfb7249f6..297a86c30 100644
--- a/externals/iem/iem_spec2/src/spec2_add~.c
+++ b/externals/iem/iem_spec2/src/spec2_add~.c
@@ -71,9 +71,9 @@ static void spec2_add_tilde_dsp(t_spec2_add_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_add_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_add_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_add_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_add_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
 }
 
 static void *spec2_add_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_block_delay~.c b/externals/iem/iem_spec2/src/spec2_block_delay~.c
index 5c52b2863..57e3d08e8 100644
--- a/externals/iem/iem_spec2/src/spec2_block_delay~.c
+++ b/externals/iem/iem_spec2/src/spec2_block_delay~.c
@@ -125,9 +125,9 @@ static void spec2_block_delay_tilde_dsp(t_spec2_block_delay_tilde *x, t_signal *
     x->x_blocksize = n;
   }
   if(n&15)
-    dsp_add(spec2_block_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_block_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(spec2_block_delay_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(spec2_block_delay_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_block_delay_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_clip_max~.c b/externals/iem/iem_spec2/src/spec2_clip_max~.c
index 2aebcdc64..026663472 100644
--- a/externals/iem/iem_spec2/src/spec2_clip_max~.c
+++ b/externals/iem/iem_spec2/src/spec2_clip_max~.c
@@ -138,9 +138,9 @@ static void spec2_clip_max_tilde_dsp(t_spec2_clip_max_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_clip_max_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_clip_max_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_clip_max_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_clip_max_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
 }
 
 static void *spec2_clip_max_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_clip_min~.c b/externals/iem/iem_spec2/src/spec2_clip_min~.c
index ccdbf12cb..fd6bd46fe 100644
--- a/externals/iem/iem_spec2/src/spec2_clip_min~.c
+++ b/externals/iem/iem_spec2/src/spec2_clip_min~.c
@@ -138,9 +138,9 @@ static void spec2_clip_min_tilde_dsp(t_spec2_clip_min_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_clip_min_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_clip_min_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_clip_min_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_clip_min_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
 }
 
 static void *spec2_clip_min_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_dbtopow~.c b/externals/iem/iem_spec2/src/spec2_dbtopow~.c
index e780af45b..a33f31fd7 100644
--- a/externals/iem/iem_spec2/src/spec2_dbtopow~.c
+++ b/externals/iem/iem_spec2/src/spec2_dbtopow~.c
@@ -45,7 +45,7 @@ static void spec2_dbtopow_tilde_dsp(t_spec2_dbtopow_tilde *x, t_signal **sp)
 {
   int n = (sp[0]->s_n)/2;
   
-  dsp_add(spec2_dbtopow_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+  dsp_add(spec2_dbtopow_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_dbtopow_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_dbtorms~.c b/externals/iem/iem_spec2/src/spec2_dbtorms~.c
index b89ff9b49..af0ed685b 100644
--- a/externals/iem/iem_spec2/src/spec2_dbtorms~.c
+++ b/externals/iem/iem_spec2/src/spec2_dbtorms~.c
@@ -45,7 +45,7 @@ static void spec2_dbtorms_tilde_dsp(t_spec2_dbtorms_tilde *x, t_signal **sp)
 {
   int n = (sp[0]->s_n)/2;
   
-  dsp_add(spec2_dbtorms_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+  dsp_add(spec2_dbtorms_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_dbtorms_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_matrix_bundle_stat~.c b/externals/iem/iem_spec2/src/spec2_matrix_bundle_stat~.c
index b4efea449..78d950284 100644
--- a/externals/iem/iem_spec2/src/spec2_matrix_bundle_stat~.c
+++ b/externals/iem/iem_spec2/src/spec2_matrix_bundle_stat~.c
@@ -219,9 +219,9 @@ static void spec2_matrix_bundle_stat_tilde_dsp(t_spec2_matrix_bundle_stat_tilde
   
   n = sp[0]->s_n/2;
   if(n&7)
-    dsp_add(spec2_matrix_bundle_stat_tilde_perform, 2, x, n);
+    dsp_add(spec2_matrix_bundle_stat_tilde_perform, 2, x, (t_int)n);
   else
-    dsp_add(spec2_matrix_bundle_stat_tilde_perf8, 2, x, n);
+    dsp_add(spec2_matrix_bundle_stat_tilde_perf8, 2, x, (t_int)n);
 }
 
 
diff --git a/externals/iem/iem_spec2/src/spec2_mul_scalar~.c b/externals/iem/iem_spec2/src/spec2_mul_scalar~.c
index 3ff5a7e52..6ae9bd9fa 100644
--- a/externals/iem/iem_spec2/src/spec2_mul_scalar~.c
+++ b/externals/iem/iem_spec2/src/spec2_mul_scalar~.c
@@ -73,9 +73,9 @@ static void spec2_mul_scalar_tilde_dsp(t_spec2_mul_scalar_tilde *x, t_signal **s
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_mul_scalar_tilde_perform, 3, sp[0]->s_vec, x, n);
+    dsp_add(spec2_mul_scalar_tilde_perform, 3, sp[0]->s_vec, x, (t_int)n);
   else
-    dsp_add(spec2_mul_scalar_tilde_perf16, 3, sp[0]->s_vec, x, n);
+    dsp_add(spec2_mul_scalar_tilde_perf16, 3, sp[0]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_mul_scalar_tilde_new(t_floatarg f)
diff --git a/externals/iem/iem_spec2/src/spec2_mul~.c b/externals/iem/iem_spec2/src/spec2_mul~.c
index 97b8605a5..58bd2dd0d 100644
--- a/externals/iem/iem_spec2/src/spec2_mul~.c
+++ b/externals/iem/iem_spec2/src/spec2_mul~.c
@@ -70,9 +70,9 @@ static void spec2_mul_tilde_dsp(t_spec2_mul_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_mul_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_mul_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_mul_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_mul_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
 }
 
 static void *spec2_mul_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_powtodb~.c b/externals/iem/iem_spec2/src/spec2_powtodb~.c
index d9fa7cba5..8224c2525 100644
--- a/externals/iem/iem_spec2/src/spec2_powtodb~.c
+++ b/externals/iem/iem_spec2/src/spec2_powtodb~.c
@@ -44,7 +44,7 @@ static void spec2_powtodb_tilde_dsp(t_spec2_powtodb_tilde *x, t_signal **sp)
 {
   int n = (sp[0]->s_n)/2;
   
-  dsp_add(spec2_powtodb_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+  dsp_add(spec2_powtodb_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_powtodb_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_rmstodb~.c b/externals/iem/iem_spec2/src/spec2_rmstodb~.c
index 0bba8e3b9..9dfa93573 100644
--- a/externals/iem/iem_spec2/src/spec2_rmstodb~.c
+++ b/externals/iem/iem_spec2/src/spec2_rmstodb~.c
@@ -45,7 +45,7 @@ static void spec2_rmstodb_tilde_dsp(t_spec2_rmstodb_tilde *x, t_signal **sp)
 {
   int n = (sp[0]->s_n)/2;
   
-  dsp_add(spec2_rmstodb_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+  dsp_add(spec2_rmstodb_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_rmstodb_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_shift~.c b/externals/iem/iem_spec2/src/spec2_shift~.c
index de3471e6b..9876f4433 100644
--- a/externals/iem/iem_spec2/src/spec2_shift~.c
+++ b/externals/iem/iem_spec2/src/spec2_shift~.c
@@ -76,7 +76,7 @@ static void spec2_shift_tilde_dsp(t_spec2_shift_tilde *x, t_signal **sp)
     x->x_spec = (t_float *)resizebytes(x->x_spec, (x->x_blocksize+1)*sizeof(t_float), (n+1)*sizeof(t_float));
     x->x_blocksize = n;
   }
-  dsp_add(spec2_shift_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+  dsp_add(spec2_shift_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_shift_tilde_new(t_floatarg add)
diff --git a/externals/iem/iem_spec2/src/spec2_sqrt~.c b/externals/iem/iem_spec2/src/spec2_sqrt~.c
index 6f25ee133..98cd0a5b6 100644
--- a/externals/iem/iem_spec2/src/spec2_sqrt~.c
+++ b/externals/iem/iem_spec2/src/spec2_sqrt~.c
@@ -49,7 +49,7 @@ static void spec2_sqrt_tilde_dsp(t_spec2_sqrt_tilde *x, t_signal **sp)
 {
   int n = (sp[0]->s_n)/2;
   
-  dsp_add(spec2_sqrt_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+  dsp_add(spec2_sqrt_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_sqrt_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_stretch~.c b/externals/iem/iem_spec2/src/spec2_stretch~.c
index 9d060af5e..ef00e5b50 100644
--- a/externals/iem/iem_spec2/src/spec2_stretch~.c
+++ b/externals/iem/iem_spec2/src/spec2_stretch~.c
@@ -72,7 +72,7 @@ static void spec2_stretch_tilde_dsp(t_spec2_stretch_tilde *x, t_signal **sp)
     x->x_spec = (t_float *)resizebytes(x->x_spec, (x->x_blocksize+1)*sizeof(t_float), (n+1)*sizeof(t_float));
     x->x_blocksize = n;
   }
-  dsp_add(spec2_stretch_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+  dsp_add(spec2_stretch_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *spec2_stretch_tilde_new(t_floatarg mul)
diff --git a/externals/iem/iem_spec2/src/spec2_sub~.c b/externals/iem/iem_spec2/src/spec2_sub~.c
index b972d4fd0..b5ff9ca52 100644
--- a/externals/iem/iem_spec2/src/spec2_sub~.c
+++ b/externals/iem/iem_spec2/src/spec2_sub~.c
@@ -70,9 +70,9 @@ static void spec2_sub_tilde_dsp(t_spec2_sub_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_sub_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_sub_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_sub_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n);
+    dsp_add(spec2_sub_tilde_perf16, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)n);
 }
 
 static void *spec2_sub_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_sum~.c b/externals/iem/iem_spec2/src/spec2_sum~.c
index 796447de7..ad656bd4a 100644
--- a/externals/iem/iem_spec2/src/spec2_sum~.c
+++ b/externals/iem/iem_spec2/src/spec2_sum~.c
@@ -96,9 +96,9 @@ static void spec2_sum_tilde_dsp(t_spec2_sum_tilde *x, t_signal **sp)
   int n = (sp[0]->s_n)/2;
   
   if(n&15)
-    dsp_add(spec2_sum_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+    dsp_add(spec2_sum_tilde_perform, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
   else
-    dsp_add(spec2_sum_tilde_perf16, 3, sp[0]->s_vec, sp[0]->s_vec, n);
+    dsp_add(spec2_sum_tilde_perf16, 3, sp[0]->s_vec, sp[0]->s_vec, (t_int)n);
 }
 
 static void *spec2_sum_tilde_new(void)
diff --git a/externals/iem/iem_spec2/src/spec2_tab_conv~.c b/externals/iem/iem_spec2/src/spec2_tab_conv~.c
index 980592097..6bb7baf69 100644
--- a/externals/iem/iem_spec2/src/spec2_tab_conv~.c
+++ b/externals/iem/iem_spec2/src/spec2_tab_conv~.c
@@ -106,7 +106,7 @@ static void spec2_tab_conv_tilde_dsp(t_spec2_tab_conv_tilde *x, t_signal **sp)
     x->x_blocksize = n;
   }
   
-  dsp_add(spec2_tab_conv_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+  dsp_add(spec2_tab_conv_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void spec2_tab_conv_tilde_free(t_spec2_tab_conv_tilde *x)
diff --git a/externals/iem/iem_spec2/src/spec2_tabreceive_enable~.c b/externals/iem/iem_spec2/src/spec2_tabreceive_enable~.c
index e9f0eb06d..74d3a45df 100644
--- a/externals/iem/iem_spec2/src/spec2_tabreceive_enable~.c
+++ b/externals/iem/iem_spec2/src/spec2_tabreceive_enable~.c
@@ -137,9 +137,9 @@ static void spec2_tabreceive_enable_tilde_dsp(t_spec2_tabreceive_enable_tilde *x
       vecsize = n;
     vecsize /= 2;
     if(vecsize&15)
-      dsp_add(spec2_tabreceive_enable_tilde_perform, 3, x, sp[0]->s_vec, vecsize);
+      dsp_add(spec2_tabreceive_enable_tilde_perform, 3, x, sp[0]->s_vec, (t_int)vecsize);
     else
-      dsp_add(spec2_tabreceive_enable_tilde_perf16, 3, x, sp[0]->s_vec, vecsize);
+      dsp_add(spec2_tabreceive_enable_tilde_perf16, 3, x, sp[0]->s_vec, (t_int)vecsize);
   }
 }
 
diff --git a/externals/iem/iem_spec2/src/spec2_tabreceive~.c b/externals/iem/iem_spec2/src/spec2_tabreceive~.c
index ac30b5c56..dbf38f3a1 100644
--- a/externals/iem/iem_spec2/src/spec2_tabreceive~.c
+++ b/externals/iem/iem_spec2/src/spec2_tabreceive~.c
@@ -125,9 +125,9 @@ static void spec2_tabreceive_tilde_dsp(t_spec2_tabreceive_tilde *x, t_signal **s
       vecsize = n;
     vecsize /= 2;
     if(vecsize&15)
-      dsp_add(spec2_tabreceive_tilde_perform, 3, x, sp[0]->s_vec, vecsize);
+      dsp_add(spec2_tabreceive_tilde_perform, 3, x, sp[0]->s_vec, (t_int)vecsize);
     else
-      dsp_add(spec2_tabreceive_tilde_perf16, 3, x, sp[0]->s_vec, vecsize);
+      dsp_add(spec2_tabreceive_tilde_perf16, 3, x, sp[0]->s_vec, (t_int)vecsize);
   }
 }
 
diff --git a/externals/iem/iemmatrix/src/mtx_mul~.c b/externals/iem/iemmatrix/src/mtx_mul~.c
index 3f072f35b..ee9ba9322 100644
--- a/externals/iem/iemmatrix/src/mtx_mul~.c
+++ b/externals/iem/iemmatrix/src/mtx_mul~.c
@@ -776,10 +776,10 @@ static void matrix_multilde_dsp(t_matrix_multilde *x, t_signal **sp)
 
   if(n&7)
     {
-      dsp_add(matrix_multilde_perform, 2, x, n);
+      dsp_add(matrix_multilde_perform, 2, x, (t_int)n);
     }
   else {
-    dsp_add(matrix_multilde_perf8, 2, x, n);
+    dsp_add(matrix_multilde_perf8, 2, x, (t_int)n);
   }
 }
 
diff --git a/externals/iem16/src/del16read~.c b/externals/iem16/src/del16read~.c
index cc148a9d5..30f3ea6e0 100644
--- a/externals/iem16/src/del16read~.c
+++ b/externals/iem16/src/del16read~.c
@@ -88,7 +88,7 @@ static void sigdel16read_dsp(t_sigdel16read *x, t_signal **sp){
 		    0 : delwriter->x_vecsize);
     sigdel16read_16bit(x, x->x_deltime);
     dsp_add(sigdel16read_perform, 4,
-    	    sp[0]->s_vec, &delwriter->x_cspace, &x->x_delsamps, sp[0]->s_n);
+    	    sp[0]->s_vec, &delwriter->x_cspace, &x->x_delsamps, (t_int)sp[0]->s_n);
   }
   else if (*x->x_sym->s_name)
     error("delread~: %s: no such delwrite~",x->x_sym->s_name);
diff --git a/externals/iem16/src/del16write~.c b/externals/iem16/src/del16write~.c
index 56f63237b..05f3862bb 100644
--- a/externals/iem16/src/del16write~.c
+++ b/externals/iem16/src/del16write~.c
@@ -67,7 +67,7 @@ static t_int *sigdel16write_perform(t_int *w){
 static void sigdel16write_dsp(t_sigdel16write *x, t_signal **sp){
   dsp_add(sigdel16write_perform, 3, sp[0]->s_vec, &x->x_cspace, sp[0]->s_n);
   x->x_sortno = ugen_getsortno();
-  sigdel16write_checkvecsize(x, sp[0]->s_n);
+  sigdel16write_checkvecsize(x, (t_int)sp[0]->s_n);
 }
 
 static void sigdel16write_free(t_sigdel16write *x){
diff --git a/externals/iem16/src/tab16play~.c b/externals/iem16/src/tab16play~.c
index 4af5df75d..1f5ec9632 100644
--- a/externals/iem16/src/tab16play~.c
+++ b/externals/iem16/src/tab16play~.c
@@ -90,7 +90,7 @@ void tab16play_tilde_set(t_tab16play_tilde *x, t_symbol *s){
 
 static void tab16play_tilde_dsp(t_tab16play_tilde *x, t_signal **sp){
   tab16play_tilde_set(x, x->x_arrayname);
-  dsp_add(tab16play_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(tab16play_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void tab16play_tilde_list(t_tab16play_tilde *x, t_symbol *s,
diff --git a/externals/iem16/src/tab16read4~.c b/externals/iem16/src/tab16read4~.c
index c85ea0e55..34a4af18b 100644
--- a/externals/iem16/src/tab16read4~.c
+++ b/externals/iem16/src/tab16read4~.c
@@ -101,7 +101,7 @@ static void tab16read4_tilde_dsp(t_tab16read4_tilde *x, t_signal **sp){
   tab16read4_tilde_set(x, x->x_arrayname);
 
   dsp_add(tab16read4_tilde_perform, 4, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void tab16read4_tilde_setup(void){
diff --git a/externals/iem16/src/tab16read~.c b/externals/iem16/src/tab16read~.c
index e384bb806..be86f093e 100644
--- a/externals/iem16/src/tab16read~.c
+++ b/externals/iem16/src/tab16read~.c
@@ -86,7 +86,7 @@ static void tab16read_tilde_dsp(t_tab16read_tilde *x, t_signal **sp){
   tab16read_tilde_set(x, x->x_arrayname);
 
   dsp_add(tab16read_tilde_perform, 4, x,
-	  sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	  sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/iem16/src/tab16receive~.c b/externals/iem16/src/tab16receive~.c
index 6eaa8d698..c0006c002 100644
--- a/externals/iem16/src/tab16receive~.c
+++ b/externals/iem16/src/tab16receive~.c
@@ -54,7 +54,7 @@ static void tab16receive_dsp(t_tab16receive *x, t_signal **sp){
     int n = sp[0]->s_n;
     if (n < vecsize) vecsize = n;
     table16_usedindsp(a);
-    dsp_add(tab16receive_perform, 3, x, sp[0]->s_vec, vecsize);
+    dsp_add(tab16receive_perform, 3, x, sp[0]->s_vec, (t_int)vecsize);
   }
 }
 
diff --git a/externals/iem16/src/tab16send~.c b/externals/iem16/src/tab16send~.c
index 9e8ede542..65bae5a02 100644
--- a/externals/iem16/src/tab16send~.c
+++ b/externals/iem16/src/tab16send~.c
@@ -74,7 +74,7 @@ static void tab16send_dsp(t_tab16send *x, t_signal **sp){
     if (x->x_graphcount > ticksper) x->x_graphcount = ticksper;
     if (n < vecsize) vecsize = n;
     table16_usedindsp(a);
-    dsp_add(tab16send_perform, 3, x, sp[0]->s_vec, vecsize);
+    dsp_add(tab16send_perform, 3, x, sp[0]->s_vec, (t_int)vecsize);
   }
 }
 
diff --git a/externals/iem16/src/tab16write~.c b/externals/iem16/src/tab16write~.c
index f88574311..edcc37add 100644
--- a/externals/iem16/src/tab16write~.c
+++ b/externals/iem16/src/tab16write~.c
@@ -78,7 +78,7 @@ void tab16write_tilde_set(t_tab16write_tilde *x, t_symbol *s){
 
 static void tab16write_tilde_dsp(t_tab16write_tilde *x, t_signal **sp){
   tab16write_tilde_set(x, x->x_arrayname);
-  dsp_add(tab16write_tilde_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(tab16write_tilde_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void tab16write_tilde_bang(t_tab16write_tilde *x){
diff --git a/externals/iem16/src/vd16~.c b/externals/iem16/src/vd16~.c
index 7a85eefb0..16744ea02 100644
--- a/externals/iem16/src/vd16~.c
+++ b/externals/iem16/src/vd16~.c
@@ -92,7 +92,7 @@ static void sig16vd_dsp(t_sig16vd *x, t_signal **sp){
 		    0 : delwriter->x_vecsize);
     dsp_add(sig16vd_perform, 5,
     	    sp[0]->s_vec, sp[1]->s_vec,
-	    &delwriter->x_cspace, x, sp[0]->s_n);
+	    &delwriter->x_cspace, x, (t_int)sp[0]->s_n);
   }
   else error("vd~: %s: no such delwrite~",x->x_sym->s_name);
 }
diff --git a/externals/iemlib/iem_mp3/src/mp3play~.c b/externals/iemlib/iem_mp3/src/mp3play~.c
index 5658b238e..d4c342a44 100644
--- a/externals/iemlib/iem_mp3/src/mp3play~.c
+++ b/externals/iemlib/iem_mp3/src/mp3play~.c
@@ -3758,7 +3758,7 @@ static void mp3play_tilde_dsp(t_mp3play_tilde *x, t_signal **sp)
 {
     x->obj_sr = (int)(sp[0]->s_sr);
     x->obj_n = (int)(sp[0]->s_n);
-    dsp_add(mp3play_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(mp3play_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/iemlib/iem_t3_lib/src/t3_line~.c b/externals/iemlib/iem_t3_lib/src/t3_line~.c
index 92878c63c..d825cc940 100644
--- a/externals/iemlib/iem_t3_lib/src/t3_line~.c
+++ b/externals/iemlib/iem_t3_lib/src/t3_line~.c
@@ -231,7 +231,7 @@ static void t3_line_tilde_dsp(t_t3_line_tilde *x, t_signal **sp)
     *trans++ = val;
   x->x_ms2samps = 0.001*(double)sp[0]->s_sr;
   x->x_ticks2ms = (double)x->x_n / x->x_ms2samps;
-  dsp_add(t3_line_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(t3_line_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void t3_line_tilde_free(t_t3_line_tilde *x)
diff --git a/externals/iemlib/iem_t3_lib/src/t3_sig~.c b/externals/iemlib/iem_t3_lib/src/t3_sig~.c
index fdbb5e8f6..188864dfd 100644
--- a/externals/iemlib/iem_t3_lib/src/t3_sig~.c
+++ b/externals/iemlib/iem_t3_lib/src/t3_sig~.c
@@ -154,9 +154,9 @@ static void t3_sig_tilde_dsp(t_t3_sig_tilde *x, t_signal **sp)
     *trans++ = val;
   
   if((sp[0]->s_n)&7)
-    dsp_add(t3_sig_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(t3_sig_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
   else
-    dsp_add(t3_sig_tilde_perf8, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(t3_sig_tilde_perf8, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void t3_sig_tilde_free(t_t3_sig_tilde *x)
diff --git a/externals/iemlib/iemlib1/src/FIR~.c b/externals/iemlib/iemlib1/src/FIR~.c
index e3dd3739e..00ff2b725 100644
--- a/externals/iemlib/iemlib1/src/FIR~.c
+++ b/externals/iemlib/iemlib1/src/FIR~.c
@@ -141,7 +141,7 @@ void FIR_tilde_set(t_FIR_tilde *x, t_symbol *table_name, t_floatarg forder)
 static void FIR_tilde_dsp(t_FIR_tilde *x, t_signal **sp)
 {
   FIR_tilde_set(x, x->x_table_name, x->x_fir_order);
-  dsp_add(FIR_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(FIR_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *FIR_tilde_new(t_symbol *array_name, t_floatarg forder)
diff --git a/externals/iemlib/iemlib1/src/filter~.c b/externals/iemlib/iemlib1/src/filter~.c
index 62ebcdbd7..30be3ca0f 100644
--- a/externals/iemlib/iemlib1/src/filter~.c
+++ b/externals/iemlib/iemlib1/src/filter~.c
@@ -1178,16 +1178,16 @@ static void filter_tilde_dsp(t_filter_tilde *x, t_signal **sp)
     if(x->x_para.dp.filter_function_is_first_order)
     {
       if(n&7)
-        dsp_add(filter_tilde_dp_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_dp_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
       else
-        dsp_add(filter_tilde_dp_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_dp_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
     }
     else
     {
       if(n&7)
-        dsp_add(filter_tilde_dp_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_dp_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
       else
-        dsp_add(filter_tilde_dp_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_dp_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
     }
   }
   else
@@ -1221,16 +1221,16 @@ static void filter_tilde_dsp(t_filter_tilde *x, t_signal **sp)
     if(x->x_para.sp.filter_function_is_first_order)
     {
       if(n&7)
-        dsp_add(filter_tilde_sp_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_sp_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
       else
-        dsp_add(filter_tilde_sp_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_sp_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
     }
     else
     {
       if(n&7)
-        dsp_add(filter_tilde_sp_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_sp_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
       else
-        dsp_add(filter_tilde_sp_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+        dsp_add(filter_tilde_sp_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
     }
   }
 }
diff --git a/externals/iemlib/iemlib1/src/hml_shelf~.c b/externals/iemlib/iemlib1/src/hml_shelf~.c
index 4727d25d9..69c59c48b 100644
--- a/externals/iemlib/iemlib1/src/hml_shelf~.c
+++ b/externals/iemlib/iemlib1/src/hml_shelf~.c
@@ -457,9 +457,9 @@ static void hml_shelf_tilde_dsp(t_hml_shelf_tilde *x, t_signal **sp)
   x->ticks = i;
   x->rcp_ticks = 1.0f / (t_float)i;
   if(n&7)
-    dsp_add(hml_shelf_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(hml_shelf_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(hml_shelf_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(hml_shelf_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *hml_shelf_tilde_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/iemlib/iemlib1/src/iem_cot4~.c b/externals/iemlib/iemlib1/src/iem_cot4~.c
index 2951193c6..7587132d4 100644
--- a/externals/iemlib/iemlib1/src/iem_cot4~.c
+++ b/externals/iemlib/iemlib1/src/iem_cot4~.c
@@ -121,7 +121,7 @@ static t_int *iem_cot4_tilde_perform(t_int *w)
 static void iem_cot4_tilde_dsp(t_iem_cot4_tilde *x, t_signal **sp)
 {
   x->x_sr = 2.0f / (t_float)sp[0]->s_sr;
-  dsp_add(iem_cot4_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(iem_cot4_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void iem_cot4_tilde_maketable(void)
diff --git a/externals/iemlib/iemlib1/src/iem_delay~.c b/externals/iemlib/iemlib1/src/iem_delay~.c
index d08e3c471..2ef2173a5 100644
--- a/externals/iemlib/iemlib1/src/iem_delay~.c
+++ b/externals/iemlib/iemlib1/src/iem_delay~.c
@@ -151,9 +151,9 @@ static void iem_delay_tilde_dsp(t_iem_delay_tilde *x, t_signal **sp)
   }
   
   if(blocksize&7)
-    dsp_add(iem_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, blocksize);
+    dsp_add(iem_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)blocksize);
   else
-    dsp_add(iem_delay_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, blocksize);
+    dsp_add(iem_delay_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)blocksize);
 }
 
 static void *iem_delay_tilde_new(t_floatarg max_delay_ms, t_floatarg current_delay_ms)
diff --git a/externals/iemlib/iemlib1/src/iem_pow4~.c b/externals/iemlib/iemlib1/src/iem_pow4~.c
index 70b32ceb2..7a934b673 100644
--- a/externals/iemlib/iemlib1/src/iem_pow4~.c
+++ b/externals/iemlib/iemlib1/src/iem_pow4~.c
@@ -64,7 +64,7 @@ static t_int *iem_pow4_tilde_perform(t_int *w)
 
 static void iem_pow4_tilde_dsp(t_iem_pow4_tilde *x, t_signal **sp)
 {
-  dsp_add(iem_pow4_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(iem_pow4_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *iem_pow4_tilde_new(t_floatarg f)
diff --git a/externals/iemlib/iemlib1/src/iem_sqrt4~.c b/externals/iemlib/iemlib1/src/iem_sqrt4~.c
index 21a599b8a..88275fe9f 100644
--- a/externals/iemlib/iemlib1/src/iem_sqrt4~.c
+++ b/externals/iemlib/iemlib1/src/iem_sqrt4~.c
@@ -59,7 +59,7 @@ static t_int *iem_sqrt4_tilde_perform(t_int *w)
 
 static void iem_sqrt4_tilde_dsp(t_iem_sqrt4_tilde *x, t_signal **sp)
 {
-  dsp_add(iem_sqrt4_tilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(iem_sqrt4_tilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void iem_sqrt4_tilde_init(void)
diff --git a/externals/iemlib/iemlib1/src/lp1_t~.c b/externals/iemlib/iemlib1/src/lp1_t~.c
index 9db41ac3d..e29e4fadd 100644
--- a/externals/iemlib/iemlib1/src/lp1_t~.c
+++ b/externals/iemlib/iemlib1/src/lp1_t~.c
@@ -162,9 +162,9 @@ static void lp1_t_tilde_dsp(t_lp1_t_tilde *x, t_signal **sp)
     x->c1 = exp((x->sr)/x->cur_t);
   x->c0 = 1.0 - x->c1;
   if(n&7)
-    dsp_add(lp1_t_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(lp1_t_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(lp1_t_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(lp1_t_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *lp1_t_tilde_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/iemlib/iemlib1/src/mov_avrg_kern~.c b/externals/iemlib/iemlib1/src/mov_avrg_kern~.c
index 04755ffb5..058fa0499 100644
--- a/externals/iemlib/iemlib1/src/mov_avrg_kern~.c
+++ b/externals/iemlib/iemlib1/src/mov_avrg_kern~.c
@@ -101,7 +101,7 @@ static void mov_avrg_kern_tilde_dsp(t_mov_avrg_kern_tilde *x, t_signal **sp)
   x->x_counter = x->x_nsamps;
   x->x_wn1 = 0.0;
   x->x_a0 = 1.0/(double)(x->x_nsamps);
-  dsp_add(mov_avrg_kern_tilde_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, sp[0]->s_n);
+  dsp_add(mov_avrg_kern_tilde_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *mov_avrg_kern_tilde_new(t_floatarg mstime)
diff --git a/externals/iemlib/iemlib1/src/para_bp2~.c b/externals/iemlib/iemlib1/src/para_bp2~.c
index e25368fe3..4d1d20a32 100644
--- a/externals/iemlib/iemlib1/src/para_bp2~.c
+++ b/externals/iemlib/iemlib1/src/para_bp2~.c
@@ -330,9 +330,9 @@ static void para_bp2_tilde_dsp(t_para_bp2_tilde *x, t_signal **sp)
     x->cur_l = co/si;
   }
   if(n&7)
-    dsp_add(para_bp2_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(para_bp2_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
   else
-    dsp_add(para_bp2_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n);
+    dsp_add(para_bp2_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)n);
 }
 
 static void *para_bp2_tilde_new(t_symbol *s, int argc, t_atom *argv)
diff --git a/externals/iemlib/iemlib1/src/peakenv_hold~.c b/externals/iemlib/iemlib1/src/peakenv_hold~.c
index c2a58244b..e6f8880fe 100644
--- a/externals/iemlib/iemlib1/src/peakenv_hold~.c
+++ b/externals/iemlib/iemlib1/src/peakenv_hold~.c
@@ -91,7 +91,7 @@ static void peakenv_hold_tilde_dsp(t_peakenv_hold_tilde *x, t_signal **sp)
   x->x_sr = (double)sp[0]->s_sr;
   peakenv_hold_tilde_ft1(x, x->x_holdtime);
   peakenv_hold_tilde_ft2(x, x->x_releasetime);
-  dsp_add(peakenv_hold_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(peakenv_hold_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *peakenv_hold_tilde_new(t_float t_hold, t_float t_rel)
diff --git a/externals/iemlib/iemlib1/src/peakenv~.c b/externals/iemlib/iemlib1/src/peakenv~.c
index d515f6986..1c85372c4 100644
--- a/externals/iemlib/iemlib1/src/peakenv~.c
+++ b/externals/iemlib/iemlib1/src/peakenv~.c
@@ -66,7 +66,7 @@ static void peakenv_tilde_dsp(t_peakenv_tilde *x, t_signal **sp)
 {
   x->x_sr = (double)sp[0]->s_sr;
   peakenv_tilde_ft1(x, x->x_releasetime);
-  dsp_add(peakenv_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(peakenv_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *peakenv_tilde_new(t_floatarg f)
diff --git a/externals/iemlib/iemlib1/src/prvu~.c b/externals/iemlib/iemlib1/src/prvu~.c
index f7bae0392..0d966f927 100644
--- a/externals/iemlib/iemlib1/src/prvu~.c
+++ b/externals/iemlib/iemlib1/src/prvu~.c
@@ -136,7 +136,7 @@ static void prvu_tilde_dsp(t_prvu_tilde *x, t_signal **sp)
 {
   x->x_sr = 0.001*(t_float)sp[0]->s_sr;
   x->x_rcp = 1.0/(x->x_sr*x->x_metro_time);
-  dsp_add(prvu_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(prvu_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
   clock_delay(x->x_clock_metro, x->x_metro_time);
 }
 
diff --git a/externals/iemlib/iemlib1/src/pvu~.c b/externals/iemlib/iemlib1/src/pvu~.c
index 7aae0b4dd..be929288d 100644
--- a/externals/iemlib/iemlib1/src/pvu~.c
+++ b/externals/iemlib/iemlib1/src/pvu~.c
@@ -110,7 +110,7 @@ static t_int *pvu_tilde_perform(t_int *w)
 
 static void pvu_tilde_dsp(t_pvu_tilde *x, t_signal **sp)
 {
-  dsp_add(pvu_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(pvu_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
   clock_delay(x->x_clock, x->x_metro_time);
 }
 
diff --git a/externals/iemlib/iemlib1/src/rvu~.c b/externals/iemlib/iemlib1/src/rvu~.c
index 539ee6319..da3cdf6e4 100644
--- a/externals/iemlib/iemlib1/src/rvu~.c
+++ b/externals/iemlib/iemlib1/src/rvu~.c
@@ -102,7 +102,7 @@ static void rvu_tilde_dsp(t_rvu_tilde *x, t_signal **sp)
 {
   x->x_sr = 0.001*(t_float)sp[0]->s_sr;
   x->x_rcp = 1.0/(x->x_sr*x->x_metro_time);
-  dsp_add(rvu_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(rvu_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
   clock_delay(x->x_clock_metro, x->x_metro_time);
 }
 
diff --git a/externals/iemlib/iemlib1/src/sin_freq~.c b/externals/iemlib/iemlib1/src/sin_freq~.c
index 093806c58..436d665ab 100644
--- a/externals/iemlib/iemlib1/src/sin_freq~.c
+++ b/externals/iemlib/iemlib1/src/sin_freq~.c
@@ -63,7 +63,7 @@ static t_int *sin_freq_tilde_perform(t_int *w)
 static void sin_freq_tilde_dsp(t_sin_freq_tilde *x, t_signal **sp)
 {
   x->x_sr = (t_sample)sp[0]->s_sr;
-  dsp_add(sin_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(sin_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sin_freq_tilde_new(void)
diff --git a/externals/iemlib/iemlib1/src/sin_phase~.c b/externals/iemlib/iemlib1/src/sin_phase~.c
index 9684cd7b9..9c281a720 100644
--- a/externals/iemlib/iemlib1/src/sin_phase~.c
+++ b/externals/iemlib/iemlib1/src/sin_phase~.c
@@ -89,7 +89,7 @@ static t_int *sin_phase_tilde_perform(t_int *w)
 
 static void sin_phase_tilde_dsp(t_sin_phase_tilde *x, t_signal **sp)
 {
-  dsp_add(sin_phase_tilde_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, sp[0]->s_n);
+  dsp_add(sin_phase_tilde_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sin_phase_tilde_new(void)
diff --git a/externals/iemlib/iemlib1/src/sparse_FIR~.c b/externals/iemlib/iemlib1/src/sparse_FIR~.c
index 893e36c2a..4ef520d8b 100644
--- a/externals/iemlib/iemlib1/src/sparse_FIR~.c
+++ b/externals/iemlib/iemlib1/src/sparse_FIR~.c
@@ -221,7 +221,7 @@ static void sparse_FIR_tilde_order(t_sparse_FIR_tilde *x, t_floatarg fn)
 
 static void sparse_FIR_tilde_dsp(t_sparse_FIR_tilde *x, t_signal **sp)
 {
-  dsp_add(sparse_FIR_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(sparse_FIR_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sparse_FIR_tilde_new(t_floatarg fn)
diff --git a/externals/iemlib/iemlib1/src/vcf_filter~.c b/externals/iemlib/iemlib1/src/vcf_filter~.c
index f4a78f5da..3541e4f19 100644
--- a/externals/iemlib/iemlib1/src/vcf_filter~.c
+++ b/externals/iemlib/iemlib1/src/vcf_filter~.c
@@ -282,20 +282,20 @@ static void vcf_filter_tilde_dsp(t_vcf_filter_tilde *x, t_signal **sp)
 {
   if(!strcmp(x->x_filtname,"bp2"))
     dsp_add(vcf_filter_tilde_perform_bp2, 6, sp[0]->s_vec, sp[1]->s_vec, 
-    sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+    sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
   else if(!strcmp(x->x_filtname,"rbp2"))
     dsp_add(vcf_filter_tilde_perform_rbp2, 6, sp[0]->s_vec, sp[1]->s_vec, 
-    sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+    sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
   else if(!strcmp(x->x_filtname,"lp2"))
     dsp_add(vcf_filter_tilde_perform_lp2, 6, sp[0]->s_vec, sp[1]->s_vec,
-    sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+    sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
   else if(!strcmp(x->x_filtname,"hp2"))
     dsp_add(vcf_filter_tilde_perform_hp2, 6, sp[0]->s_vec, sp[1]->s_vec,
-    sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+    sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
   else
   {
     dsp_add(vcf_filter_tilde_perform_snafu, 6, sp[0]->s_vec, sp[1]->s_vec,
-      sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n);
+      sp[2]->s_vec, sp[3]->s_vec, x, (t_int)sp[0]->s_n);
     post("vcf_filter~-Error: 1. initial-arguments: <sym> kind: lp2, bp2, rbp2, hp2!");
   }
 }
diff --git a/externals/iemlib/iemlib2/src/LFO_noise~.c b/externals/iemlib/iemlib2/src/LFO_noise~.c
index a5774c8bb..aad4a135f 100644
--- a/externals/iemlib/iemlib2/src/LFO_noise~.c
+++ b/externals/iemlib/iemlib2/src/LFO_noise~.c
@@ -107,7 +107,7 @@ static void LFO_noise_tilde_float(t_LFO_noise_tilde *x, t_floatarg freq)
 static void LFO_noise_tilde_dsp(t_LFO_noise_tilde *x, t_signal **sp)
 {
   x->x_fact = 2.0f / sp[0]->s_sr;
-  dsp_add(LFO_noise_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(LFO_noise_tilde_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 void LFO_noise_tilde_setup(void)
diff --git a/externals/iemlib/iemlib2/src/fade~.c b/externals/iemlib/iemlib2/src/fade~.c
index 1087b0b09..5b29593f3 100644
--- a/externals/iemlib/iemlib2/src/fade~.c
+++ b/externals/iemlib/iemlib2/src/fade~.c
@@ -107,7 +107,7 @@ static t_int *fade_tilde_perform(t_int *w)
 
 static void fade_tilde_dsp(t_fade_tilde *x, t_signal **sp)
 {
-  dsp_add(fade_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(fade_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void fade_tilde_maketable(void)
diff --git a/externals/iemlib/iemlib2/src/m2f~.c b/externals/iemlib/iemlib2/src/m2f~.c
index 3cecbc845..89da053a3 100644
--- a/externals/iemlib/iemlib2/src/m2f~.c
+++ b/externals/iemlib/iemlib2/src/m2f~.c
@@ -87,7 +87,7 @@ static t_int *m2f_tilde_perform(t_int *w)
 
 static void m2f_tilde_dsp(t_m2f_tilde *x, t_signal **sp)
 {
-  dsp_add(m2f_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(m2f_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void m2f_tilde_maketable(void)
diff --git a/externals/lyonpotpourri/adsr~.c b/externals/lyonpotpourri/adsr~.c
index 467187dd9..8f684f23e 100755
--- a/externals/lyonpotpourri/adsr~.c
+++ b/externals/lyonpotpourri/adsr~.c
@@ -326,7 +326,7 @@ void adsr_dsp(t_adsr *x, t_signal **sp)
 		x->ebreak3 = x->asamps+x->dsamps+x->ssamps;
 		x->counter = 0;	
 	}
-	dsp_add(adsr_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+	dsp_add(adsr_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/lyonpotpourri/arrayfilt~.c b/externals/lyonpotpourri/arrayfilt~.c
index 01f17fc7a..d347bc9dd 100755
--- a/externals/lyonpotpourri/arrayfilt~.c
+++ b/externals/lyonpotpourri/arrayfilt~.c
@@ -86,5 +86,5 @@ exit:
 void arrayfilt_dsp(t_arrayfilt *x, t_signal **sp)
 {
     dsp_add(arrayfilt_perform,6, x,
-            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/bashfest~.c b/externals/lyonpotpourri/bashfest~.c
index 8055eced3..c2eea11e3 100755
--- a/externals/lyonpotpourri/bashfest~.c
+++ b/externals/lyonpotpourri/bashfest~.c
@@ -1331,10 +1331,10 @@ void bashfest_dsp(t_bashfest *x, t_signal **sp)
 	
     if(x->hosed){
         dsp_add(bashfest_perform_hosed, 5, x, 
-                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);	
+                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
     } else {
         dsp_add(bashfest_perform, 5, x, 
-                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);		
+                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
     }
 }
 /*
diff --git a/externals/lyonpotpourri/buffet~.c b/externals/lyonpotpourri/buffet~.c
index f85240ae8..d11f2ca7b 100755
--- a/externals/lyonpotpourri/buffet~.c
+++ b/externals/lyonpotpourri/buffet~.c
@@ -2155,7 +2155,7 @@ void buffet_dsp(t_buffet *x, t_signal **sp)
 	}
 	
 	dsp_add(buffet_perform, 3, x,
-			sp[0]->s_vec, sp[0]->s_n);
+			sp[0]->s_vec, (t_int)sp[0]->s_n);
 	
 }
 
diff --git a/externals/lyonpotpourri/bvplay~.c b/externals/lyonpotpourri/bvplay~.c
index 0f759f513..906b43023 100755
--- a/externals/lyonpotpourri/bvplay~.c
+++ b/externals/lyonpotpourri/bvplay~.c
@@ -283,14 +283,14 @@ void bvplay_dsp(t_bvplay *x, t_signal **sp)
     	x->taper_frames = x->R * x->taper_dur;
     }
     // Pd buffers always mono ...
-    dsp_add(bvplay_perform_mono, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(bvplay_perform_mono, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     /*
     if( x->wavebuf->b_nchans == 1 ) {
     	// post("initiating mono processor");
-   	 	dsp_add(bvplay_perform_mono, 3, x, sp[0]->s_vec, sp[0]->s_n);
+   	 	dsp_add(bvplay_perform_mono, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     } else if( x->wavebuf->b_nchans == 2) {
     	// post("initiating stereo processor");
-   	 	dsp_add(bvplay_perform_stereo,4,x,sp[0]->s_vec,sp[1]->s_vec,sp[0]->s_n);
+   	 	dsp_add(bvplay_perform_stereo,4,x,sp[0]->s_vec,sp[1]->s_vec,(t_int)sp[0]->s_n);
     } else {
      	post("%s: bad channel spec: %d, cannot initiate dsp code",OBJECT_NAME,  x->wavebuf->b_nchans);
     }*/
diff --git a/externals/lyonpotpourri/cartopol~.c b/externals/lyonpotpourri/cartopol~.c
index 094eb208d..0e53e2a0f 100755
--- a/externals/lyonpotpourri/cartopol~.c
+++ b/externals/lyonpotpourri/cartopol~.c
@@ -59,5 +59,5 @@ t_int *cartopol_perform(t_int *w)
 void cartopol_dsp(t_cartopol *x, t_signal **sp)
 {
     dsp_add(cartopol_perform,6, x,
-            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/channel~.c b/externals/lyonpotpourri/channel~.c
index b281944d4..d2776a74a 100755
--- a/externals/lyonpotpourri/channel~.c
+++ b/externals/lyonpotpourri/channel~.c
@@ -79,6 +79,6 @@ t_int *channel_perform(t_int *w)
 
 void channel_dsp(t_channel *x, t_signal **sp)
 {
-    dsp_add(channel_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(channel_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/chopper~.c b/externals/lyonpotpourri/chopper~.c
index 71550cc4f..1d570140c 100755
--- a/externals/lyonpotpourri/chopper~.c
+++ b/externals/lyonpotpourri/chopper~.c
@@ -897,7 +897,7 @@ void chopper_dsp(t_chopper *x, t_signal **sp)
     return;
   }
 
-	dsp_add(chopper_pd_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+	dsp_add(chopper_pd_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/lyonpotpourri/click2bang~.c b/externals/lyonpotpourri/click2bang~.c
index a95a6e995..784cfdb18 100755
--- a/externals/lyonpotpourri/click2bang~.c
+++ b/externals/lyonpotpourri/click2bang~.c
@@ -59,6 +59,6 @@ t_int *click2bang_perform(t_int *w)
 
 void click2bang_dsp(t_click2bang *x, t_signal **sp)
 {
-    dsp_add(click2bang_perform, 3, x, sp[0]->s_vec,sp[0]->s_n);
+    dsp_add(click2bang_perform, 3, x, sp[0]->s_vec,(t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/click2float~.c b/externals/lyonpotpourri/click2float~.c
index f5671cdd6..ff407b8f4 100755
--- a/externals/lyonpotpourri/click2float~.c
+++ b/externals/lyonpotpourri/click2float~.c
@@ -63,6 +63,6 @@ t_int *click2float_perform(t_int *w)
 
 void click2float_dsp(t_click2float *x, t_signal **sp)
 {
-    dsp_add(click2float_perform, 3, x, sp[0]->s_vec,sp[0]->s_n);
+    dsp_add(click2float_perform, 3, x, sp[0]->s_vec,(t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/clickhold~.c b/externals/lyonpotpourri/clickhold~.c
index 279dac573..2bff7021e 100755
--- a/externals/lyonpotpourri/clickhold~.c
+++ b/externals/lyonpotpourri/clickhold~.c
@@ -56,6 +56,6 @@ t_int *clickhold_perform(t_int *w)
 
 void clickhold_dsp(t_clickhold *x, t_signal **sp)
 {
-    dsp_add(clickhold_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(clickhold_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/click~.c b/externals/lyonpotpourri/click~.c
index bea1af97e..31cf0c198 100755
--- a/externals/lyonpotpourri/click~.c
+++ b/externals/lyonpotpourri/click~.c
@@ -73,6 +73,6 @@ t_int *click_perform(t_int *w)
 
 void click_dsp(t_click *x, t_signal **sp)
 {
-    dsp_add(click_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(click_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/counter~.c b/externals/lyonpotpourri/counter~.c
index 2c529b430..ea685822c 100755
--- a/externals/lyonpotpourri/counter~.c
+++ b/externals/lyonpotpourri/counter~.c
@@ -123,5 +123,5 @@ static t_int *counter_perform(t_int *w)
 
 static void counter_dsp(t_counter *x, t_signal **sp)
 {
-    dsp_add(counter_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(counter_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/distortion~.c b/externals/lyonpotpourri/distortion~.c
index 498989740..441f3b9b2 100755
--- a/externals/lyonpotpourri/distortion~.c
+++ b/externals/lyonpotpourri/distortion~.c
@@ -220,7 +220,7 @@ void distortion_mute(t_distortion *x, t_floatarg f) {
 void distortion_dsp(t_distortion *x, t_signal **sp)
 {
 
-	dsp_add(distortion2_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,sp[0]->s_n);
+	dsp_add(distortion2_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,(t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/lyonpotpourri/dynss~.c b/externals/lyonpotpourri/dynss~.c
index 70e9c9a39..c34af9951 100755
--- a/externals/lyonpotpourri/dynss~.c
+++ b/externals/lyonpotpourri/dynss~.c
@@ -320,5 +320,5 @@ void dynss_dsp(t_dynss *x, t_signal **sp)
 	if(x->srate != sp[0]->s_sr) {
 		x->srate = sp[0]->s_sr;
 	}
-	dsp_add(dynss_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec,sp[0]->s_n);
+	dsp_add(dynss_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec,(t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/expflam~.c b/externals/lyonpotpourri/expflam~.c
index 78bd5593f..b7db2409d 100755
--- a/externals/lyonpotpourri/expflam~.c
+++ b/externals/lyonpotpourri/expflam~.c
@@ -1 +1 @@
-#include "MSPd.h"


static t_class *expflam_class;

#define OBJECT_NAME "expflam~"

#define MAXFLAMS (64)
#define MAXATTACKS (128)
#define STOPGAIN (.001)


typedef struct
{
	int attack_count; // number of triggers per flam event
	float *attack_times; // trigger times in seconds
	int *attack_points; // trigger times in samples
	int fdex; // current flam
	float gainatten; // attenuation factor
	float amp; // current amp
	int atks;// number of attacks per flam
	long counter; // internal clock
	short active; // flag that flam is turned on


} t_flam;

typedef struct _expflam
{

	t_object x_obj;
	float x_f;
	t_flam *flams; // contain flams
	float start_delay; // initial flam delay
	float end_delay;// end delay
	float atten; // attenuation factor
	float slope;// slope of curve
	int atks;// number of attacks per flam
	float sr;
	float *trigvec; // hold input vector (to protect from memory sharing)
	float *bypvec; // ditto for flamgate vector
	short flamall; // flag to put a flam on everything
	short bypass; // flag to copy input to output without flam
	short flamgate_connected; // flag that a flamgate logical signal is connected to inlet 2

} t_expflam;


void *expflam_new(void);
t_int *expflam_perform(t_int *w);
void expflam_dsp(t_expflam *x, t_signal **sp);
void expflam_setflam(t_expflam *x, t_symbol *msg, short argc, t_atom *argv);
void expflam_free(t_expflam *x);
void expflam_assist(t_expflam *x, void *b, long msg, long arg, char *dst);
void expflam_flamall(t_expflam *x, t_floatarg tog);
void expflam_bypass(t_expflam *x, t_floatarg tog);


void expflam_tilde_setup(void)
{
expflam_class = class_new(gensym("expflam~"),(t_newmethod)expflam_new,
(t_method)expflam_free, sizeof(t_expflam), 0, 0);
	CLASS_MAINSIGNALIN(expflam_class,t_expflam, x_f );
	class_addmethod(expflam_class,(t_method)expflam_dsp,gensym("dsp"),A_CANT,0);
	class_addmethod(expflam_class,(t_method)expflam_setflam,gensym("setflam"),A_GIMME,0);
	class_addmethod(expflam_class,(t_method)expflam_flamall,gensym("flamall"),A_FLOAT,0);
	class_addmethod(expflam_class,(t_method)expflam_bypass,gensym("bypass"),A_FLOAT,0);
    potpourri_announce(OBJECT_NAME);
}

void expflam_flamall(t_expflam *x, t_floatarg tog)
{
	x->flamall = (short) tog;
}

void expflam_bypass(t_expflam *x, t_floatarg tog)
{
	x->bypass = (short) tog;
}

void expflam_assist(t_expflam *x, void *b, long msg, long arg, char *dst)
{
  if (msg==1) {
    switch (arg) {
    	case 0: sprintf(dst,"(signal) Trigger Click"); break;
		case 1: sprintf(dst,"(signal) Flam Gate"); break;
    }
  } else if (msg==2) {
    sprintf(dst,"(signal) Flam Clicks");
  }
}

void *expflam_new(void)
{
	int i;
	t_expflam *x = (t_expflam *)pd_new(expflam_class);
	inlet_new(&x->x_obj, &x->x_obj.ob_pd,gensym("signal"), gensym("signal"));
	outlet_new(&x->x_obj, gensym("signal"));
	x->flams = (t_flam *) calloc(MAXFLAMS, sizeof(t_flam));   
	for(i = 0; i < MAXFLAMS; i++){
	  	x->flams[i].attack_times = (float *) calloc(MAXATTACKS, sizeof(float));
	  	x->flams[i].attack_points = (int *) calloc(MAXATTACKS, sizeof(int));
	}
	   
	x->trigvec = malloc(8192 * sizeof(float)); // maximum vector size
	x->bypvec = malloc(8192 * sizeof(float)); // maximum vector size
    x->sr = sys_getsr();
    x->start_delay = .025;
    x->end_delay = 0.1;
    x->slope = -3.0;
    x->atks = 8;
    x->atten = 0.8;
	x->bypass = 0;
	x->flamall = 0;
	
    return x;
}

void expflam_setflam(t_expflam *x, t_symbol *msg, short argc, t_atom *argv)
{
  if( argc != 5 ){
    error("%s: setflam format: startdelay enddelay attacks slope gainatten",OBJECT_NAME);
    return;
  }
  x->start_delay = atom_getfloatarg(0,argc,argv) * 0.001;
  x->end_delay = atom_getfloatarg(1,argc,argv) * 0.001;
  x->atks = (int) atom_getfloatarg(2,argc,argv);
  x->slope = atom_getfloatarg(3,argc,argv);
  x->atten = atom_getfloatarg(4,argc,argv);
  if(x->slope == 0)
  	x->slope = .0001;
  if(x->start_delay <= 0)
  	x->start_delay = .00001;
  if(x->end_delay <= 0)
  	x->end_delay = .00001;
  if(x->atks < 2)
  	x->atks = 2;
  if(x->atks > MAXATTACKS){
  	post("%s: exceeded maximum of %d attacks",OBJECT_NAME, MAXATTACKS);
  	x->atks = MAXATTACKS;
  }
}

void expflam_free(t_expflam *x)
{
int i;

	free(x->trigvec);
	free(x->bypvec);
  for(i = 0; i < MAXFLAMS; i++){
  	free(x->flams[i].attack_times);
  	free(x->flams[i].attack_points);
  }
  free(x->flams);
	
}

t_int *expflam_perform(t_int *w)
{
	int i,j,k;
	t_expflam *x = (t_expflam *) (w[1]);
	float *in_vec = (t_float *)(w[2]);
	float *in2_vec = (t_float *)(w[3]);
	float *out_vec = (t_float *)(w[4]);
	int n = (int) w[5];
	
	float *trigvec = x->trigvec;
	float *flamgate_vec = x->bypvec;
	t_flam *flams = x->flams;
	int atks = x->atks;
	float atten = x->atten;
	float slope = x->slope;
	float start_delay = x->start_delay;
	float end_delay = x->end_delay;
	float sr = x->sr;
	short flamgate_connected = x->flamgate_connected;
	short flamall = x->flamall;
	
	/* in flamgate mode copy input to output and return */
	if(x->bypass){
		memcpy( (void *)out_vec, (void *)in_vec, n * sizeof(float) );
		return (w+6);
	}
	/* copy input vectors */
	memcpy( (void *)flamgate_vec, (void *)in2_vec, n * sizeof(float) );// the order of these mcopies matters
	memcpy( (void *)trigvec, (void *)in_vec, n * sizeof(float) );
	memcpy( (void *)out_vec, (void *)in_vec, n * sizeof(float) );// copy triggers to output for a start
		
	/* look for activation triggers */
	for(i = 0; i < n; i++){
		if(trigvec[i] && (flamgate_vec[i] || ! flamgate_connected || flamall ) ){	
//		post("triggered with t %f and flamgate %f",trigvec[i],flamgate_vec[i]);
			j = 0;  
			while(flams[j].active && j < MAXFLAMS){
				++j;
			}
			if(j >= MAXFLAMS){
				post("too many flams");				
			}
			else {
//				post("inserting flam at location %d",j);
				flams[j].active = 1;
				flams[j].attack_times[0] = 0.0;
				flams[j].attack_points[0] = i;
				flams[j].gainatten = atten;
				flams[j].amp = trigvec[i];
				flams[j].counter = 0;
				flams[j].fdex = 0;
				flams[j].atks = atks;
				
				for(k = 1; k < atks; k++){
					flams[j].attack_times[k] = start_delay + (end_delay - start_delay) * ((1.0 - exp((float)k * slope/((float)atks-1.0)))/(1.0-exp(slope)));
					flams[j].attack_times[k] += flams[j].attack_times[k - 1];
					flams[j].attack_points[k] = flams[j].attack_times[k] * sr + i;
				}						
			}
		}
	}
	/* now iterate through active flams */
	for( i = 0; i < n; i++){
		for(j = 0; j < MAXFLAMS; j++){
			if(flams[j].active){
				if(flams[j].counter >= flams[j].attack_points[flams[j].fdex]){
					out_vec[i] += flams[j].amp;
					flams[j].amp *= flams[j].gainatten;
					if( flams[j].amp <= STOPGAIN ){
						flams[j].active = 0;
					}
					flams[j].fdex++;
					if(flams[j].fdex >= flams[j].atks){
						flams[j].active = 0;
					}
				}
				flams[j].counter++;
			}
		}
	}

	return w+6;
}

void expflam_dsp(t_expflam *x, t_signal **sp)
{

	x->flamgate_connected = 1;
	dsp_add(expflam_perform, 5, x,
			sp[0]->s_vec, 
			sp[1]->s_vec,
			sp[2]->s_vec,  
			sp[0]->s_n
	);
}

\ No newline at end of file
+#include "MSPd.h"


static t_class *expflam_class;

#define OBJECT_NAME "expflam~"

#define MAXFLAMS (64)
#define MAXATTACKS (128)
#define STOPGAIN (.001)


typedef struct
{
	int attack_count; // number of triggers per flam event
	float *attack_times; // trigger times in seconds
	int *attack_points; // trigger times in samples
	int fdex; // current flam
	float gainatten; // attenuation factor
	float amp; // current amp
	int atks;// number of attacks per flam
	long counter; // internal clock
	short active; // flag that flam is turned on


} t_flam;

typedef struct _expflam
{

	t_object x_obj;
	float x_f;
	t_flam *flams; // contain flams
	float start_delay; // initial flam delay
	float end_delay;// end delay
	float atten; // attenuation factor
	float slope;// slope of curve
	int atks;// number of attacks per flam
	float sr;
	float *trigvec; // hold input vector (to protect from memory sharing)
	float *bypvec; // ditto for flamgate vector
	short flamall; // flag to put a flam on everything
	short bypass; // flag to copy input to output without flam
	short flamgate_connected; // flag that a flamgate logical signal is connected to inlet 2

} t_expflam;


void *expflam_new(void);
t_int *expflam_perform(t_int *w);
void expflam_dsp(t_expflam *x, t_signal **sp);
void expflam_setflam(t_expflam *x, t_symbol *msg, short argc, t_atom *argv);
void expflam_free(t_expflam *x);
void expflam_assist(t_expflam *x, void *b, long msg, long arg, char *dst);
void expflam_flamall(t_expflam *x, t_floatarg tog);
void expflam_bypass(t_expflam *x, t_floatarg tog);


void expflam_tilde_setup(void)
{
expflam_class = class_new(gensym("expflam~"),(t_newmethod)expflam_new,
(t_method)expflam_free, sizeof(t_expflam), 0, 0);
	CLASS_MAINSIGNALIN(expflam_class,t_expflam, x_f );
	class_addmethod(expflam_class,(t_method)expflam_dsp,gensym("dsp"),A_CANT,0);
	class_addmethod(expflam_class,(t_method)expflam_setflam,gensym("setflam"),A_GIMME,0);
	class_addmethod(expflam_class,(t_method)expflam_flamall,gensym("flamall"),A_FLOAT,0);
	class_addmethod(expflam_class,(t_method)expflam_bypass,gensym("bypass"),A_FLOAT,0);
    potpourri_announce(OBJECT_NAME);
}

void expflam_flamall(t_expflam *x, t_floatarg tog)
{
	x->flamall = (short) tog;
}

void expflam_bypass(t_expflam *x, t_floatarg tog)
{
	x->bypass = (short) tog;
}

void expflam_assist(t_expflam *x, void *b, long msg, long arg, char *dst)
{
  if (msg==1) {
    switch (arg) {
    	case 0: sprintf(dst,"(signal) Trigger Click"); break;
		case 1: sprintf(dst,"(signal) Flam Gate"); break;
    }
  } else if (msg==2) {
    sprintf(dst,"(signal) Flam Clicks");
  }
}

void *expflam_new(void)
{
	int i;
	t_expflam *x = (t_expflam *)pd_new(expflam_class);
	inlet_new(&x->x_obj, &x->x_obj.ob_pd,gensym("signal"), gensym("signal"));
	outlet_new(&x->x_obj, gensym("signal"));
	x->flams = (t_flam *) calloc(MAXFLAMS, sizeof(t_flam));   
	for(i = 0; i < MAXFLAMS; i++){
	  	x->flams[i].attack_times = (float *) calloc(MAXATTACKS, sizeof(float));
	  	x->flams[i].attack_points = (int *) calloc(MAXATTACKS, sizeof(int));
	}
	   
	x->trigvec = malloc(8192 * sizeof(float)); // maximum vector size
	x->bypvec = malloc(8192 * sizeof(float)); // maximum vector size
    x->sr = sys_getsr();
    x->start_delay = .025;
    x->end_delay = 0.1;
    x->slope = -3.0;
    x->atks = 8;
    x->atten = 0.8;
	x->bypass = 0;
	x->flamall = 0;
	
    return x;
}

void expflam_setflam(t_expflam *x, t_symbol *msg, short argc, t_atom *argv)
{
  if( argc != 5 ){
    error("%s: setflam format: startdelay enddelay attacks slope gainatten",OBJECT_NAME);
    return;
  }
  x->start_delay = atom_getfloatarg(0,argc,argv) * 0.001;
  x->end_delay = atom_getfloatarg(1,argc,argv) * 0.001;
  x->atks = (int) atom_getfloatarg(2,argc,argv);
  x->slope = atom_getfloatarg(3,argc,argv);
  x->atten = atom_getfloatarg(4,argc,argv);
  if(x->slope == 0)
  	x->slope = .0001;
  if(x->start_delay <= 0)
  	x->start_delay = .00001;
  if(x->end_delay <= 0)
  	x->end_delay = .00001;
  if(x->atks < 2)
  	x->atks = 2;
  if(x->atks > MAXATTACKS){
  	post("%s: exceeded maximum of %d attacks",OBJECT_NAME, MAXATTACKS);
  	x->atks = MAXATTACKS;
  }
}

void expflam_free(t_expflam *x)
{
int i;

	free(x->trigvec);
	free(x->bypvec);
  for(i = 0; i < MAXFLAMS; i++){
  	free(x->flams[i].attack_times);
  	free(x->flams[i].attack_points);
  }
  free(x->flams);
	
}

t_int *expflam_perform(t_int *w)
{
	int i,j,k;
	t_expflam *x = (t_expflam *) (w[1]);
	float *in_vec = (t_float *)(w[2]);
	float *in2_vec = (t_float *)(w[3]);
	float *out_vec = (t_float *)(w[4]);
	int n = (int) w[5];
	
	float *trigvec = x->trigvec;
	float *flamgate_vec = x->bypvec;
	t_flam *flams = x->flams;
	int atks = x->atks;
	float atten = x->atten;
	float slope = x->slope;
	float start_delay = x->start_delay;
	float end_delay = x->end_delay;
	float sr = x->sr;
	short flamgate_connected = x->flamgate_connected;
	short flamall = x->flamall;
	
	/* in flamgate mode copy input to output and return */
	if(x->bypass){
		memcpy( (void *)out_vec, (void *)in_vec, n * sizeof(float) );
		return (w+6);
	}
	/* copy input vectors */
	memcpy( (void *)flamgate_vec, (void *)in2_vec, n * sizeof(float) );// the order of these mcopies matters
	memcpy( (void *)trigvec, (void *)in_vec, n * sizeof(float) );
	memcpy( (void *)out_vec, (void *)in_vec, n * sizeof(float) );// copy triggers to output for a start
		
	/* look for activation triggers */
	for(i = 0; i < n; i++){
		if(trigvec[i] && (flamgate_vec[i] || ! flamgate_connected || flamall ) ){	
//		post("triggered with t %f and flamgate %f",trigvec[i],flamgate_vec[i]);
			j = 0;  
			while(flams[j].active && j < MAXFLAMS){
				++j;
			}
			if(j >= MAXFLAMS){
				post("too many flams");				
			}
			else {
//				post("inserting flam at location %d",j);
				flams[j].active = 1;
				flams[j].attack_times[0] = 0.0;
				flams[j].attack_points[0] = i;
				flams[j].gainatten = atten;
				flams[j].amp = trigvec[i];
				flams[j].counter = 0;
				flams[j].fdex = 0;
				flams[j].atks = atks;
				
				for(k = 1; k < atks; k++){
					flams[j].attack_times[k] = start_delay + (end_delay - start_delay) * ((1.0 - exp((float)k * slope/((float)atks-1.0)))/(1.0-exp(slope)));
					flams[j].attack_times[k] += flams[j].attack_times[k - 1];
					flams[j].attack_points[k] = flams[j].attack_times[k] * sr + i;
				}						
			}
		}
	}
	/* now iterate through active flams */
	for( i = 0; i < n; i++){
		for(j = 0; j < MAXFLAMS; j++){
			if(flams[j].active){
				if(flams[j].counter >= flams[j].attack_points[flams[j].fdex]){
					out_vec[i] += flams[j].amp;
					flams[j].amp *= flams[j].gainatten;
					if( flams[j].amp <= STOPGAIN ){
						flams[j].active = 0;
					}
					flams[j].fdex++;
					if(flams[j].fdex >= flams[j].atks){
						flams[j].active = 0;
					}
				}
				flams[j].counter++;
			}
		}
	}

	return w+6;
}

void expflam_dsp(t_expflam *x, t_signal **sp)
{

	x->flamgate_connected = 1;
	dsp_add(expflam_perform, 5, x,
			sp[0]->s_vec, 
			sp[1]->s_vec,
			sp[2]->s_vec,  
			(t_int)sp[0]->s_n
	);
}

diff --git a/externals/lyonpotpourri/flanjah~.c b/externals/lyonpotpourri/flanjah~.c
index f3c2d06a3..501e4d643 100755
--- a/externals/lyonpotpourri/flanjah~.c
+++ b/externals/lyonpotpourri/flanjah~.c
@@ -241,7 +241,7 @@ void flanjah_dsp(t_flanjah *x, t_signal **sp)
     }
     dsp_add(flanjah_perform, 8, x,
             sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
 }
 
 void flanjah_mute(t_flanjah *x, t_floatarg state)
diff --git a/externals/lyonpotpourri/granola~.c b/externals/lyonpotpourri/granola~.c
index adb6735b3..0c3b81685 100755
--- a/externals/lyonpotpourri/granola~.c
+++ b/externals/lyonpotpourri/granola~.c
@@ -325,6 +325,6 @@ t_int *granola_perform(t_int *w)
 void granola_dsp(t_granola *x, t_signal **sp)
 {
     
-    dsp_add(granola_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,  sp[0]->s_n);
+    dsp_add(granola_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/granulesf~.c b/externals/lyonpotpourri/granulesf~.c
index 63ac71b61..dae925c56 100755
--- a/externals/lyonpotpourri/granulesf~.c
+++ b/externals/lyonpotpourri/granulesf~.c
@@ -1054,7 +1054,7 @@ void granulesf_dsp(t_granulesf *x, t_signal **sp)
 	if( x->hosed ){
 		post("You need some valid buffers");
 		dsp_add(granulesf_performhose, 5, x, 
-                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 		return;
 	}
 	if( x->sr != sp[0]->s_sr){
@@ -1067,10 +1067,10 @@ void granulesf_dsp(t_granulesf *x, t_signal **sp)
 	} 
 	if(x->interpolate){
 		dsp_add(granulesf_perform, 5, x, 
-                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 	} else {
 		dsp_add(granulesf_perform_no_interpolation, 5, x, 
-                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 	}
 }
 
diff --git a/externals/lyonpotpourri/granule~.c b/externals/lyonpotpourri/granule~.c
index 019118df4..2bad59fa9 100755
--- a/externals/lyonpotpourri/granule~.c
+++ b/externals/lyonpotpourri/granule~.c
@@ -1 +1 @@
-#include "MSPd.h"

#define MAXGRAINS (512) // just for present to get lower overhead

#define MAXSCALE (8192)
#define OBJECT_NAME "granule~"


static t_class *granule_class;


typedef struct {
    float amplitude;
    float panL;
    float panR;
    long delay; // samples to wait until event starts
    long duration;// length in samples of event
    float phase; // phase for frequency oscillator
    float ephase; // phase for envelope
    float si; // sampling increment for frequency
    float esi; // sampling increment for envelope
} t_grain;

typedef struct {
	t_word *b_samples;
	long b_frames;
	long b_nchans;
} t_pdbuffer;


typedef struct _granule
{
    
    t_object x_obj;
    float x_f;
    t_pdbuffer *wavebuf; // holds waveform samples
    t_pdbuffer *windowbuf; // holds window samples
	t_symbol *wavename; // name of waveform buffer
	t_symbol *windowname; // name of window buffer
    
	float sr; // sampling rate
	short mute;
	short hosed; // buffers are bad
	/* Global grain data*/
	long events; // number of events in a block
	long horizon; // length of block for random events
	float minfreq; // minimum frequency for a grain
	float maxfreq; // maximum frequency for a grain
	float minpan; // minimum pan for a grain
	float maxpan; // maxium pan for a grain
	float minamp; // minimum amplitude for a grain
	float maxamp; // maximum amplitude for a grain
	float mindur; // minumum duration for a grain
	float maxdur; // maximum duration for a grain
	t_grain *grains; // stores grain data
	float *pitchscale; // contains a frequency grid for pitch constraint
	int pitchsteps; // number of members in scale
	float transpose; // factor for scaling all pitches
	float pitch_deviation; // factor to adjust scaled pitches
	short steady; // toggles pulsed rhythmic activity
	float lowblock_freq; //lowest allowed frequency
	float highblock_freq;// highest allowed frequency
	float mindur_ms;//store duration in ms
	float maxdur_ms;//ditto
	float horizon_ms;//ditto
	short constrain_scale;//flag to only use bounded portion of scale rather than all of it
} t_granule;

void granule_setbuf(t_granule *x, t_symbol *wavename, t_symbol *windowname);
void *granule_new(t_symbol *msg, short argc, t_atom *argv);
t_int *granule_perform(t_int *w);
t_int *granule_performhose(t_int *w);
void granule_dsp(t_granule *x, t_signal **sp);
void granule_reload(t_granule *x);
void granule_spray(t_granule *x);
void granule_pitchspray(t_granule *x);
void granule_transpose(t_granule *x, t_floatarg t);
void granule_pitchdev(t_granule *x, t_floatarg d);
void granule_lowblock(t_granule *x, t_floatarg f);
void granule_highblock(t_granule *x, t_floatarg f);
void granule_events(t_granule *x, t_floatarg e);
float granule_boundrand(float min, float max);
void *granule_grist(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void *granule_grain(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void *granule_setscale(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void granule_info(t_granule *x);
void granule_mute(t_granule *x, t_floatarg toggle);
void granule_steady(t_granule *x, t_floatarg toggle);
void granule_constrain_scale(t_granule *x, t_floatarg toggle);
void granule_dsp_free(t_granule *x);
void granule_init(t_granule *x,short initialized);
void granule_constrain(int *index_min, int *index_max, float minfreq, float maxfreq, float *scale, int steps);

void granule_tilde_setup(void){
    granule_class = class_new(gensym("granule~"), (t_newmethod)granule_new,
                              (t_method)granule_dsp_free,sizeof(t_granule), 0,A_GIMME,0);
    CLASS_MAINSIGNALIN(granule_class, t_granule, x_f);
    class_addmethod(granule_class,(t_method)granule_dsp,gensym("dsp"),0);
    class_addmethod(granule_class,(t_method)granule_mute,gensym("mute"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_setbuf,gensym("setbuf"),A_DEFSYM,A_DEFSYM,0);
    class_addmethod(granule_class,(t_method)granule_spray,gensym("spray"),0);
    class_addmethod(granule_class,(t_method)granule_info,gensym("info"),0);
    class_addmethod(granule_class,(t_method)granule_pitchspray,gensym("pitchspray"),0);
    class_addmethod(granule_class,(t_method)granule_transpose,gensym("transpose"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_events,gensym("events"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_pitchdev,gensym("pitchdev"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_lowblock,gensym("lowblock"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_highblock,gensym("highblock"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_steady,gensym("steady"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_constrain_scale,gensym("constrain_scale"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_grist,gensym("grist"),A_GIMME,0);
    class_addmethod(granule_class,(t_method)granule_grain,gensym("grain"),A_GIMME,0);
    class_addmethod(granule_class,(t_method)granule_setscale,gensym("setscale"),A_GIMME,0);
    potpourri_announce(OBJECT_NAME);
}

void granule_constrain_scale(t_granule *x, t_floatarg toggle)
{
	x->constrain_scale = toggle;
}
void granule_lowblock(t_granule *x, t_floatarg f)
{
	if(f > 0){
		x->lowblock_freq = f;
	}
}

void granule_highblock(t_granule *x, t_floatarg f)
{
	if(f > 0){
		x->highblock_freq = f;
	}
}

void granule_pitchdev(t_granule *x, t_floatarg d)
{
	if(d < 0 ){
		error("pitch deviation must be positive");
		return;
	}
	x->pitch_deviation = d;
}

void granule_mute(t_granule *x, t_floatarg toggle)
{
	x->mute = toggle;
}

void granule_steady(t_granule *x, t_floatarg toggle)
{
	x->steady = toggle;
}

void granule_events(t_granule *x, t_floatarg e)
{
	if( e <= 0 ){
		post("events must be positive!");
		return;
	}
	x->events = e;
    //	x->steady_dur = x->horizon / (float) x->events;
}

void granule_transpose(t_granule *x, t_floatarg t)
{
	if( t <= 0 ){
		error("transpose factor must be greater than zero!");
		return;
	}
	x->transpose = t;
}

void *granule_setscale(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	int i;
	float *pitchscale = x->pitchscale;
	if( argc >= MAXSCALE ){
		error("%d is the maximum size scale", MAXSCALE);
		return 0;
	}
	if( argc < 2 ){
		error("there must be at least 2 members in scale");
		return 0;
	}
	for(i=0; i < argc; i++){
		pitchscale[i] = atom_getfloatarg(i,argc,argv);
	}
	x->pitchsteps = argc;
    //	post("read %d values into scale", x->pitchsteps);
    return 0;
}

void granule_constrain(int *index_min, int *index_max, float minfreq, float maxfreq, float *scale, int steps)
{
	int imax = steps - 1;
	int imin = 0;
	while(scale[imin] < minfreq && imin < imax){
		++imin;
	}
	if(imin == imax){
        //		post("could not constrain minimum index  - your grist parameters are out of range for this scale");
		*index_min = 0;
		*index_max = steps - 1;
		return;
	}
    while(scale[imax] > maxfreq && imax > 0){
		--imax;
	}
	if(imax < 1 || imax <= imin){
        //		post("could not constrain maximum index - your grist parameters are out of range for this scale");
		*index_min = 0;
		*index_max = steps - 1;
		return;
	}
	*index_min = imin;
	*index_max = imax;
}

void granule_pitchspray(t_granule *x)
{
	int i,j;
    
	long eframes = x->windowbuf->b_frames;
	long frames = x->wavebuf->b_frames;
	float sr = x->sr;
	long horizon = x->horizon; // length of block for random events
	float mindur = x->mindur;
	float maxdur = x->maxdur;
	float minfreq = x->minfreq; // minimum frequency for a grain
	float maxfreq = x->maxfreq; // maximum frequency for a grain
	float minpan = x->minpan; // minimum pan for a grain
	float maxpan = x->maxpan; // maxium pan for a grain
	float minamp = x->minamp; // minimum amplitude for a grain
	float maxamp = x->maxamp; // maximum amplitude for a grain
	float transpose = x->transpose; // pitch scalar
	float lowblock_freq = x->lowblock_freq;
	float highblock_freq = x->highblock_freq;
	short steady = x->steady;
	float pitch_deviation = x->pitch_deviation;
	float pdev = 0;
	float pdev_invert = 0;
    //	float pscale;
	float pan;
	int index_min, index_max;
	int steps = x->pitchsteps;
	float *scale = x->pitchscale;
	int windex;
	short inserted = 0;
	short constrain_scale = x->constrain_scale;
	t_grain *grains = x->grains;
    
    
	if( steps < 2 ){
		error("scale is undefined");
		return;
	}
	if( pitch_deviation ){
		pdev = 1.0 + pitch_deviation;
		pdev_invert = 1.0 / pdev;
	}
	for( i = 0; i < x->events; i++ ){
		inserted = 0;
		for(j = 0; j < MAXGRAINS; j++ ){
			if( grains[j].ephase >= eframes ){
				if(steady){
					grains[j].delay = (float)(i * horizon) / (float) x->events ;
				} else {
    				grains[j].delay = granule_boundrand(0.0,(float) horizon);
    			}
    			grains[j].duration = (long) granule_boundrand(mindur, maxdur);
    			grains[j].phase = 0.0;
    			grains[j].ephase = 0.0;
    			pan = granule_boundrand(minpan, maxpan);
    			grains[j].panL = cos(pan * PIOVERTWO);
    			grains[j].panR = sin(pan * PIOVERTWO);
    			grains[j].amplitude = granule_boundrand(minamp, maxamp);
    			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
				if(constrain_scale){
					granule_constrain(&index_min,&index_max,minfreq, maxfreq, scale, steps);
					windex = (int) granule_boundrand((float)index_min, (float)index_max);
				} else {
					windex = (int) granule_boundrand(0.0, (float)(steps-1));
				}
    			grains[j].si = transpose * scale[windex] * (float) frames / sr;
    			if( pitch_deviation ){
    				grains[j].si *= granule_boundrand(pdev_invert,pdev);
    			}
    			/* must add this code to spray, and also do for high frequencies
                 */
    			if(lowblock_freq > 0.0) {
    				if(grains[j].si * (sr/frames) < lowblock_freq){
    					post("lowblock: aborted grain with %f frequency",grains[j].si * (sr/frames));
    					grains[j].ephase = eframes; // abort grain
    				}
    			}
    			if(highblock_freq > 0.0) {
    				if(grains[j].si * (sr/frames) > highblock_freq){
    					post("highblock: aborted grain with %f frequency, greater than %f",
                             grains[j].si * (sr/frames), highblock_freq);
    					grains[j].ephase = eframes; // abort grain
    				}
    			}
    			inserted = 1;
    			goto nextgrain;
    		}
		}
		if(!inserted){
			error("could not insert grain");
			return;
		}
    nextgrain: ;
	}
}

void granule_spray(t_granule *x)
{
	int i,j;
	long eframes = x->windowbuf->b_frames;
	long frames = x->wavebuf->b_frames;
	float sr = x->sr;
	long horizon = x->horizon; // length of block for random events
	float mindur = x->mindur;
	float maxdur = x->maxdur;
	float minfreq = x->minfreq; // minimum frequency for a grain
	float maxfreq = x->maxfreq; // maximum frequency for a grain
	float minpan = x->minpan; // minimum pan for a grain
	float maxpan = x->maxpan; // maxium pan for a grain
	float minamp = x->minamp; // minimum amplitude for a grain
	float maxamp = x->maxamp; // maximum amplitude for a grain
	float transpose = x->transpose; // pitch scalar
    //	float steady_dur = x->steady_dur;
	short steady = x->steady;
	float pan;
	t_grain *grains = x->grains;
	short inserted;

	for( i = 0; i < x->events; i++ ){
		inserted = 0;
		for(j = 0; j < MAXGRAINS; j++ ){
			if( grains[j].ephase >= eframes ){
				if(steady){
					grains[j].delay = (float)(i * horizon) / (float) x->events ;
				} else {
    				grains[j].delay = granule_boundrand(0.0,(float) horizon);
    			}
   				grains[j].duration = (long) granule_boundrand(mindur, maxdur);
    			grains[j].phase = 0.0;
    			grains[j].ephase = 0.0;
    			pan = granule_boundrand(minpan, maxpan);
    			grains[j].panL = cos(pan * PIOVERTWO);
    			grains[j].panR = sin(pan * PIOVERTWO);
    			grains[j].amplitude = granule_boundrand(minamp, maxamp);
    			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
				grains[j].si = transpose * granule_boundrand(minfreq, maxfreq) * (float) frames / sr;
    			inserted = 1;
    			goto nextgrain;
    		}
		}
		if(! inserted){
			error("could not insert grain");
			return;
		}
    nextgrain: ;
	}
}

void *granule_grain(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	short inserted;
	int j;
	float duration, frequency, amplitude, pan;
	t_grain *grains;
	long eframes;
	long frames;
	float sr;

	grains = x->grains;
	eframes = x->windowbuf->b_frames;
	frames = x->wavebuf->b_frames;
	sr = x->sr;

	if(argc < 4){
		error("grain takes 4 arguments, not %d",argc);
		post("duration frequency amplitude pan");
		return 0;
	}
	duration = atom_getintarg(0,argc,argv);
	frequency = atom_getfloatarg(1,argc,argv); // in ms
	amplitude = atom_getfloatarg(2,argc,argv);
	pan = atom_getfloatarg(3,argc,argv);
	if(duration <= 0.0){
		error("illegal duration:%f",duration);
		return 0;
	}
	if(frequency <= 0.0){
		error("illegal frequency:%f",frequency);
		return 0;
	}
	if(pan < 0.0 || pan > 1.0){
		error("illegal pan:%f",pan);
		return 0;
	}
	inserted = 0;
	for(j = 0; j < MAXGRAINS; j++ ){
		if( grains[j].ephase >= eframes ){
			grains[j].delay = 0.0;// immediate deployment
			grains[j].duration = (long) (.001 * x->sr * duration);
			grains[j].phase = 0.0;
			grains[j].ephase = 0.0;
			grains[j].panL = cos(pan * PIOVERTWO);
			grains[j].panR = sin(pan * PIOVERTWO);
			grains[j].amplitude = amplitude;
			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
			grains[j].si = frequency * (float) frames / sr;
			return 0;
		}
	}
	
	error("could not insert grain");
	return 0;
	
}

float granule_boundrand(float min, float max)
{
	return min + (max-min) * ((float) (rand() % RAND_MAX)/ (float) RAND_MAX);
}


void *granule_new(t_symbol *msg, short argc, t_atom *argv)
{

    t_granule *x = (t_granule *)pd_new(granule_class);
    outlet_new(&x->x_obj, gensym("signal"));
    outlet_new(&x->x_obj, gensym("signal"));
    x->wavebuf = (t_pdbuffer*)malloc(sizeof(t_pdbuffer));
    x->windowbuf = (t_pdbuffer*)malloc(sizeof(t_pdbuffer));
	srand(time(0));
    
	x->pitchscale = (float *) t_getbytes(MAXSCALE * sizeof(float));
	x->grains = (t_grain *) t_getbytes(MAXGRAINS * sizeof(t_grain));
	
    
	// default names
	x->wavename = gensym("waveform");
	x->windowname = gensym("window");
    
	/* MaxMSP bug that may soon be fixed, this does not work:
     x->wavename = atom_getsymarg(0,argc,argv);
     x->windowname = atom_getsymarg(1,argc,argv); */
    
    // apparently Pd lacks this Max/MSP bug
	x->wavename = atom_getsymbolarg(0,argc,argv);
	x->windowname = atom_getsymbolarg(1,argc,argv);

    
	x->sr = sys_getsr();
	if(! x->sr )
		x->sr = 44100;
    
	granule_init(x,0);
    
    
    return (x);
}

void granule_init(t_granule *x,short initialized)
{
	int i;
	
	if(!initialized){
		x->pitchsteps = 0; // we could predefine a 12t scale
		x->mute = 0;
		x->steady = 0;
		x->events = 10;
		x->horizon_ms = 1000;
		x->minfreq = 220.0;
		x->maxfreq = 880.0;
		x->minpan = .1;
		x->maxpan = .9;
		x->minamp = .1;
		x->maxamp = 1.0;
		x->mindur_ms = 150;
		x->maxdur_ms = 750;
		x->transpose = 1.0;
		x->pitch_deviation = 0.0;
		x->lowblock_freq = 0.0; // by default we do not block any frequencies
		x->highblock_freq = 0.0; // ditto
		x->constrain_scale = 0;
	}
	x->horizon = x->horizon_ms * .001 * x->sr;
	x->mindur = x->mindur_ms * .001 * x->sr;
	x->maxdur = x->maxdur_ms * .001 * x->sr;
	for( i = 0; i < MAXGRAINS; i++ ){ // this is what we test for a legal place to insert grain
		x->grains[i].ephase = 9999999999.0;
	}
}

void granule_info(t_granule *x)
{
	int tcount = 0;
	t_grain *grains = x->grains;
	long eframes = x->windowbuf->b_frames;
	int i;
	
	for(i = 0; i < MAXGRAINS; i++ ){
		if( grains[i].ephase < eframes )
			++tcount;
	}
	post("%d active grains", tcount);
	post("wavename %s", x->wavename->s_name);
	post("windowname %s", x->windowname->s_name);
}


void *granule_grist(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	if(argc < 10 ){
		error("grist takes 10 arguments:");
		post("events horizon minfreq maxfreq minpan maxpan minamp maxamp mindur maxdur");
		return 0;
	}
	x->events = atom_getintarg(0,argc,argv);
	x->horizon_ms = atom_getfloatarg(1,argc,argv);
	x->minfreq = atom_getfloatarg(2,argc,argv);
	x->maxfreq = atom_getfloatarg(3,argc,argv);
	x->minpan = atom_getfloatarg(4,argc,argv);
	x->maxpan = atom_getfloatarg(5,argc,argv);
	x->minamp = atom_getfloatarg(6,argc,argv);
	x->maxamp = atom_getfloatarg(7,argc,argv);
	x->mindur_ms = atom_getfloatarg(8,argc,argv);
	x->maxdur_ms = atom_getfloatarg(9,argc,argv);
	
	x->mindur = .001 * x->sr * x->mindur_ms ;
	x->maxdur = .001 * x->sr * x->maxdur_ms;
	x->horizon = .001 * x->sr * x->horizon_ms;
	
	if(x->minfreq < 0){
		x->minfreq *= -1.0;
	}
	if(x->maxfreq < 0){
		x->maxfreq *= -1.0;
	}
	if(x->minpan < 0.0) {
		x->minpan = 0.0;
	}
	if(x->maxpan > 1.0) {
		x->maxpan = 1.0;
	}
	if(x->events < 0){
		x->events = 0;
	}
	return 0;
}


void granule_reload(t_granule *x)
{
	granule_setbuf(x, x->wavename, x->windowname);
}


void granule_setbuf(t_granule *x, t_symbol *wavename, t_symbol *windowname)
{
    t_garray *a;
    int frames;
    
    x->hosed = 0;
    x->wavebuf->b_frames = 0;
    x->windowbuf->b_frames = 0;
    x->wavebuf->b_nchans = 1;
    x->windowbuf->b_nchans = 1;
    if (!(a = (t_garray *)pd_findbyclass(wavename, garray_class))) {
        if (*wavename->s_name) pd_error(x, "granule~: %s: no such array", wavename->s_name);
        x->hosed = 1;
    }
    else if (!garray_getfloatwords(a, &frames, &x->wavebuf->b_samples)) {
        pd_error(x, "%s: bad template for granule~", wavename->s_name);
        x->hosed = 1;
    }
    else  {
        x->wavebuf->b_frames = frames;
        garray_usedindsp(a);
    }
    
    if (!(a = (t_garray *)pd_findbyclass(windowname, garray_class))) {
        if (*wavename->s_name) pd_error(x, "granule~: %s: no such array", windowname->s_name);
        x->hosed = 1;
    }
    else if (!garray_getfloatwords(a, &frames, &x->windowbuf->b_samples)) {
        pd_error(x, "%s: bad template for granule~", windowname->s_name);
        x->hosed = 1;
    }
    else  {
        x->windowbuf->b_frames = frames;
        garray_usedindsp(a);
    }
}


t_int *granule_performhose(t_int *w)
{
    //	t_granule *x = (t_granule *) (w[1]);
	float *outputL = (t_float *)(w[3]);
	float *outputR = (t_float *)(w[4]);
	int n = (int) w[5];
	while(n--) *outputL++ = *outputR++ = 0;
	return (w+6);
}

t_int *granule_perform(t_int *w)
{
	t_granule *x = (t_granule *) (w[1]);
    //	float *in = (t_float *)(w[2]); // ignoring input
	float *outputL = (t_float *)(w[3]);
	float *outputR = (t_float *)(w[4]);
	int n = (int) w[5];

	t_pdbuffer *wavebuf = x->wavebuf;
	t_pdbuffer *windowbuf = x->windowbuf;
	t_word *wavetable = wavebuf->b_samples;
	t_word *window = windowbuf->b_samples;
	t_grain *grains = x->grains;
	float sample;
	float envelope;
	float amplitude;
	float panL, panR;
	float si;
	float esi;
	float phase;
	float ephase;
	long delay;
	long frames = wavebuf->b_frames;
	long eframes = windowbuf->b_frames;
	int i,j;
	
    
    
	/* grain parameters */
    
    
	if( x->mute ){
		while(n--) *outputL++ = *outputR++ = 0;
		return (w+6);
	}
    
    // pre-clean buffer
	for( i = 0; i < n; i++ ){
		outputL[i] = outputR[i] = 0;
	}
    
	for (j=0; j<MAXGRAINS; j++) {
        
		if(grains[j].ephase >= eframes){
			goto nextgrain;
		}
		amplitude = grains[j].amplitude;
		si =  grains[j].si;
		esi = grains[j].esi;
		phase =  grains[j].phase;
		ephase = grains[j].ephase;
		delay =  grains[j].delay;
		panL = grains[j].panL;
		panR = grains[j].panR;
        
		
		for(i = 0; i < n; i++ ){
			// ++(x->sampcount); // not really needed
			if( delay > 0 ){
				--delay;
			}
			if( delay <= 0 && ephase < eframes){
				sample = wavetable[(int)phase].w_float;
                
				envelope = amplitude * window[(int)ephase].w_float;
				sample *= envelope;
				outputL[i] += panL * sample;
				outputR[i] += panR * sample;
				phase += si;
				ephase += esi;
				while( phase >= frames )
					phase -= frames;
                
				if( ephase >= eframes ){
					grains[j].ephase = ephase;
					goto nextgrain; // must escape loop now
				}
                
			}
		}
		grains[j].phase = phase;
		grains[j].ephase = ephase;
		grains[j].delay = delay;
		
    nextgrain: ;
	}
    
	return (w+6);
    
    
}

void granule_dsp_free(t_granule *x)
{

	t_freebytes(x->grains, MAXGRAINS * sizeof(t_grain));
	t_freebytes(x->pitchscale, MAXSCALE * sizeof(float));
}

void granule_dsp(t_granule *x, t_signal **sp)
{
    
	granule_reload(x);
	
	if( x->hosed ){
		post("You need some valid buffers");
		dsp_add(granule_performhose, 5, x,
                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
		return;
	}
	if( x->sr != sp[0]->s_sr){
		x->sr = sp[0]->s_sr;
		if( !x->sr ){
			post("warning: zero sampling rate!");
			x->sr = 44100;
		}
		granule_init(x,1);
	} 
	dsp_add(granule_perform, 5, x, 
			sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
}

\ No newline at end of file
+#include "MSPd.h"

#define MAXGRAINS (512) // just for present to get lower overhead

#define MAXSCALE (8192)
#define OBJECT_NAME "granule~"


static t_class *granule_class;


typedef struct {
    float amplitude;
    float panL;
    float panR;
    long delay; // samples to wait until event starts
    long duration;// length in samples of event
    float phase; // phase for frequency oscillator
    float ephase; // phase for envelope
    float si; // sampling increment for frequency
    float esi; // sampling increment for envelope
} t_grain;

typedef struct {
	t_word *b_samples;
	long b_frames;
	long b_nchans;
} t_pdbuffer;


typedef struct _granule
{
    
    t_object x_obj;
    float x_f;
    t_pdbuffer *wavebuf; // holds waveform samples
    t_pdbuffer *windowbuf; // holds window samples
	t_symbol *wavename; // name of waveform buffer
	t_symbol *windowname; // name of window buffer
    
	float sr; // sampling rate
	short mute;
	short hosed; // buffers are bad
	/* Global grain data*/
	long events; // number of events in a block
	long horizon; // length of block for random events
	float minfreq; // minimum frequency for a grain
	float maxfreq; // maximum frequency for a grain
	float minpan; // minimum pan for a grain
	float maxpan; // maxium pan for a grain
	float minamp; // minimum amplitude for a grain
	float maxamp; // maximum amplitude for a grain
	float mindur; // minumum duration for a grain
	float maxdur; // maximum duration for a grain
	t_grain *grains; // stores grain data
	float *pitchscale; // contains a frequency grid for pitch constraint
	int pitchsteps; // number of members in scale
	float transpose; // factor for scaling all pitches
	float pitch_deviation; // factor to adjust scaled pitches
	short steady; // toggles pulsed rhythmic activity
	float lowblock_freq; //lowest allowed frequency
	float highblock_freq;// highest allowed frequency
	float mindur_ms;//store duration in ms
	float maxdur_ms;//ditto
	float horizon_ms;//ditto
	short constrain_scale;//flag to only use bounded portion of scale rather than all of it
} t_granule;

void granule_setbuf(t_granule *x, t_symbol *wavename, t_symbol *windowname);
void *granule_new(t_symbol *msg, short argc, t_atom *argv);
t_int *granule_perform(t_int *w);
t_int *granule_performhose(t_int *w);
void granule_dsp(t_granule *x, t_signal **sp);
void granule_reload(t_granule *x);
void granule_spray(t_granule *x);
void granule_pitchspray(t_granule *x);
void granule_transpose(t_granule *x, t_floatarg t);
void granule_pitchdev(t_granule *x, t_floatarg d);
void granule_lowblock(t_granule *x, t_floatarg f);
void granule_highblock(t_granule *x, t_floatarg f);
void granule_events(t_granule *x, t_floatarg e);
float granule_boundrand(float min, float max);
void *granule_grist(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void *granule_grain(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void *granule_setscale(t_granule *x, t_symbol *msg, short argc, t_atom *argv);
void granule_info(t_granule *x);
void granule_mute(t_granule *x, t_floatarg toggle);
void granule_steady(t_granule *x, t_floatarg toggle);
void granule_constrain_scale(t_granule *x, t_floatarg toggle);
void granule_dsp_free(t_granule *x);
void granule_init(t_granule *x,short initialized);
void granule_constrain(int *index_min, int *index_max, float minfreq, float maxfreq, float *scale, int steps);

void granule_tilde_setup(void){
    granule_class = class_new(gensym("granule~"), (t_newmethod)granule_new,
                              (t_method)granule_dsp_free,sizeof(t_granule), 0,A_GIMME,0);
    CLASS_MAINSIGNALIN(granule_class, t_granule, x_f);
    class_addmethod(granule_class,(t_method)granule_dsp,gensym("dsp"),0);
    class_addmethod(granule_class,(t_method)granule_mute,gensym("mute"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_setbuf,gensym("setbuf"),A_DEFSYM,A_DEFSYM,0);
    class_addmethod(granule_class,(t_method)granule_spray,gensym("spray"),0);
    class_addmethod(granule_class,(t_method)granule_info,gensym("info"),0);
    class_addmethod(granule_class,(t_method)granule_pitchspray,gensym("pitchspray"),0);
    class_addmethod(granule_class,(t_method)granule_transpose,gensym("transpose"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_events,gensym("events"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_pitchdev,gensym("pitchdev"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_lowblock,gensym("lowblock"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_highblock,gensym("highblock"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_steady,gensym("steady"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_constrain_scale,gensym("constrain_scale"),A_FLOAT,0);
    class_addmethod(granule_class,(t_method)granule_grist,gensym("grist"),A_GIMME,0);
    class_addmethod(granule_class,(t_method)granule_grain,gensym("grain"),A_GIMME,0);
    class_addmethod(granule_class,(t_method)granule_setscale,gensym("setscale"),A_GIMME,0);
    potpourri_announce(OBJECT_NAME);
}

void granule_constrain_scale(t_granule *x, t_floatarg toggle)
{
	x->constrain_scale = toggle;
}
void granule_lowblock(t_granule *x, t_floatarg f)
{
	if(f > 0){
		x->lowblock_freq = f;
	}
}

void granule_highblock(t_granule *x, t_floatarg f)
{
	if(f > 0){
		x->highblock_freq = f;
	}
}

void granule_pitchdev(t_granule *x, t_floatarg d)
{
	if(d < 0 ){
		error("pitch deviation must be positive");
		return;
	}
	x->pitch_deviation = d;
}

void granule_mute(t_granule *x, t_floatarg toggle)
{
	x->mute = toggle;
}

void granule_steady(t_granule *x, t_floatarg toggle)
{
	x->steady = toggle;
}

void granule_events(t_granule *x, t_floatarg e)
{
	if( e <= 0 ){
		post("events must be positive!");
		return;
	}
	x->events = e;
    //	x->steady_dur = x->horizon / (float) x->events;
}

void granule_transpose(t_granule *x, t_floatarg t)
{
	if( t <= 0 ){
		error("transpose factor must be greater than zero!");
		return;
	}
	x->transpose = t;
}

void *granule_setscale(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	int i;
	float *pitchscale = x->pitchscale;
	if( argc >= MAXSCALE ){
		error("%d is the maximum size scale", MAXSCALE);
		return 0;
	}
	if( argc < 2 ){
		error("there must be at least 2 members in scale");
		return 0;
	}
	for(i=0; i < argc; i++){
		pitchscale[i] = atom_getfloatarg(i,argc,argv);
	}
	x->pitchsteps = argc;
    //	post("read %d values into scale", x->pitchsteps);
    return 0;
}

void granule_constrain(int *index_min, int *index_max, float minfreq, float maxfreq, float *scale, int steps)
{
	int imax = steps - 1;
	int imin = 0;
	while(scale[imin] < minfreq && imin < imax){
		++imin;
	}
	if(imin == imax){
        //		post("could not constrain minimum index  - your grist parameters are out of range for this scale");
		*index_min = 0;
		*index_max = steps - 1;
		return;
	}
    while(scale[imax] > maxfreq && imax > 0){
		--imax;
	}
	if(imax < 1 || imax <= imin){
        //		post("could not constrain maximum index - your grist parameters are out of range for this scale");
		*index_min = 0;
		*index_max = steps - 1;
		return;
	}
	*index_min = imin;
	*index_max = imax;
}

void granule_pitchspray(t_granule *x)
{
	int i,j;
    
	long eframes = x->windowbuf->b_frames;
	long frames = x->wavebuf->b_frames;
	float sr = x->sr;
	long horizon = x->horizon; // length of block for random events
	float mindur = x->mindur;
	float maxdur = x->maxdur;
	float minfreq = x->minfreq; // minimum frequency for a grain
	float maxfreq = x->maxfreq; // maximum frequency for a grain
	float minpan = x->minpan; // minimum pan for a grain
	float maxpan = x->maxpan; // maxium pan for a grain
	float minamp = x->minamp; // minimum amplitude for a grain
	float maxamp = x->maxamp; // maximum amplitude for a grain
	float transpose = x->transpose; // pitch scalar
	float lowblock_freq = x->lowblock_freq;
	float highblock_freq = x->highblock_freq;
	short steady = x->steady;
	float pitch_deviation = x->pitch_deviation;
	float pdev = 0;
	float pdev_invert = 0;
    //	float pscale;
	float pan;
	int index_min, index_max;
	int steps = x->pitchsteps;
	float *scale = x->pitchscale;
	int windex;
	short inserted = 0;
	short constrain_scale = x->constrain_scale;
	t_grain *grains = x->grains;
    
    
	if( steps < 2 ){
		error("scale is undefined");
		return;
	}
	if( pitch_deviation ){
		pdev = 1.0 + pitch_deviation;
		pdev_invert = 1.0 / pdev;
	}
	for( i = 0; i < x->events; i++ ){
		inserted = 0;
		for(j = 0; j < MAXGRAINS; j++ ){
			if( grains[j].ephase >= eframes ){
				if(steady){
					grains[j].delay = (float)(i * horizon) / (float) x->events ;
				} else {
    				grains[j].delay = granule_boundrand(0.0,(float) horizon);
    			}
    			grains[j].duration = (long) granule_boundrand(mindur, maxdur);
    			grains[j].phase = 0.0;
    			grains[j].ephase = 0.0;
    			pan = granule_boundrand(minpan, maxpan);
    			grains[j].panL = cos(pan * PIOVERTWO);
    			grains[j].panR = sin(pan * PIOVERTWO);
    			grains[j].amplitude = granule_boundrand(minamp, maxamp);
    			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
				if(constrain_scale){
					granule_constrain(&index_min,&index_max,minfreq, maxfreq, scale, steps);
					windex = (int) granule_boundrand((float)index_min, (float)index_max);
				} else {
					windex = (int) granule_boundrand(0.0, (float)(steps-1));
				}
    			grains[j].si = transpose * scale[windex] * (float) frames / sr;
    			if( pitch_deviation ){
    				grains[j].si *= granule_boundrand(pdev_invert,pdev);
    			}
    			/* must add this code to spray, and also do for high frequencies
                 */
    			if(lowblock_freq > 0.0) {
    				if(grains[j].si * (sr/frames) < lowblock_freq){
    					post("lowblock: aborted grain with %f frequency",grains[j].si * (sr/frames));
    					grains[j].ephase = eframes; // abort grain
    				}
    			}
    			if(highblock_freq > 0.0) {
    				if(grains[j].si * (sr/frames) > highblock_freq){
    					post("highblock: aborted grain with %f frequency, greater than %f",
                             grains[j].si * (sr/frames), highblock_freq);
    					grains[j].ephase = eframes; // abort grain
    				}
    			}
    			inserted = 1;
    			goto nextgrain;
    		}
		}
		if(!inserted){
			error("could not insert grain");
			return;
		}
    nextgrain: ;
	}
}

void granule_spray(t_granule *x)
{
	int i,j;
	long eframes = x->windowbuf->b_frames;
	long frames = x->wavebuf->b_frames;
	float sr = x->sr;
	long horizon = x->horizon; // length of block for random events
	float mindur = x->mindur;
	float maxdur = x->maxdur;
	float minfreq = x->minfreq; // minimum frequency for a grain
	float maxfreq = x->maxfreq; // maximum frequency for a grain
	float minpan = x->minpan; // minimum pan for a grain
	float maxpan = x->maxpan; // maxium pan for a grain
	float minamp = x->minamp; // minimum amplitude for a grain
	float maxamp = x->maxamp; // maximum amplitude for a grain
	float transpose = x->transpose; // pitch scalar
    //	float steady_dur = x->steady_dur;
	short steady = x->steady;
	float pan;
	t_grain *grains = x->grains;
	short inserted;

	for( i = 0; i < x->events; i++ ){
		inserted = 0;
		for(j = 0; j < MAXGRAINS; j++ ){
			if( grains[j].ephase >= eframes ){
				if(steady){
					grains[j].delay = (float)(i * horizon) / (float) x->events ;
				} else {
    				grains[j].delay = granule_boundrand(0.0,(float) horizon);
    			}
   				grains[j].duration = (long) granule_boundrand(mindur, maxdur);
    			grains[j].phase = 0.0;
    			grains[j].ephase = 0.0;
    			pan = granule_boundrand(minpan, maxpan);
    			grains[j].panL = cos(pan * PIOVERTWO);
    			grains[j].panR = sin(pan * PIOVERTWO);
    			grains[j].amplitude = granule_boundrand(minamp, maxamp);
    			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
				grains[j].si = transpose * granule_boundrand(minfreq, maxfreq) * (float) frames / sr;
    			inserted = 1;
    			goto nextgrain;
    		}
		}
		if(! inserted){
			error("could not insert grain");
			return;
		}
    nextgrain: ;
	}
}

void *granule_grain(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	short inserted;
	int j;
	float duration, frequency, amplitude, pan;
	t_grain *grains;
	long eframes;
	long frames;
	float sr;

	grains = x->grains;
	eframes = x->windowbuf->b_frames;
	frames = x->wavebuf->b_frames;
	sr = x->sr;

	if(argc < 4){
		error("grain takes 4 arguments, not %d",argc);
		post("duration frequency amplitude pan");
		return 0;
	}
	duration = atom_getintarg(0,argc,argv);
	frequency = atom_getfloatarg(1,argc,argv); // in ms
	amplitude = atom_getfloatarg(2,argc,argv);
	pan = atom_getfloatarg(3,argc,argv);
	if(duration <= 0.0){
		error("illegal duration:%f",duration);
		return 0;
	}
	if(frequency <= 0.0){
		error("illegal frequency:%f",frequency);
		return 0;
	}
	if(pan < 0.0 || pan > 1.0){
		error("illegal pan:%f",pan);
		return 0;
	}
	inserted = 0;
	for(j = 0; j < MAXGRAINS; j++ ){
		if( grains[j].ephase >= eframes ){
			grains[j].delay = 0.0;// immediate deployment
			grains[j].duration = (long) (.001 * x->sr * duration);
			grains[j].phase = 0.0;
			grains[j].ephase = 0.0;
			grains[j].panL = cos(pan * PIOVERTWO);
			grains[j].panR = sin(pan * PIOVERTWO);
			grains[j].amplitude = amplitude;
			grains[j].esi =  (float) eframes / (float) grains[j].duration ;
			grains[j].si = frequency * (float) frames / sr;
			return 0;
		}
	}
	
	error("could not insert grain");
	return 0;
	
}

float granule_boundrand(float min, float max)
{
	return min + (max-min) * ((float) (rand() % RAND_MAX)/ (float) RAND_MAX);
}


void *granule_new(t_symbol *msg, short argc, t_atom *argv)
{

    t_granule *x = (t_granule *)pd_new(granule_class);
    outlet_new(&x->x_obj, gensym("signal"));
    outlet_new(&x->x_obj, gensym("signal"));
    x->wavebuf = (t_pdbuffer*)malloc(sizeof(t_pdbuffer));
    x->windowbuf = (t_pdbuffer*)malloc(sizeof(t_pdbuffer));
	srand(time(0));
    
	x->pitchscale = (float *) t_getbytes(MAXSCALE * sizeof(float));
	x->grains = (t_grain *) t_getbytes(MAXGRAINS * sizeof(t_grain));
	
    
	// default names
	x->wavename = gensym("waveform");
	x->windowname = gensym("window");
    
	/* MaxMSP bug that may soon be fixed, this does not work:
     x->wavename = atom_getsymarg(0,argc,argv);
     x->windowname = atom_getsymarg(1,argc,argv); */
    
    // apparently Pd lacks this Max/MSP bug
	x->wavename = atom_getsymbolarg(0,argc,argv);
	x->windowname = atom_getsymbolarg(1,argc,argv);

    
	x->sr = sys_getsr();
	if(! x->sr )
		x->sr = 44100;
    
	granule_init(x,0);
    
    
    return (x);
}

void granule_init(t_granule *x,short initialized)
{
	int i;
	
	if(!initialized){
		x->pitchsteps = 0; // we could predefine a 12t scale
		x->mute = 0;
		x->steady = 0;
		x->events = 10;
		x->horizon_ms = 1000;
		x->minfreq = 220.0;
		x->maxfreq = 880.0;
		x->minpan = .1;
		x->maxpan = .9;
		x->minamp = .1;
		x->maxamp = 1.0;
		x->mindur_ms = 150;
		x->maxdur_ms = 750;
		x->transpose = 1.0;
		x->pitch_deviation = 0.0;
		x->lowblock_freq = 0.0; // by default we do not block any frequencies
		x->highblock_freq = 0.0; // ditto
		x->constrain_scale = 0;
	}
	x->horizon = x->horizon_ms * .001 * x->sr;
	x->mindur = x->mindur_ms * .001 * x->sr;
	x->maxdur = x->maxdur_ms * .001 * x->sr;
	for( i = 0; i < MAXGRAINS; i++ ){ // this is what we test for a legal place to insert grain
		x->grains[i].ephase = 9999999999.0;
	}
}

void granule_info(t_granule *x)
{
	int tcount = 0;
	t_grain *grains = x->grains;
	long eframes = x->windowbuf->b_frames;
	int i;
	
	for(i = 0; i < MAXGRAINS; i++ ){
		if( grains[i].ephase < eframes )
			++tcount;
	}
	post("%d active grains", tcount);
	post("wavename %s", x->wavename->s_name);
	post("windowname %s", x->windowname->s_name);
}


void *granule_grist(t_granule *x, t_symbol *msg, short argc, t_atom *argv)
{
	if(argc < 10 ){
		error("grist takes 10 arguments:");
		post("events horizon minfreq maxfreq minpan maxpan minamp maxamp mindur maxdur");
		return 0;
	}
	x->events = atom_getintarg(0,argc,argv);
	x->horizon_ms = atom_getfloatarg(1,argc,argv);
	x->minfreq = atom_getfloatarg(2,argc,argv);
	x->maxfreq = atom_getfloatarg(3,argc,argv);
	x->minpan = atom_getfloatarg(4,argc,argv);
	x->maxpan = atom_getfloatarg(5,argc,argv);
	x->minamp = atom_getfloatarg(6,argc,argv);
	x->maxamp = atom_getfloatarg(7,argc,argv);
	x->mindur_ms = atom_getfloatarg(8,argc,argv);
	x->maxdur_ms = atom_getfloatarg(9,argc,argv);
	
	x->mindur = .001 * x->sr * x->mindur_ms ;
	x->maxdur = .001 * x->sr * x->maxdur_ms;
	x->horizon = .001 * x->sr * x->horizon_ms;
	
	if(x->minfreq < 0){
		x->minfreq *= -1.0;
	}
	if(x->maxfreq < 0){
		x->maxfreq *= -1.0;
	}
	if(x->minpan < 0.0) {
		x->minpan = 0.0;
	}
	if(x->maxpan > 1.0) {
		x->maxpan = 1.0;
	}
	if(x->events < 0){
		x->events = 0;
	}
	return 0;
}


void granule_reload(t_granule *x)
{
	granule_setbuf(x, x->wavename, x->windowname);
}


void granule_setbuf(t_granule *x, t_symbol *wavename, t_symbol *windowname)
{
    t_garray *a;
    int frames;
    
    x->hosed = 0;
    x->wavebuf->b_frames = 0;
    x->windowbuf->b_frames = 0;
    x->wavebuf->b_nchans = 1;
    x->windowbuf->b_nchans = 1;
    if (!(a = (t_garray *)pd_findbyclass(wavename, garray_class))) {
        if (*wavename->s_name) pd_error(x, "granule~: %s: no such array", wavename->s_name);
        x->hosed = 1;
    }
    else if (!garray_getfloatwords(a, &frames, &x->wavebuf->b_samples)) {
        pd_error(x, "%s: bad template for granule~", wavename->s_name);
        x->hosed = 1;
    }
    else  {
        x->wavebuf->b_frames = frames;
        garray_usedindsp(a);
    }
    
    if (!(a = (t_garray *)pd_findbyclass(windowname, garray_class))) {
        if (*wavename->s_name) pd_error(x, "granule~: %s: no such array", windowname->s_name);
        x->hosed = 1;
    }
    else if (!garray_getfloatwords(a, &frames, &x->windowbuf->b_samples)) {
        pd_error(x, "%s: bad template for granule~", windowname->s_name);
        x->hosed = 1;
    }
    else  {
        x->windowbuf->b_frames = frames;
        garray_usedindsp(a);
    }
}


t_int *granule_performhose(t_int *w)
{
    //	t_granule *x = (t_granule *) (w[1]);
	float *outputL = (t_float *)(w[3]);
	float *outputR = (t_float *)(w[4]);
	int n = (int) w[5];
	while(n--) *outputL++ = *outputR++ = 0;
	return (w+6);
}

t_int *granule_perform(t_int *w)
{
	t_granule *x = (t_granule *) (w[1]);
    //	float *in = (t_float *)(w[2]); // ignoring input
	float *outputL = (t_float *)(w[3]);
	float *outputR = (t_float *)(w[4]);
	int n = (int) w[5];

	t_pdbuffer *wavebuf = x->wavebuf;
	t_pdbuffer *windowbuf = x->windowbuf;
	t_word *wavetable = wavebuf->b_samples;
	t_word *window = windowbuf->b_samples;
	t_grain *grains = x->grains;
	float sample;
	float envelope;
	float amplitude;
	float panL, panR;
	float si;
	float esi;
	float phase;
	float ephase;
	long delay;
	long frames = wavebuf->b_frames;
	long eframes = windowbuf->b_frames;
	int i,j;
	
    
    
	/* grain parameters */
    
    
	if( x->mute ){
		while(n--) *outputL++ = *outputR++ = 0;
		return (w+6);
	}
    
    // pre-clean buffer
	for( i = 0; i < n; i++ ){
		outputL[i] = outputR[i] = 0;
	}
    
	for (j=0; j<MAXGRAINS; j++) {
        
		if(grains[j].ephase >= eframes){
			goto nextgrain;
		}
		amplitude = grains[j].amplitude;
		si =  grains[j].si;
		esi = grains[j].esi;
		phase =  grains[j].phase;
		ephase = grains[j].ephase;
		delay =  grains[j].delay;
		panL = grains[j].panL;
		panR = grains[j].panR;
        
		
		for(i = 0; i < n; i++ ){
			// ++(x->sampcount); // not really needed
			if( delay > 0 ){
				--delay;
			}
			if( delay <= 0 && ephase < eframes){
				sample = wavetable[(int)phase].w_float;
                
				envelope = amplitude * window[(int)ephase].w_float;
				sample *= envelope;
				outputL[i] += panL * sample;
				outputR[i] += panR * sample;
				phase += si;
				ephase += esi;
				while( phase >= frames )
					phase -= frames;
                
				if( ephase >= eframes ){
					grains[j].ephase = ephase;
					goto nextgrain; // must escape loop now
				}
                
			}
		}
		grains[j].phase = phase;
		grains[j].ephase = ephase;
		grains[j].delay = delay;
		
    nextgrain: ;
	}
    
	return (w+6);
    
    
}

void granule_dsp_free(t_granule *x)
{

	t_freebytes(x->grains, MAXGRAINS * sizeof(t_grain));
	t_freebytes(x->pitchscale, MAXSCALE * sizeof(float));
}

void granule_dsp(t_granule *x, t_signal **sp)
{
    
	granule_reload(x);
	
	if( x->hosed ){
		post("You need some valid buffers");
		dsp_add(granule_performhose, 5, x,
                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
		return;
	}
	if( x->sr != sp[0]->s_sr){
		x->sr = sp[0]->s_sr;
		if( !x->sr ){
			post("warning: zero sampling rate!");
			x->sr = 44100;
		}
		granule_init(x,1);
	} 
	dsp_add(granule_perform, 5, x, 
			sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
}

diff --git a/externals/lyonpotpourri/kbuffer~.c b/externals/lyonpotpourri/kbuffer~.c
index 1e949bb88..86584acec 100755
--- a/externals/lyonpotpourri/kbuffer~.c
+++ b/externals/lyonpotpourri/kbuffer~.c
@@ -304,7 +304,7 @@ void kbuffer_dsp(t_kbuffer *x, t_signal **sp)
         kbuffer_init(x,1);
 	}
    	dsp_add(kbuffer_perform, 5, x,
-            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
     
 }
 
diff --git a/externals/lyonpotpourri/killdc~.c b/externals/lyonpotpourri/killdc~.c
index 864b7a297..e7822fa68 100755
--- a/externals/lyonpotpourri/killdc~.c
+++ b/externals/lyonpotpourri/killdc~.c
@@ -114,6 +114,6 @@ t_int *killdc_perform(t_int *w)
 
 void killdc_dsp(t_killdc *x, t_signal **sp)
 {
-    dsp_add(killdc_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec,  sp[0]->s_n);
+    dsp_add(killdc_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/latch~.c b/externals/lyonpotpourri/latch~.c
index b67c27b29..0ed17b0c1 100755
--- a/externals/lyonpotpourri/latch~.c
+++ b/externals/lyonpotpourri/latch~.c
@@ -107,5 +107,5 @@ static void latch_dsp(t_latch *x, t_signal **sp)
 		x->sr = sp[0]->s_sr;
 		x->dsamps = x->duration * x->sr;
 	}
-    dsp_add(latch_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(latch_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/magfreq_analysis~.c b/externals/lyonpotpourri/magfreq_analysis~.c
index bb85d9a86..cf90a4d8a 100755
--- a/externals/lyonpotpourri/magfreq_analysis~.c
+++ b/externals/lyonpotpourri/magfreq_analysis~.c
@@ -433,6 +433,6 @@ void magfreq_analysis_dsp(t_magfreq_analysis *x, t_signal **sp)
 	
 	dsp_add(magfreq_analysis_perform, 6, x,
 			sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
-			sp[0]->s_n);
+			(t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/markov~.c b/externals/lyonpotpourri/markov~.c
index c54b45bfc..a2ce83e63 100755
--- a/externals/lyonpotpourri/markov~.c
+++ b/externals/lyonpotpourri/markov~.c
@@ -285,6 +285,6 @@ void markov_dsp(t_markov *x, t_signal **sp)
         x->count = 0;
     }
     dsp_add(markov_perform, 5, x, sp[0]->s_vec , sp[1]->s_vec, sp[2]->s_vec, 
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/mask~.c b/externals/lyonpotpourri/mask~.c
index 6dd0b4f25..276f6d3e5 100755
--- a/externals/lyonpotpourri/mask~.c
+++ b/externals/lyonpotpourri/mask~.c
@@ -358,6 +358,6 @@ out:
 
 void mask_dsp(t_mask *x, t_signal **sp)
 {
-    dsp_add(mask_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(mask_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/oscil~.c b/externals/lyonpotpourri/oscil~.c
index 88dd3abb1..d2b3791e5 100755
--- a/externals/lyonpotpourri/oscil~.c
+++ b/externals/lyonpotpourri/oscil~.c
@@ -782,7 +782,7 @@ void oscil_dsp(t_oscil *x, t_signal **sp)
 	x->phase = 0.0;
     
 	dsp_add(oscil_perform_interpolate, 5, x, 
-			sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+			sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
     
 	
 }
diff --git a/externals/lyonpotpourri/phasemod~.c b/externals/lyonpotpourri/phasemod~.c
index 2bcb54c1b..4ad9acf25 100755
--- a/externals/lyonpotpourri/phasemod~.c
+++ b/externals/lyonpotpourri/phasemod~.c
@@ -162,6 +162,6 @@ void phasemod_dsp(t_phasemod *x, t_signal **sp)
 		x->sr = sp[0]->s_sr;
 		x->si_fac = 1.0/x->sr;
 	}
-	dsp_add(phasemod_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,  sp[0]->s_n);
+	dsp_add(phasemod_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,  (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/player~.c b/externals/lyonpotpourri/player~.c
index dee10cd60..3182a8020 100755
--- a/externals/lyonpotpourri/player~.c
+++ b/externals/lyonpotpourri/player~.c
@@ -513,10 +513,10 @@ void player_dsp(t_player *x, t_signal **sp)
 	
 	if(x->hosed)
 		dsp_add(player_perform_hosed1, 5, x, 
-				sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+				sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 	else{
 		dsp_add(player_perform_mono_interpol, 5, x, 
-				sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);	
+				sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 	}
 	
 }
diff --git a/externals/lyonpotpourri/poltocar~.c b/externals/lyonpotpourri/poltocar~.c
index d7e0de291..e6a0b0a5d 100755
--- a/externals/lyonpotpourri/poltocar~.c
+++ b/externals/lyonpotpourri/poltocar~.c
@@ -63,5 +63,5 @@ t_int *poltocar_perform(t_int *w)
 void poltocar_dsp(t_poltocar *x, t_signal **sp)
 {
     dsp_add(poltocar_perform,6, x,
-            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+            sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 }
diff --git a/externals/lyonpotpourri/pulser~.c b/externals/lyonpotpourri/pulser~.c
index 4e64c32af..1771b850a 100755
--- a/externals/lyonpotpourri/pulser~.c
+++ b/externals/lyonpotpourri/pulser~.c
@@ -208,7 +208,7 @@ void pulser_dsp(t_pulser *x, t_signal **sp)
 
   	x->connected[i] = 1;
   }
-  dsp_add(pulser_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+  dsp_add(pulser_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/lyonpotpourri/quadpan~.c b/externals/lyonpotpourri/quadpan~.c
index a43c02c07..eb08e1d1a 100755
--- a/externals/lyonpotpourri/quadpan~.c
+++ b/externals/lyonpotpourri/quadpan~.c
@@ -1 +1 @@
-#include "MSPd.h"
#define OBJECT_NAME "quadpan~"
/*
 
 Front
 
 *out1         *out3
 
 
 
 *out2         *out4
 
 Back
 
 */

static t_class  *quadpan_class;


typedef struct _quadpan
{
    t_object x_obj;
    t_float x_f;
//    short bypass;
//    float pi_over_two;
//    float twopi;
    float *in;
    float *Xin;
    float *Yin;
} t_quadpan;

void *quadpan_new(t_symbol *s, int argc, t_atom *argv);
t_int *offset_perform(t_int *w);
t_int *quadpan_perform(t_int *w);
void quadpan_dsp(t_quadpan *x, t_signal **sp);
void quadpan_showstate( t_quadpan *x );
void quadpan_free(t_quadpan *x);
void quadpan_tilde_setup(void)
{
	quadpan_class = class_new(gensym("quadpan~"), (t_newmethod)quadpan_new, (t_method)quadpan_free,sizeof(t_quadpan),0,A_GIMME,0);
	CLASS_MAINSIGNALIN(quadpan_class, t_quadpan, x_f);
	class_addmethod(quadpan_class, (t_method)quadpan_dsp, gensym("dsp"), A_CANT, 0);
    
	potpourri_announce(OBJECT_NAME);
}

void *quadpan_new(t_symbol *s, int argc, t_atom *argv)
{
    int i;
    t_quadpan *x = (t_quadpan *)pd_new(quadpan_class);
    
    
    for(i = 0; i < 2; i++){
        inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"),gensym("signal"));
    }
    for(i = 0; i < 4; i++){
        outlet_new(&x->x_obj, gensym("signal"));
    }
    x->in = (float *) malloc(8192 * sizeof(float));
    x->Xin = (float *) malloc(8192 * sizeof(float));
    x->Yin = (float *) malloc(8192 * sizeof(float));
//    x->pi_over_two = 1.5707963267948965;
//    x->twopi = 6.283185307179586;
    
    return x;
}
void quadpan_free(t_quadpan *x)
{
    free(x->in);
    free(x->Xin);
    free(x->Yin);
}

t_int *quadpan_perform(t_int *w)
{
    float gain1, gain2, gain3, gain4;
    float xval, yval;
    float xsquared, ysquared, ix, iy, ixsquared, iysquared;
    int i;
    
    t_quadpan *x = (t_quadpan *) (w[1]);
    float *in = x->in;
    float *Xin = x->Xin;
    float *Yin = x->Yin;
    
    float *in_loc = (t_float *)(w[2]);
    float *Xin_loc = (t_float *)(w[3]);
    float *Yin_loc = (t_float *)(w[4]);
    
    float *out1 = (t_float *)(w[5]);
    float *out2 = (t_float *)(w[6]);
    float *out3 = (t_float *)(w[7]);
    float *out4 = (t_float *)(w[8]);
    int n = (int)(w[9]);
    
    // copy buffers to avoid writeovers in shared memory
    for(i = 0; i < n; i++){
        in[i] = in_loc[i];
        Xin[i] = Xin_loc[i];
        Yin[i] = Yin_loc[i];
    }
    
    while( n-- ){
        xval = *Xin++;
        yval = *Yin++;
        if( xval < 0.0 )
            xval = 0.0;
        if( yval > 1.0 )
            yval = 1.0;
        if( yval < 0.0 )
            yval = 0.0;
        if( yval > 1.0 )
            yval = 1.0;
        
        xsquared = xval * xval;
        ysquared = yval * yval;
        ix = 1.0 - xval;
        iy = 1.0 - yval;
        ixsquared = ix * ix;
        iysquared = iy * iy;
        
        gain1 = sqrt( xsquared + ysquared );
        if( gain1 > 1.0 )
            gain1 = 1.0;
        gain1 = 1.0 - gain1; /* Left Rear Gain */
        
        
        gain2 = sqrt( ixsquared + ysquared );
        if( gain2 > 1.0 )
            gain2 = 1.0;
        gain2 = 1.0 - gain2; /* Right Rear Gain */
        
        gain3 = sqrt( xsquared + iysquared );
        if( gain3 > 1.0 )
            gain3 = 1.0;
        gain3 = 1.0 - gain3; /* Left Front Gain */
        
        
        gain4 = sqrt( ixsquared + iysquared ) ;
        if( gain4 > 1.0 )
            gain4 = 1.0;
        gain4 = 1.0 - gain4; /* Right Front Gain*/
        
        *out1++ = *in * gain3;
        *out2++ = *in * gain4;
        *out3++ = *in * gain2;
        *out4++ = *in++ * gain1;
    }
    
    return (w+10);
}



void quadpan_dsp(t_quadpan *x, t_signal **sp)
{
    if( ! sp[0]->s_sr ){
        return;
    }
    dsp_add(quadpan_perform, 9, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
            sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec,
            sp[0]->s_n);
}


\ No newline at end of file
+#include "MSPd.h"
#define OBJECT_NAME "quadpan~"
/*
 
 Front
 
 *out1         *out3
 
 
 
 *out2         *out4
 
 Back
 
 */

static t_class  *quadpan_class;


typedef struct _quadpan
{
    t_object x_obj;
    t_float x_f;
//    short bypass;
//    float pi_over_two;
//    float twopi;
    float *in;
    float *Xin;
    float *Yin;
} t_quadpan;

void *quadpan_new(t_symbol *s, int argc, t_atom *argv);
t_int *offset_perform(t_int *w);
t_int *quadpan_perform(t_int *w);
void quadpan_dsp(t_quadpan *x, t_signal **sp);
void quadpan_showstate( t_quadpan *x );
void quadpan_free(t_quadpan *x);
void quadpan_tilde_setup(void)
{
	quadpan_class = class_new(gensym("quadpan~"), (t_newmethod)quadpan_new, (t_method)quadpan_free,sizeof(t_quadpan),0,A_GIMME,0);
	CLASS_MAINSIGNALIN(quadpan_class, t_quadpan, x_f);
	class_addmethod(quadpan_class, (t_method)quadpan_dsp, gensym("dsp"), A_CANT, 0);
    
	potpourri_announce(OBJECT_NAME);
}

void *quadpan_new(t_symbol *s, int argc, t_atom *argv)
{
    int i;
    t_quadpan *x = (t_quadpan *)pd_new(quadpan_class);
    
    
    for(i = 0; i < 2; i++){
        inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"),gensym("signal"));
    }
    for(i = 0; i < 4; i++){
        outlet_new(&x->x_obj, gensym("signal"));
    }
    x->in = (float *) malloc(8192 * sizeof(float));
    x->Xin = (float *) malloc(8192 * sizeof(float));
    x->Yin = (float *) malloc(8192 * sizeof(float));
//    x->pi_over_two = 1.5707963267948965;
//    x->twopi = 6.283185307179586;
    
    return x;
}
void quadpan_free(t_quadpan *x)
{
    free(x->in);
    free(x->Xin);
    free(x->Yin);
}

t_int *quadpan_perform(t_int *w)
{
    float gain1, gain2, gain3, gain4;
    float xval, yval;
    float xsquared, ysquared, ix, iy, ixsquared, iysquared;
    int i;
    
    t_quadpan *x = (t_quadpan *) (w[1]);
    float *in = x->in;
    float *Xin = x->Xin;
    float *Yin = x->Yin;
    
    float *in_loc = (t_float *)(w[2]);
    float *Xin_loc = (t_float *)(w[3]);
    float *Yin_loc = (t_float *)(w[4]);
    
    float *out1 = (t_float *)(w[5]);
    float *out2 = (t_float *)(w[6]);
    float *out3 = (t_float *)(w[7]);
    float *out4 = (t_float *)(w[8]);
    int n = (int)(w[9]);
    
    // copy buffers to avoid writeovers in shared memory
    for(i = 0; i < n; i++){
        in[i] = in_loc[i];
        Xin[i] = Xin_loc[i];
        Yin[i] = Yin_loc[i];
    }
    
    while( n-- ){
        xval = *Xin++;
        yval = *Yin++;
        if( xval < 0.0 )
            xval = 0.0;
        if( yval > 1.0 )
            yval = 1.0;
        if( yval < 0.0 )
            yval = 0.0;
        if( yval > 1.0 )
            yval = 1.0;
        
        xsquared = xval * xval;
        ysquared = yval * yval;
        ix = 1.0 - xval;
        iy = 1.0 - yval;
        ixsquared = ix * ix;
        iysquared = iy * iy;
        
        gain1 = sqrt( xsquared + ysquared );
        if( gain1 > 1.0 )
            gain1 = 1.0;
        gain1 = 1.0 - gain1; /* Left Rear Gain */
        
        
        gain2 = sqrt( ixsquared + ysquared );
        if( gain2 > 1.0 )
            gain2 = 1.0;
        gain2 = 1.0 - gain2; /* Right Rear Gain */
        
        gain3 = sqrt( xsquared + iysquared );
        if( gain3 > 1.0 )
            gain3 = 1.0;
        gain3 = 1.0 - gain3; /* Left Front Gain */
        
        
        gain4 = sqrt( ixsquared + iysquared ) ;
        if( gain4 > 1.0 )
            gain4 = 1.0;
        gain4 = 1.0 - gain4; /* Right Front Gain*/
        
        *out1++ = *in * gain3;
        *out2++ = *in * gain4;
        *out3++ = *in * gain2;
        *out4++ = *in++ * gain1;
    }
    
    return (w+10);
}



void quadpan_dsp(t_quadpan *x, t_signal **sp)
{
    if( ! sp[0]->s_sr ){
        return;
    }
    dsp_add(quadpan_perform, 9, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
            sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec,
            (t_int)sp[0]->s_n);
}


diff --git a/externals/lyonpotpourri/rtrig~.c b/externals/lyonpotpourri/rtrig~.c
index 3604cb4dc..61c272b1d 100755
--- a/externals/lyonpotpourri/rtrig~.c
+++ b/externals/lyonpotpourri/rtrig~.c
@@ -139,7 +139,7 @@ void rtrig_dsp(t_rtrig *x, t_signal **sp)
 	dsp_add(rtrig_perform, 3, x, 
             //			sp[0]->s_vec, 
 			sp[1]->s_vec,
-			sp[0]->s_n
+			(t_int)sp[0]->s_n
             );
 }
 
diff --git a/externals/lyonpotpourri/sigseq~.c b/externals/lyonpotpourri/sigseq~.c
index a2233d763..7282b65fb 100755
--- a/externals/lyonpotpourri/sigseq~.c
+++ b/externals/lyonpotpourri/sigseq~.c
@@ -563,10 +563,10 @@ void sigseq_dsp(t_sigseq *x, t_signal **sp)
     }
     if(x->method == EXTERNAL_CLOCK){
         dsp_add(sigseq_perform_clickin, 5, x, 
-                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
     } else {
         dsp_add(sigseq_perform, 5, x, 
-                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+                sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
     }
 }
 
diff --git a/externals/lyonpotpourri/squash~.c b/externals/lyonpotpourri/squash~.c
index 0719eadb6..2e6095d6e 100755
--- a/externals/lyonpotpourri/squash~.c
+++ b/externals/lyonpotpourri/squash~.c
@@ -394,7 +394,7 @@ void squash_dsp(t_squash *x, t_signal **sp)
         x->D = sp[0]->s_n;
         error("blocksize change not implemented yet!");
     } else {
-        dsp_add(squash_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        dsp_add(squash_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
     }
 }
 
diff --git a/externals/lyonpotpourri/stutter~.c b/externals/lyonpotpourri/stutter~.c
index b65651589..dae9ca2d0 100755
--- a/externals/lyonpotpourri/stutter~.c
+++ b/externals/lyonpotpourri/stutter~.c
@@ -526,6 +526,6 @@ void stutter_dsp(t_stutter *x, t_signal **sp)
 		x->loop_min_samps = .02 * (t_float)x->R;
 		x->loop_max_samps = .2 * (t_float) x->R;
 	}
-	dsp_add(stutter_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+	dsp_add(stutter_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/vdp~.c b/externals/lyonpotpourri/vdp~.c
index 0dc5a88c2..54178244e 100755
--- a/externals/lyonpotpourri/vdp~.c
+++ b/externals/lyonpotpourri/vdp~.c
@@ -380,7 +380,7 @@ void vdp_dsp(t_vdp *x, t_signal **sp)
 	}
     dsp_add(vdp_perform, 6, x,
     		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
-    		sp[0]->s_n);
+    		(t_int)sp[0]->s_n);
     
 }
 
diff --git a/externals/lyonpotpourri/vecdex~.c b/externals/lyonpotpourri/vecdex~.c
index 626907b15..f7ad80509 100755
--- a/externals/lyonpotpourri/vecdex~.c
+++ b/externals/lyonpotpourri/vecdex~.c
@@ -63,5 +63,5 @@ t_int *vecdex_perform(t_int *w)
 
 void vecdex_dsp(t_vecdex *x, t_signal **sp)
 {
-	dsp_add(vecdex_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-}
\ No newline at end of file
+	dsp_add(vecdex_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
+}
diff --git a/externals/lyonpotpourri/waveshape~.c b/externals/lyonpotpourri/waveshape~.c
index 47822b6b6..ad1a2c313 100755
--- a/externals/lyonpotpourri/waveshape~.c
+++ b/externals/lyonpotpourri/waveshape~.c
@@ -166,6 +166,6 @@ t_int *waveshape_perform(t_int *w)
 
 void waveshape_dsp(t_waveshape *x, t_signal **sp)
 {
-    dsp_add(waveshape_perform, 4, x, sp[0]->s_vec,sp[1]->s_vec,sp[0]->s_n);
+    dsp_add(waveshape_perform, 4, x, sp[0]->s_vec,sp[1]->s_vec,(t_int)sp[0]->s_n);
 }
 
diff --git a/externals/lyonpotpourri/windowvec~.c b/externals/lyonpotpourri/windowvec~.c
index cf471ca72..7adbf12ad 100755
--- a/externals/lyonpotpourri/windowvec~.c
+++ b/externals/lyonpotpourri/windowvec~.c
@@ -93,5 +93,5 @@ void windowvec_dsp(t_windowvec *x, t_signal **sp, short *count)
 			x->envelope[i] = - 0.5 * cos(twopi * (i / (float)x->vecsize)) + 0.5;
 		}
 	}
-	dsp_add(windowvec_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-}
\ No newline at end of file
+	dsp_add(windowvec_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
+}
diff --git a/externals/markex/abs~.c b/externals/markex/abs~.c
index 2ca443e4e..bb0f79f8c 100644
--- a/externals/markex/abs~.c
+++ b/externals/markex/abs~.c
@@ -32,7 +32,7 @@ static t_int *abs_perform(t_int *w)
 
 static void abs_dsp(t_abs *x, t_signal **sp)
 {
-    dsp_add(abs_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(abs_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *abs_new(void)
diff --git a/externals/markex/reson~.c b/externals/markex/reson~.c
index b5084b8d7..3318ea2f7 100644
--- a/externals/markex/reson~.c
+++ b/externals/markex/reson~.c
@@ -102,7 +102,7 @@ static void sigreson_dsp(t_sigreson *x, t_signal **sp)
 	x->x_ctl->c_samprate = sp[0]->s_sr;
 	sigreson_float(x, x->x_ctl->c_freq);
 	dsp_add(cu_reson, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
-		x->x_ctl, sp[0]->s_n);
+		x->x_ctl, (t_int)sp[0]->s_n);
 }
 
 static void sigreson_ft1(t_sigreson *x, t_floatarg f) /* sets feedback */
diff --git a/externals/miXed/cyclone/shadow/nettles.c b/externals/miXed/cyclone/shadow/nettles.c
index d7ccb878b..9da130db4 100644
--- a/externals/miXed/cyclone/shadow/nettles.c
+++ b/externals/miXed/cyclone/shadow/nettles.c
@@ -151,15 +151,15 @@ static void sigeq_dsp(t_sigeq *x, t_signal **sp)
     switch (x->x_algo)
     {
     case 1:
-	dsp_add(sigeq_perform1, 4, sp[0]->s_n,
+	dsp_add(sigeq_perform1, 4, (t_int)sp[0]->s_n,
 		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 	break;
     case 2:
-	dsp_add(sigeq_perform2, 4, sp[0]->s_n,
+	dsp_add(sigeq_perform2, 4, (t_int)sp[0]->s_n,
 		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 	break;
     default:
-	dsp_add(sigeq_perform0, 4, sp[0]->s_n,
+	dsp_add(sigeq_perform0, 4, (t_int)sp[0]->s_n,
 		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
     }
 }
@@ -203,7 +203,7 @@ static t_int *signeq_perform(t_int *w)
 
 static void signeq_dsp(t_signeq *x, t_signal **sp)
 {
-    dsp_add(signeq_perform, 4, sp[0]->s_n,
+    dsp_add(signeq_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -235,7 +235,7 @@ static t_int *siglt_perform(t_int *w)
 
 static void siglt_dsp(t_siglt *x, t_signal **sp)
 {
-    dsp_add(siglt_perform, 4, sp[0]->s_n,
+    dsp_add(siglt_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -267,7 +267,7 @@ static t_int *siggt_perform(t_int *w)
 
 static void siggt_dsp(t_siggt *x, t_signal **sp)
 {
-    dsp_add(siggt_perform, 4, sp[0]->s_n,
+    dsp_add(siggt_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -299,7 +299,7 @@ static t_int *sigleq_perform(t_int *w)
 
 static void sigleq_dsp(t_sigleq *x, t_signal **sp)
 {
-    dsp_add(sigleq_perform, 4, sp[0]->s_n,
+    dsp_add(sigleq_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -331,7 +331,7 @@ static t_int *siggeq_perform(t_int *w)
 
 static void siggeq_dsp(t_siggeq *x, t_signal **sp)
 {
-    dsp_add(siggeq_perform, 4, sp[0]->s_n,
+    dsp_add(siggeq_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -358,7 +358,7 @@ static t_int *sigrminus_perform(t_int *w)
 
 static void sigrminus_dsp(t_sigrminus *x, t_signal **sp)
 {
-    dsp_add(sigrminus_perform, 4, sp[0]->s_n,
+    dsp_add(sigrminus_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -392,7 +392,7 @@ static t_int *sigrover_perform(t_int *w)
 
 static void sigrover_dsp(t_sigrover *x, t_signal **sp)
 {
-    dsp_add(sigrover_perform, 4, sp[0]->s_n,
+    dsp_add(sigrover_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -427,7 +427,7 @@ static t_int *sigmod_perform(t_int *w)
 
 static void sigmod_dsp(t_sigmod *x, t_signal **sp)
 {
-    dsp_add(sigmod_perform, 4, sp[0]->s_n,
+    dsp_add(sigmod_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
@@ -462,7 +462,7 @@ static t_int *sigaccum_perform(t_int *w)
 
 static void sigaccum_dsp(t_sigaccum *x, t_signal **sp)
 {
-    dsp_add(sigaccum_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(sigaccum_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void sigaccum_bang(t_sigaccum *x)
diff --git a/externals/miXed/cyclone/sickle/Clip.c b/externals/miXed/cyclone/sickle/Clip.c
index 7b7074801..1ff02de50 100644
--- a/externals/miXed/cyclone/sickle/Clip.c
+++ b/externals/miXed/cyclone/sickle/Clip.c
@@ -37,7 +37,7 @@ static t_int *Clip_perform(t_int *w)
 
 static void clip_dsp(t_clip *x, t_signal **sp)
 {
-    dsp_add(Clip_perform, 5, sp[0]->s_n,
+    dsp_add(Clip_perform, 5, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/Line.c b/externals/miXed/cyclone/sickle/Line.c
index 78d446bca..609b14328 100644
--- a/externals/miXed/cyclone/sickle/Line.c
+++ b/externals/miXed/cyclone/sickle/Line.c
@@ -271,7 +271,7 @@ static void line_stop(t_line *x)
 
 static void line_dsp(t_line *x, t_signal **sp)
 {
-    dsp_add(line_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(line_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     x->x_ksr = sp[0]->s_sr * 0.001;
 }
 
diff --git a/externals/miXed/cyclone/sickle/Scope.c b/externals/miXed/cyclone/sickle/Scope.c
index 33b8b76f2..ca31f1396 100644
--- a/externals/miXed/cyclone/sickle/Scope.c
+++ b/externals/miXed/cyclone/sickle/Scope.c
@@ -317,9 +317,9 @@ static void scope_dsp(t_scope *x, t_signal **sp)
     scope_setxymode(x,
 		    forky_hasfeeders((t_object *)x, x->x_glist, 1, &s_signal));
     if (x->x_xymode)
-	dsp_add(scope_xyperform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(scope_xyperform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     else
-	dsp_add(scope_monoperform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+	dsp_add(scope_monoperform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static t_canvas *scope_getcanvas(t_scope *x, t_glist *glist)
diff --git a/externals/miXed/cyclone/sickle/Scope.c.old b/externals/miXed/cyclone/sickle/Scope.c.old
index 9436e3f70..c6f1212bf 100644
--- a/externals/miXed/cyclone/sickle/Scope.c.old
+++ b/externals/miXed/cyclone/sickle/Scope.c.old
@@ -312,9 +312,9 @@ static void scope_dsp(t_scope *x, t_signal **sp)
     scope_setxymode(x,
 		    forky_hasfeeders((t_object *)x, x->x_glist, 1, &s_signal));
     if (x->x_xymode)
-	dsp_add(scope_xyperform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(scope_xyperform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     else
-	dsp_add(scope_monoperform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+	dsp_add(scope_monoperform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static t_canvas *scope_getcanvas(t_scope *x, t_glist *glist)
diff --git a/externals/miXed/cyclone/sickle/abs.c b/externals/miXed/cyclone/sickle/abs.c
index 777b89100..5ffa4a807 100644
--- a/externals/miXed/cyclone/sickle/abs.c
+++ b/externals/miXed/cyclone/sickle/abs.c
@@ -70,12 +70,12 @@ static void abs_dsp(t_abs *x, t_signal **sp)
 #ifdef ABS_TEST
     t_symbol *tst = fitter_getsymbol(gensym("test"));
     if (tst == gensym("unroll"))
-	dsp_add(abs_perf8, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(abs_perf8, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     else if (tst == gensym("branch"))
-	dsp_add(abs_perf0, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(abs_perf0, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     else
 #endif
-	dsp_add(abs_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(abs_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *abs_new(void)
diff --git a/externals/miXed/cyclone/sickle/acos.c b/externals/miXed/cyclone/sickle/acos.c
index 3b706b1bc..63603ec24 100644
--- a/externals/miXed/cyclone/sickle/acos.c
+++ b/externals/miXed/cyclone/sickle/acos.c
@@ -29,7 +29,7 @@ static t_int *acos_perform(t_int *w)
 
 static void acos_dsp(t_acos *x, t_signal **sp)
 {
-    dsp_add(acos_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(acos_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *acos_new(void)
diff --git a/externals/miXed/cyclone/sickle/acosh.c b/externals/miXed/cyclone/sickle/acosh.c
index eabecb517..747f42e10 100644
--- a/externals/miXed/cyclone/sickle/acosh.c
+++ b/externals/miXed/cyclone/sickle/acosh.c
@@ -29,7 +29,7 @@ static t_int *acosh_perform(t_int *w)
 
 static void acosh_dsp(t_acosh *x, t_signal **sp)
 {
-    dsp_add(acosh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(acosh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *acosh_new(void)
diff --git a/externals/miXed/cyclone/sickle/allpass.c b/externals/miXed/cyclone/sickle/allpass.c
index 761d0ccda..d5d3f8d82 100644
--- a/externals/miXed/cyclone/sickle/allpass.c
+++ b/externals/miXed/cyclone/sickle/allpass.c
@@ -106,7 +106,7 @@ static void allpass_dsp(t_allpass *x, t_signal **sp)
 	allpass_resize(x, x->x_ksr * x->x_maxdelay);
     }
     else allpass_clear(x);
-    dsp_add(allpass_perform, 6, x, sp[0]->s_n,
+    dsp_add(allpass_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/asin.c b/externals/miXed/cyclone/sickle/asin.c
index 282c830e2..e643cd271 100644
--- a/externals/miXed/cyclone/sickle/asin.c
+++ b/externals/miXed/cyclone/sickle/asin.c
@@ -29,7 +29,7 @@ static t_int *asin_perform(t_int *w)
 
 static void asin_dsp(t_asin *x, t_signal **sp)
 {
-    dsp_add(asin_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(asin_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *asin_new(void)
diff --git a/externals/miXed/cyclone/sickle/asinh.c b/externals/miXed/cyclone/sickle/asinh.c
index 367ce0cc5..c277bbbce 100644
--- a/externals/miXed/cyclone/sickle/asinh.c
+++ b/externals/miXed/cyclone/sickle/asinh.c
@@ -29,7 +29,7 @@ static t_int *asinh_perform(t_int *w)
 
 static void asinh_dsp(t_asinh *x, t_signal **sp)
 {
-    dsp_add(asinh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(asinh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *asinh_new(void)
diff --git a/externals/miXed/cyclone/sickle/atan.c b/externals/miXed/cyclone/sickle/atan.c
index 89d8e8818..963b9f529 100644
--- a/externals/miXed/cyclone/sickle/atan.c
+++ b/externals/miXed/cyclone/sickle/atan.c
@@ -29,7 +29,7 @@ static t_int *atan_perform(t_int *w)
 
 static void atan_dsp(t_atan *x, t_signal **sp)
 {
-    dsp_add(atan_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(atan_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *atan_new(void)
diff --git a/externals/miXed/cyclone/sickle/atan2.c b/externals/miXed/cyclone/sickle/atan2.c
index 327efd171..e94cb1497 100644
--- a/externals/miXed/cyclone/sickle/atan2.c
+++ b/externals/miXed/cyclone/sickle/atan2.c
@@ -32,7 +32,7 @@ static t_int *atan2_perform(t_int *w)
 
 static void atan2_dsp(t_atan2 *x, t_signal **sp)
 {
-    dsp_add(atan2_perform, 4, sp[0]->s_n,
+    dsp_add(atan2_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/atanh.c b/externals/miXed/cyclone/sickle/atanh.c
index 4152236b1..b26e673e7 100644
--- a/externals/miXed/cyclone/sickle/atanh.c
+++ b/externals/miXed/cyclone/sickle/atanh.c
@@ -29,7 +29,7 @@ static t_int *atanh_perform(t_int *w)
 
 static void atanh_dsp(t_atanh *x, t_signal **sp)
 {
-    dsp_add(atanh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(atanh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *atanh_new(void)
diff --git a/externals/miXed/cyclone/sickle/atodb.c b/externals/miXed/cyclone/sickle/atodb.c
index 981f227c4..65d5d483a 100644
--- a/externals/miXed/cyclone/sickle/atodb.c
+++ b/externals/miXed/cyclone/sickle/atodb.c
@@ -47,7 +47,7 @@ static t_int * atodb_perform(t_int *w)
 
 static void atodb_dsp(t_atodb *x, t_signal **sp)
 {
-  dsp_add(atodb_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+  dsp_add(atodb_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 void *atodb_new(void)
diff --git a/externals/miXed/cyclone/sickle/average.c b/externals/miXed/cyclone/sickle/average.c
index 870ca0dde..5b25cc33d 100644
--- a/externals/miXed/cyclone/sickle/average.c
+++ b/externals/miXed/cyclone/sickle/average.c
@@ -142,7 +142,7 @@ static t_int *average_perform(t_int *w)
 
 static void average_dsp(t_average *x, t_signal **sp)
 {
-    dsp_add(average_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(average_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void average_free(t_average *x)
diff --git a/externals/miXed/cyclone/sickle/avg.c b/externals/miXed/cyclone/sickle/avg.c
index 2ad214a37..73102e27d 100644
--- a/externals/miXed/cyclone/sickle/avg.c
+++ b/externals/miXed/cyclone/sickle/avg.c
@@ -40,7 +40,7 @@ static t_int *avg_perform(t_int *w)
 
 static void avg_dsp(t_avg *x, t_signal **sp)
 {
-    dsp_add(avg_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(avg_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void *avg_new(void)
diff --git a/externals/miXed/cyclone/sickle/bitand.c b/externals/miXed/cyclone/sickle/bitand.c
index a7cfeb737..3066921b4 100644
--- a/externals/miXed/cyclone/sickle/bitand.c
+++ b/externals/miXed/cyclone/sickle/bitand.c
@@ -96,10 +96,10 @@ static void bitand_dsp(t_bitand *x, t_signal **sp)
     if (forky_hasfeeders((t_object *)x, x->x_glist, 1, 0))
 	/* use the mask set by a second inlet's signal or float,
 	   CHECKED (incompatible) second inlet's int is persistent */
-	dsp_add(bitand_perform, 5, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitand_perform, 5, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec);
     else  /* use the mask set by a 'bits' message or a creation argument */
-	dsp_add(bitand_perform_noin2, 4, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitand_perform_noin2, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/bitnot.c b/externals/miXed/cyclone/sickle/bitnot.c
index c2929e8d1..4b6e025b2 100644
--- a/externals/miXed/cyclone/sickle/bitnot.c
+++ b/externals/miXed/cyclone/sickle/bitnot.c
@@ -37,7 +37,7 @@ static t_int *bitnot_perform(t_int *w)
 
 static void bitnot_dsp(t_bitnot *x, t_signal **sp)
 {
-    dsp_add(bitnot_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(bitnot_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void bitnot_mode(t_bitnot *x, t_floatarg f)
diff --git a/externals/miXed/cyclone/sickle/bitor.c b/externals/miXed/cyclone/sickle/bitor.c
index e5c887b16..311ade0b1 100644
--- a/externals/miXed/cyclone/sickle/bitor.c
+++ b/externals/miXed/cyclone/sickle/bitor.c
@@ -96,10 +96,10 @@ static void bitor_dsp(t_bitor *x, t_signal **sp)
     if (forky_hasfeeders((t_object *)x, x->x_glist, 1, 0))
 	/* use the mask set by a second inlet's signal or float,
 	   CHECKED (incompatible) second inlet's int is persistent */
-	dsp_add(bitor_perform, 5, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitor_perform, 5, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec);
     else  /* use the mask set by a 'bits' message or a creation argument */
-	dsp_add(bitor_perform_noin2, 4, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitor_perform_noin2, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/bitshift.c b/externals/miXed/cyclone/sickle/bitshift.c
index 707048c00..e2638b4b7 100644
--- a/externals/miXed/cyclone/sickle/bitshift.c
+++ b/externals/miXed/cyclone/sickle/bitshift.c
@@ -74,7 +74,7 @@ static t_int *bitshift_perform(t_int *w)
 
 static void bitshift_dsp(t_bitshift *x, t_signal **sp)
 {
-    dsp_add(bitshift_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(bitshift_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void bitshift_mode(t_bitshift *x, t_floatarg f)
diff --git a/externals/miXed/cyclone/sickle/bitxor.c b/externals/miXed/cyclone/sickle/bitxor.c
index 5eeb4fddd..7f964d00f 100644
--- a/externals/miXed/cyclone/sickle/bitxor.c
+++ b/externals/miXed/cyclone/sickle/bitxor.c
@@ -99,10 +99,10 @@ static void bitxor_dsp(t_bitxor *x, t_signal **sp)
     if (forky_hasfeeders((t_object *)x, x->x_glist, 1, 0))
 	/* use the mask set by a second inlet's signal or float,
 	   CHECKED (incompatible) second inlet's int is persistent */
-	dsp_add(bitxor_perform, 5, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitxor_perform, 5, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec);
     else  /* use the mask set by a 'bits' message or a creation argument */
-	dsp_add(bitxor_perform_noin2, 4, x, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(bitxor_perform_noin2, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/capture.c b/externals/miXed/cyclone/sickle/capture.c
index a61369493..cfb47a2e9 100644
--- a/externals/miXed/cyclone/sickle/capture.c
+++ b/externals/miXed/cyclone/sickle/capture.c
@@ -287,11 +287,11 @@ static void capture_dsp(t_capture *x, t_signal **sp)
     if (x->x_indices)
 	dsp_add((x->x_mode == 'f' ?
 		 capture_perform_first : capture_perform_last),
-		3, x, sp[0]->s_vec, sp[0]->s_n);
+		3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     else
 	dsp_add((x->x_mode == 'f' ?
 		 capture_perform_allfirst : capture_perform_alllast),
-		3, x, sp[0]->s_vec, sp[0]->s_n);
+		3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void capture_free(t_capture *x)
diff --git a/externals/miXed/cyclone/sickle/cartopol.c b/externals/miXed/cyclone/sickle/cartopol.c
index 8513af673..7fe970d60 100644
--- a/externals/miXed/cyclone/sickle/cartopol.c
+++ b/externals/miXed/cyclone/sickle/cartopol.c
@@ -54,10 +54,10 @@ static t_int *cartopol_perform_nophase(t_int *w)
 static void cartopol_dsp(t_cartopol *x, t_signal **sp)
 {
     if (fragile_outlet_connections(x->x_out2))
-	dsp_add(cartopol_perform, 5, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(cartopol_perform, 5, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
     else
-	dsp_add(cartopol_perform_nophase, 4, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(cartopol_perform_nophase, 4, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/change.c b/externals/miXed/cyclone/sickle/change.c
index fffc43a34..260536901 100644
--- a/externals/miXed/cyclone/sickle/change.c
+++ b/externals/miXed/cyclone/sickle/change.c
@@ -32,7 +32,7 @@ static t_int *change_perform(t_int *w)
 
 static void change_dsp(t_change *x, t_signal **sp)
 {
-    dsp_add(change_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(change_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *change_new(void)
diff --git a/externals/miXed/cyclone/sickle/click.c b/externals/miXed/cyclone/sickle/click.c
index 5734cfdd7..f852e8900 100644
--- a/externals/miXed/cyclone/sickle/click.c
+++ b/externals/miXed/cyclone/sickle/click.c
@@ -83,7 +83,7 @@ static t_int *click_perform(t_int *w)
 
 static void click_dsp(t_click *x, t_signal **sp)
 {
-    dsp_add(click_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(click_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void click_free(t_click *x)
diff --git a/externals/miXed/cyclone/sickle/comb.c b/externals/miXed/cyclone/sickle/comb.c
index 8d4c8b37a..a6c800a64 100644
--- a/externals/miXed/cyclone/sickle/comb.c
+++ b/externals/miXed/cyclone/sickle/comb.c
@@ -110,7 +110,7 @@ static void comb_dsp(t_comb *x, t_signal **sp)
 	comb_resize(x, x->x_ksr * x->x_maxdelay);
     }
     else comb_clear(x);
-    dsp_add(comb_perform, 8, x, sp[0]->s_n,
+    dsp_add(comb_perform, 8, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
 	    sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec);
 }
diff --git a/externals/miXed/cyclone/sickle/cosh.c b/externals/miXed/cyclone/sickle/cosh.c
index 87f195f93..f44406943 100644
--- a/externals/miXed/cyclone/sickle/cosh.c
+++ b/externals/miXed/cyclone/sickle/cosh.c
@@ -29,7 +29,7 @@ static t_int *cosh_perform(t_int *w)
 
 static void cosh_dsp(t_cosh *x, t_signal **sp)
 {
-    dsp_add(cosh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(cosh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *cosh_new(void)
diff --git a/externals/miXed/cyclone/sickle/cosx.c b/externals/miXed/cyclone/sickle/cosx.c
index d86fdaebd..5a9c0ad3b 100644
--- a/externals/miXed/cyclone/sickle/cosx.c
+++ b/externals/miXed/cyclone/sickle/cosx.c
@@ -32,7 +32,7 @@ static t_int *cosx_perform(t_int *w)
 
 static void cosx_dsp(t_cosx *x, t_signal **sp)
 {
-    dsp_add(cosx_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(cosx_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *cosx_new(void)
diff --git a/externals/miXed/cyclone/sickle/count.c b/externals/miXed/cyclone/sickle/count.c
index 2a36f4411..1b2b52544 100644
--- a/externals/miXed/cyclone/sickle/count.c
+++ b/externals/miXed/cyclone/sickle/count.c
@@ -123,7 +123,7 @@ static t_int *count_perform(t_int *w)
 static void count_dsp(t_count *x, t_signal **sp)
 {
     if (x->x_autoreset) count_bang(x);
-    dsp_add(count_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(count_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void *count_new(t_floatarg minval, t_floatarg maxval,
diff --git a/externals/miXed/cyclone/sickle/curve.c b/externals/miXed/cyclone/sickle/curve.c
index 11ada15de..b58b90f55 100644
--- a/externals/miXed/cyclone/sickle/curve.c
+++ b/externals/miXed/cyclone/sickle/curve.c
@@ -333,7 +333,7 @@ static void curve_dsp(t_curve *x, t_signal **sp)
 	    segp++;
 	}
     }
-    dsp_add(curve_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(curve_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void curve_free(t_curve *x)
diff --git a/externals/miXed/cyclone/sickle/cycle.c b/externals/miXed/cyclone/sickle/cycle.c
index cf61816b1..4dd8084ea 100644
--- a/externals/miXed/cyclone/sickle/cycle.c
+++ b/externals/miXed/cyclone/sickle/cycle.c
@@ -136,7 +136,7 @@ static void cycle_dsp(t_cycle *x, t_signal **sp)
 {
     cycle_gettable(x);
     x->x_conv = CYCLE_TABSIZE / sp[0]->s_sr;
-    dsp_add(cycle_perform, 5, x, sp[0]->s_n,
+    dsp_add(cycle_perform, 5, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/dbtoa.c b/externals/miXed/cyclone/sickle/dbtoa.c
index a435a60bf..820a3591d 100644
--- a/externals/miXed/cyclone/sickle/dbtoa.c
+++ b/externals/miXed/cyclone/sickle/dbtoa.c
@@ -39,7 +39,7 @@ static t_int * dbtoa_perform(t_int *w)
 
 static void dbtoa_dsp(t_dbtoa *x, t_signal **sp)
 {
-  dsp_add(dbtoa_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+  dsp_add(dbtoa_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 void *dbtoa_new(void)
diff --git a/externals/miXed/cyclone/sickle/delay.c b/externals/miXed/cyclone/sickle/delay.c
index b0ddd9d73..d17294be4 100644
--- a/externals/miXed/cyclone/sickle/delay.c
+++ b/externals/miXed/cyclone/sickle/delay.c
@@ -63,7 +63,7 @@ static void delay_dsp(t_delay *x, t_signal **sp)
 {
     memset(x->x_buf, 0, x->x_maxsize * sizeof(*x->x_buf));  /* CHECKED */
     x->x_whead = x->x_buf;
-    dsp_add(delay_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(delay_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *delay_new(t_floatarg f1, t_floatarg f2)
diff --git a/externals/miXed/cyclone/sickle/delta.c b/externals/miXed/cyclone/sickle/delta.c
index 145d6b7e4..634f78677 100644
--- a/externals/miXed/cyclone/sickle/delta.c
+++ b/externals/miXed/cyclone/sickle/delta.c
@@ -32,7 +32,7 @@ static t_int *delta_perform(t_int *w)
 
 static void delta_dsp(t_delta *x, t_signal **sp)
 {
-    dsp_add(delta_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(delta_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *delta_new(void)
diff --git a/externals/miXed/cyclone/sickle/deltaclip.c b/externals/miXed/cyclone/sickle/deltaclip.c
index 763a10067..0c76bdf3f 100644
--- a/externals/miXed/cyclone/sickle/deltaclip.c
+++ b/externals/miXed/cyclone/sickle/deltaclip.c
@@ -46,7 +46,7 @@ static t_int *deltaclip_perform(t_int *w)
 
 static void deltaclip_dsp(t_deltaclip *x, t_signal **sp)
 {
-    dsp_add(deltaclip_perform, 6, x, sp[0]->s_n,
+    dsp_add(deltaclip_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/edge.c b/externals/miXed/cyclone/sickle/edge.c
index b206f6ba6..f2f481bf8 100644
--- a/externals/miXed/cyclone/sickle/edge.c
+++ b/externals/miXed/cyclone/sickle/edge.c
@@ -76,7 +76,7 @@ static t_int *edge_perform(t_int *w)
 
 static void edge_dsp(t_edge *x, t_signal **sp)
 {
-    dsp_add(edge_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(edge_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void edge_free(t_edge *x)
diff --git a/externals/miXed/cyclone/sickle/frameaccum.c b/externals/miXed/cyclone/sickle/frameaccum.c
index 6038ae539..aaab147f5 100644
--- a/externals/miXed/cyclone/sickle/frameaccum.c
+++ b/externals/miXed/cyclone/sickle/frameaccum.c
@@ -37,7 +37,7 @@ static void frameaccum_dsp(t_frameaccum *x, t_signal **sp)
 				 FRAMEACCUM_INISIZE, x->x_frameini,
 				 sizeof(*x->x_frame));
     memset(x->x_frame, 0, nblock * sizeof(*x->x_frame));  /* CHECKED */
-    dsp_add(frameaccum_perform, 4, nblock, x->x_frame,
+    dsp_add(frameaccum_perform, 4, (t_int)nblock, x->x_frame,
 	    sp[0]->s_vec, sp[1]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/framedelta.c b/externals/miXed/cyclone/sickle/framedelta.c
index b898444ca..1fe8472b8 100644
--- a/externals/miXed/cyclone/sickle/framedelta.c
+++ b/externals/miXed/cyclone/sickle/framedelta.c
@@ -42,7 +42,7 @@ static void framedelta_dsp(t_framedelta *x, t_signal **sp)
 				 FRAMEDELTA_INISIZE, x->x_frameini,
 				 sizeof(*x->x_frame));
     memset(x->x_frame, 0, nblock * sizeof(*x->x_frame));  /* CHECKME */
-    dsp_add(framedelta_perform, 4, nblock, x->x_frame,
+    dsp_add(framedelta_perform, 4, (t_int)nblock, x->x_frame,
 	    sp[0]->s_vec, sp[1]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/kink.c b/externals/miXed/cyclone/sickle/kink.c
index 86bc81d93..b4652a5a8 100644
--- a/externals/miXed/cyclone/sickle/kink.c
+++ b/externals/miXed/cyclone/sickle/kink.c
@@ -41,7 +41,7 @@ static t_int *kink_perform(t_int *w)
 
 static void kink_dsp(t_kink *x, t_signal **sp)
 {
-    dsp_add(kink_perform, 4, sp[0]->s_n,
+    dsp_add(kink_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/log.c b/externals/miXed/cyclone/sickle/log.c
index 0a1407075..b24ff7afe 100644
--- a/externals/miXed/cyclone/sickle/log.c
+++ b/externals/miXed/cyclone/sickle/log.c
@@ -50,7 +50,7 @@ static t_int *log_perform(t_int *w)
 
 static void log_dsp(t_log *x, t_signal **sp)
 {
-    dsp_add(log_perform, 4, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec,
+    dsp_add(log_perform, 4, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec,
 	    &x->x_rcplogbase);
 }
 
diff --git a/externals/miXed/cyclone/sickle/lores.c b/externals/miXed/cyclone/sickle/lores.c
index 2fe71ee3f..9af5e937c 100644
--- a/externals/miXed/cyclone/sickle/lores.c
+++ b/externals/miXed/cyclone/sickle/lores.c
@@ -83,7 +83,7 @@ static void lores_dsp(t_lores *x, t_signal **sp)
 {
     x->x_srcoef = SHARED_2PI / sp[0]->s_sr;
     lores_clear(x);
-    dsp_add(lores_perform, 6, x, sp[0]->s_n,
+    dsp_add(lores_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/matrix.c b/externals/miXed/cyclone/sickle/matrix.c
index df8f471c4..236a76c37 100644
--- a/externals/miXed/cyclone/sickle/matrix.c
+++ b/externals/miXed/cyclone/sickle/matrix.c
@@ -348,9 +348,9 @@ static void matrix_dsp(t_matrix *x, t_signal **sp)
     if (x->x_gains)
     {
 	x->x_ksr = sp[0]->s_sr * .001;
-	dsp_add(matrixnb_perform, 2, x, nblock);
+	dsp_add(matrixnb_perform, 2, x, (t_int)nblock);
     }
-    else dsp_add(matrix01_perform, 2, x, nblock);
+    else dsp_add(matrix01_perform, 2, x, (t_int)nblock);
 }
 
 static void matrix_cellout(t_matrix *x, int indx, int ondx,
diff --git a/externals/miXed/cyclone/sickle/maximum.c b/externals/miXed/cyclone/sickle/maximum.c
index 8d947ec71..b0af7a539 100644
--- a/externals/miXed/cyclone/sickle/maximum.c
+++ b/externals/miXed/cyclone/sickle/maximum.c
@@ -29,7 +29,7 @@ static t_int *maximum_perform(t_int *w)
 
 static void maximum_dsp(t_maximum *x, t_signal **sp)
 {
-    dsp_add(maximum_perform, 4, sp[0]->s_n,
+    dsp_add(maximum_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/minimum.c b/externals/miXed/cyclone/sickle/minimum.c
index cb31f498c..5b591b553 100644
--- a/externals/miXed/cyclone/sickle/minimum.c
+++ b/externals/miXed/cyclone/sickle/minimum.c
@@ -29,7 +29,7 @@ static t_int *minimum_perform(t_int *w)
 
 static void minimum_dsp(t_minimum *x, t_signal **sp)
 {
-    dsp_add(minimum_perform, 4, sp[0]->s_n,
+    dsp_add(minimum_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/minmax.c b/externals/miXed/cyclone/sickle/minmax.c
index 5bd0e3914..e5f63afa0 100644
--- a/externals/miXed/cyclone/sickle/minmax.c
+++ b/externals/miXed/cyclone/sickle/minmax.c
@@ -51,7 +51,7 @@ static t_int *minmax_perform(t_int *w)
 
 static void minmax_dsp(t_minmax *x, t_signal **sp)
 {
-    dsp_add(minmax_perform, 5, x, sp[0]->s_n, sp[0]->s_vec,
+    dsp_add(minmax_perform, 5, x, (t_int)sp[0]->s_n, sp[0]->s_vec,
 	    sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/mstosamps.c b/externals/miXed/cyclone/sickle/mstosamps.c
index 37b2cc5dd..cce733d22 100644
--- a/externals/miXed/cyclone/sickle/mstosamps.c
+++ b/externals/miXed/cyclone/sickle/mstosamps.c
@@ -34,7 +34,7 @@ static void mstosamps_dsp(t_mstosamps *x, t_signal **sp)
 {
     x->x_ksr = sp[0]->s_sr * .001;
     dsp_add(mstosamps_perform, 4, x,
-	    sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	    (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *mstosamps_new(void)
diff --git a/externals/miXed/cyclone/sickle/onepole.c b/externals/miXed/cyclone/sickle/onepole.c
index dec0ee187..e8f598fdf 100644
--- a/externals/miXed/cyclone/sickle/onepole.c
+++ b/externals/miXed/cyclone/sickle/onepole.c
@@ -106,7 +106,7 @@ static void onepole_dsp(t_onepole *x, t_signal **sp)
 {
     x->x_srcoef = SHARED_2PI / sp[0]->s_sr;
     onepole_clear(x);
-    dsp_add(onepole_perform, 5, x, sp[0]->s_n,
+    dsp_add(onepole_perform, 5, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/overdrive.c b/externals/miXed/cyclone/sickle/overdrive.c
index 7bee8f770..7e3740b09 100644
--- a/externals/miXed/cyclone/sickle/overdrive.c
+++ b/externals/miXed/cyclone/sickle/overdrive.c
@@ -56,7 +56,7 @@ static t_int *overdrive_perform(t_int *w)
 static void overdrive_dsp(t_overdrive *x, t_signal **sp)
 {
     dsp_add(overdrive_perform, 4, &x->x_drivefactor,
-	    sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	    (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *overdrive_new(t_floatarg f)
diff --git a/externals/miXed/cyclone/sickle/peakamp.c b/externals/miXed/cyclone/sickle/peakamp.c
index 67d10932d..cf5bac31a 100644
--- a/externals/miXed/cyclone/sickle/peakamp.c
+++ b/externals/miXed/cyclone/sickle/peakamp.c
@@ -72,7 +72,7 @@ static void peakamp_dsp(t_peakamp *x, t_signal **sp)
 {
     x->x_ksr = sp[0]->s_sr * 0.001;
     x->x_nwait = (int)(x->x_waittime * x->x_ksr);
-    dsp_add(peakamp_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(peakamp_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void peakamp_free(t_peakamp *x)
diff --git a/externals/miXed/cyclone/sickle/phasewrap.c b/externals/miXed/cyclone/sickle/phasewrap.c
index 535d5e803..5cf65cfbb 100644
--- a/externals/miXed/cyclone/sickle/phasewrap.c
+++ b/externals/miXed/cyclone/sickle/phasewrap.c
@@ -88,13 +88,13 @@ static void phasewrap_dsp(t_phasewrap *x, t_signal **sp)
     switch (x->x_algo)
     {
     case 1:
-	dsp_add(phasewrap_perform1, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(phasewrap_perform1, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 	break;
     case 2:
-	dsp_add(phasewrap_perform2, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(phasewrap_perform2, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 	break;
     default:
-	dsp_add(phasewrap_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	dsp_add(phasewrap_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
     }
 }
 
diff --git a/externals/miXed/cyclone/sickle/pink.c b/externals/miXed/cyclone/sickle/pink.c
index 0ba71b2c9..19475148f 100644
--- a/externals/miXed/cyclone/sickle/pink.c
+++ b/externals/miXed/cyclone/sickle/pink.c
@@ -74,7 +74,7 @@ static t_int *pink_perform(t_int *w)
 
 static void pink_dsp(t_pink *x, t_signal **sp)
 {
-    dsp_add(pink_perform, 3, x, sp[1]->s_n, sp[1]->s_vec);
+    dsp_add(pink_perform, 3, x, (t_int)sp[1]->s_n, sp[1]->s_vec);
 }
 
 static void *pink_new(void)
diff --git a/externals/miXed/cyclone/sickle/poltocar.c b/externals/miXed/cyclone/sickle/poltocar.c
index 5c703b8a1..637cf251d 100644
--- a/externals/miXed/cyclone/sickle/poltocar.c
+++ b/externals/miXed/cyclone/sickle/poltocar.c
@@ -54,10 +54,10 @@ static t_int *poltocar_perform_noimag(t_int *w)
 static void poltocar_dsp(t_poltocar *x, t_signal **sp)
 {
     if (fragile_outlet_connections(x->x_out2))
-	dsp_add(poltocar_perform, 5, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(poltocar_perform, 5, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
     else
-	dsp_add(poltocar_perform_noimag, 4, sp[0]->s_n, sp[0]->s_vec,
+	dsp_add(poltocar_perform_noimag, 4, (t_int)sp[0]->s_n, sp[0]->s_vec,
 		sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/pong.c b/externals/miXed/cyclone/sickle/pong.c
index 70f6f938b..9143380c8 100644
--- a/externals/miXed/cyclone/sickle/pong.c
+++ b/externals/miXed/cyclone/sickle/pong.c
@@ -337,12 +337,12 @@ static void pong_tilde_dsp(t_pong_tilde *x, t_signal **sp)
 {
 	/*
 	if(x->x_numargs <= 1){
-		dsp_add(pong_tilde_perform_maxonly, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,  sp[0]->s_n);
+		dsp_add(pong_tilde_perform_maxonly, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,  (t_int)sp[0]->s_n);
 	}
 	
 	else{
 	*/	
-		dsp_add(pong_tilde_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+		dsp_add(pong_tilde_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 	//	};
 }
 
diff --git a/externals/miXed/cyclone/sickle/pow.c b/externals/miXed/cyclone/sickle/pow.c
index 2f95e8ffe..7c9645412 100644
--- a/externals/miXed/cyclone/sickle/pow.c
+++ b/externals/miXed/cyclone/sickle/pow.c
@@ -33,7 +33,7 @@ static t_int *pow_perform(t_int *w)
 
 static void pow_dsp(t_pow *x, t_signal **sp)
 {
-    dsp_add(pow_perform, 4, sp[0]->s_n,
+    dsp_add(pow_perform, 4, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/rampsmooth.c b/externals/miXed/cyclone/sickle/rampsmooth.c
index 00819da67..141cd1df5 100644
--- a/externals/miXed/cyclone/sickle/rampsmooth.c
+++ b/externals/miXed/cyclone/sickle/rampsmooth.c
@@ -129,7 +129,7 @@ static t_int *rampsmooth_perform(t_int *w)
 
 static void rampsmooth_dsp(t_rampsmooth *x, t_signal **sp)
 {
-    dsp_add(rampsmooth_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(rampsmooth_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void rampsmooth_rampup(t_rampsmooth *x, t_floatarg f)
diff --git a/externals/miXed/cyclone/sickle/rand.c b/externals/miXed/cyclone/sickle/rand.c
index 29047c263..abceac4ef 100644
--- a/externals/miXed/cyclone/sickle/rand.c
+++ b/externals/miXed/cyclone/sickle/rand.c
@@ -67,7 +67,7 @@ static t_int *rand_perform(t_int *w)
 static void rand_dsp(t_rand *x, t_signal **sp)
 {
     x->x_rcpsr = 1. / sp[0]->s_sr;
-    dsp_add(rand_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(rand_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *rand_new(t_floatarg f)
diff --git a/externals/miXed/cyclone/sickle/reson.c b/externals/miXed/cyclone/sickle/reson.c
index a9d9cf44b..6adcd0678 100644
--- a/externals/miXed/cyclone/sickle/reson.c
+++ b/externals/miXed/cyclone/sickle/reson.c
@@ -91,7 +91,7 @@ static void reson_dsp(t_reson *x, t_signal **sp)
 {
     x->x_srcoef = SHARED_2PI / sp[0]->s_sr;
     reson_clear(x);
-    dsp_add(reson_perform, 7, x, sp[0]->s_n,
+    dsp_add(reson_perform, 7, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
 	    sp[4]->s_vec);
 }
diff --git a/externals/miXed/cyclone/sickle/round.c b/externals/miXed/cyclone/sickle/round.c
index 221de1414..3d8946a69 100644
--- a/externals/miXed/cyclone/sickle/round.c
+++ b/externals/miXed/cyclone/sickle/round.c
@@ -135,7 +135,7 @@ static void round_tilde_nearest(t_round_tilde *x, t_float f, t_float glob){
 }
 static void round_tilde_dsp(t_round_tilde *x, t_signal **sp)
 {
-	dsp_add(round_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+	dsp_add(round_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/miXed/cyclone/sickle/sah.c b/externals/miXed/cyclone/sickle/sah.c
index afac1e09a..e06093eb4 100644
--- a/externals/miXed/cyclone/sickle/sah.c
+++ b/externals/miXed/cyclone/sickle/sah.c
@@ -41,7 +41,7 @@ static t_int *sah_perform(t_int *w)
 
 static void sah_dsp(t_sah *x, t_signal **sp)
 {
-    dsp_add(sah_perform, 5, x, sp[0]->s_n,
+    dsp_add(sah_perform, 5, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/sampstoms.c b/externals/miXed/cyclone/sickle/sampstoms.c
index 36b686c28..fe7882c32 100644
--- a/externals/miXed/cyclone/sickle/sampstoms.c
+++ b/externals/miXed/cyclone/sickle/sampstoms.c
@@ -34,7 +34,7 @@ static void sampstoms_dsp(t_sampstoms *x, t_signal **sp)
 {
     x->x_rcpksr = 1000. / sp[0]->s_sr;
     dsp_add(sampstoms_perform, 4, x,
-	    sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+	    (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *sampstoms_new(void)
diff --git a/externals/miXed/cyclone/sickle/sinh.c b/externals/miXed/cyclone/sickle/sinh.c
index ff33b651a..2b9a9fd3d 100644
--- a/externals/miXed/cyclone/sickle/sinh.c
+++ b/externals/miXed/cyclone/sickle/sinh.c
@@ -29,7 +29,7 @@ static t_int *sinh_perform(t_int *w)
 
 static void sinh_dsp(t_sinh *x, t_signal **sp)
 {
-    dsp_add(sinh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(sinh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *sinh_new(void)
diff --git a/externals/miXed/cyclone/sickle/sinx.c b/externals/miXed/cyclone/sickle/sinx.c
index 29c7c4e51..a11e1be18 100644
--- a/externals/miXed/cyclone/sickle/sinx.c
+++ b/externals/miXed/cyclone/sickle/sinx.c
@@ -32,7 +32,7 @@ static t_int *sinx_perform(t_int *w)
 
 static void sinx_dsp(t_sinx *x, t_signal **sp)
 {
-    dsp_add(sinx_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(sinx_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *sinx_new(void)
diff --git a/externals/miXed/cyclone/sickle/slide.c b/externals/miXed/cyclone/sickle/slide.c
index f672fe0b8..d6ee78c2f 100644
--- a/externals/miXed/cyclone/sickle/slide.c
+++ b/externals/miXed/cyclone/sickle/slide.c
@@ -55,7 +55,7 @@ static t_int *slide_perform(t_int *w)
 
 static void slide_dsp(t_slide *x, t_signal **sp)
 {
-    dsp_add(slide_perform, 6, x, sp[0]->s_n,
+    dsp_add(slide_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/spike.c b/externals/miXed/cyclone/sickle/spike.c
index 13f9361bc..325b3e399 100644
--- a/externals/miXed/cyclone/sickle/spike.c
+++ b/externals/miXed/cyclone/sickle/spike.c
@@ -76,7 +76,7 @@ static void spike_dsp(t_spike *x, t_signal **sp)
     x->x_ksr = sp[0]->s_sr * 0.001;
     x->x_rcpksr = 1000.0 / sp[0]->s_sr;
     x->x_nwait = (int)(x->x_waittime * x->x_ksr);
-    dsp_add(spike_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(spike_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void spike_free(t_spike *x)
diff --git a/externals/miXed/cyclone/sickle/svf.c b/externals/miXed/cyclone/sickle/svf.c
index bb8437bbe..267c19b82 100644
--- a/externals/miXed/cyclone/sickle/svf.c
+++ b/externals/miXed/cyclone/sickle/svf.c
@@ -122,7 +122,7 @@ static void svf_dsp(t_svf *x, t_signal **sp)
 {
     x->x_srcoef = SHARED_2PI / sp[0]->s_sr;
     svf_clear(x);
-    dsp_add(svf_perform, 9, x, sp[0]->s_n,
+    dsp_add(svf_perform, 9, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
 	    sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec);
 }
diff --git a/externals/miXed/cyclone/sickle/tanh.c b/externals/miXed/cyclone/sickle/tanh.c
index 0278e84dd..1d5978c53 100644
--- a/externals/miXed/cyclone/sickle/tanh.c
+++ b/externals/miXed/cyclone/sickle/tanh.c
@@ -29,7 +29,7 @@ static t_int *tanh_perform(t_int *w)
 
 static void tanh_dsp(t_tanh *x, t_signal **sp)
 {
-    dsp_add(tanh_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(tanh_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *tanh_new(void)
diff --git a/externals/miXed/cyclone/sickle/tanx.c b/externals/miXed/cyclone/sickle/tanx.c
index b55e748da..4fa3c2677 100644
--- a/externals/miXed/cyclone/sickle/tanx.c
+++ b/externals/miXed/cyclone/sickle/tanx.c
@@ -32,7 +32,7 @@ static t_int *tanx_perform(t_int *w)
 
 static void tanx_dsp(t_tanx *x, t_signal **sp)
 {
-    dsp_add(tanx_perform, 3, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(tanx_perform, 3, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 static void *tanx_new(void)
diff --git a/externals/miXed/cyclone/sickle/train.c b/externals/miXed/cyclone/sickle/train.c
index b07ba9a59..9bb32239b 100644
--- a/externals/miXed/cyclone/sickle/train.c
+++ b/externals/miXed/cyclone/sickle/train.c
@@ -84,7 +84,7 @@ static t_int *train_perform(t_int *w)
 static void train_dsp(t_train *x, t_signal **sp)
 {
     x->x_rcpksr = 1000. / sp[0]->s_sr;
-    dsp_add(train_perform, 6, x, sp[0]->s_n,
+    dsp_add(train_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/trapezoid.c b/externals/miXed/cyclone/sickle/trapezoid.c
index b33cb022f..89404b572 100644
--- a/externals/miXed/cyclone/sickle/trapezoid.c
+++ b/externals/miXed/cyclone/sickle/trapezoid.c
@@ -77,7 +77,7 @@ static t_int *trapezoid_perform(t_int *w)
 
 static void trapezoid_dsp(t_trapezoid *x, t_signal **sp)
 {
-    dsp_add(trapezoid_perform, 6, x, sp[0]->s_n,
+    dsp_add(trapezoid_perform, 6, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/triangle.c b/externals/miXed/cyclone/sickle/triangle.c
index 703e5bab6..a7f611035 100644
--- a/externals/miXed/cyclone/sickle/triangle.c
+++ b/externals/miXed/cyclone/sickle/triangle.c
@@ -68,7 +68,7 @@ static t_int *triangle_perform(t_int *w)
 
 static void triangle_dsp(t_triangle *x, t_signal **sp)
 {
-    dsp_add(triangle_perform, 5, x, sp[0]->s_n,
+    dsp_add(triangle_perform, 5, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/trunc.c b/externals/miXed/cyclone/sickle/trunc.c
index 25d034dae..e1fd8265b 100644
--- a/externals/miXed/cyclone/sickle/trunc.c
+++ b/externals/miXed/cyclone/sickle/trunc.c
@@ -47,7 +47,7 @@ static t_int * trunc_perform(t_int *w){
 // DSP Function
 // ---------------------------------------------------
 static void trunc_dsp(t_trunc *x, t_signal **sp){
-   dsp_add(trunc_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+   dsp_add(trunc_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 }
 
 // ---------------------------------------------------
@@ -86,4 +86,4 @@ void trunc_tilde_setup(void) {
 
    class_addmethod(trunc_class, (t_method) trunc_dsp, gensym("dsp"), 0);
 }
-// EOF---------------------------------------------------
\ No newline at end of file
+// EOF---------------------------------------------------
diff --git a/externals/miXed/cyclone/sickle/vectral.c b/externals/miXed/cyclone/sickle/vectral.c
index b9cdf69f6..a161e70fb 100644
--- a/externals/miXed/cyclone/sickle/vectral.c
+++ b/externals/miXed/cyclone/sickle/vectral.c
@@ -139,7 +139,7 @@ static void vectral_dsp(t_vectral *x, t_signal **sp)
     int nblock = sp[0]->s_n;
     if (nblock > x->x_bufsize)
 	nblock = x->x_bufsize;  /* CHECKME */
-    dsp_add(vectral_perform, 6, x, nblock,
+    dsp_add(vectral_perform, 6, x, (t_int)nblock,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
 }
 
diff --git a/externals/miXed/cyclone/sickle/zerox.c b/externals/miXed/cyclone/sickle/zerox.c
index 95b35d6c5..b226f70c3 100644
--- a/externals/miXed/cyclone/sickle/zerox.c
+++ b/externals/miXed/cyclone/sickle/zerox.c
@@ -53,7 +53,7 @@ static t_int *zerox_perform(t_int *w)
 
 static void zerox_dsp(t_zerox *x, t_signal **sp)
 {
-    dsp_add(zerox_perform, 5, x, sp[0]->s_n,
+    dsp_add(zerox_perform, 5, x, (t_int)sp[0]->s_n,
 	    sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 }
 
diff --git a/externals/mjlib/convolve~.c b/externals/mjlib/convolve~.c
index e2356a963..5d18d8fc8 100644
--- a/externals/mjlib/convolve~.c
+++ b/externals/mjlib/convolve~.c
@@ -41,7 +41,7 @@ t_int *convolve_tilde_perform(t_int *w)
 
 static void convolve_tilde_dsp(t_convolve_tilde *x, t_signal **sp)
 {
-   dsp_add(convolve_tilde_perform, 5,sp[0]->s_vec, sp[1]->s_vec , sp[2]->s_vec , x ,sp[0]->s_n);
+   dsp_add(convolve_tilde_perform, 5,sp[0]->s_vec, sp[1]->s_vec , sp[2]->s_vec , x , (t_int)sp[0]->s_n);
 }
 
 /**
diff --git a/externals/mjlib/pin~.c b/externals/mjlib/pin~.c
index 51a6ba3f3..929a1fe1c 100644
--- a/externals/mjlib/pin~.c
+++ b/externals/mjlib/pin~.c
@@ -66,7 +66,7 @@ t_int *pin_tilde_perform(t_int *w)
 
 static void pin_tilde_dsp(t_pin_tilde *x, t_signal **sp)
 {
-   dsp_add(pin_tilde_perform, 5,sp[0]->s_vec, sp[1]->s_vec , sp[2]->s_vec , x ,sp[0]->s_n);
+   dsp_add(pin_tilde_perform, 5,sp[0]->s_vec, sp[1]->s_vec , sp[2]->s_vec , x ,(t_int)sp[0]->s_n);
 }
 
 /**
diff --git a/externals/mjlib/synapseA~.c b/externals/mjlib/synapseA~.c
index d6a9190f9..ab9952265 100644
--- a/externals/mjlib/synapseA~.c
+++ b/externals/mjlib/synapseA~.c
@@ -59,7 +59,7 @@ t_int *synapseA_tilde_perform(t_int *w)
 static void synapseA_tilde_dsp(t_synapseA_tilde *x, t_signal **sp)
 {
 	x->n_inv=1./sp[0]->s_n;
-   dsp_add(synapseA_tilde_perform, 3,sp[0]->s_vec , x ,sp[0]->s_n);
+   dsp_add(synapseA_tilde_perform, 3,sp[0]->s_vec , x , (t_int)sp[0]->s_n);
 }
 
 /**
diff --git a/externals/mmonoplayer/atari2600~.c b/externals/mmonoplayer/atari2600~.c
index 55bce8a80..b6618cf60 100644
--- a/externals/mmonoplayer/atari2600~.c
+++ b/externals/mmonoplayer/atari2600~.c
@@ -148,7 +148,7 @@ void *atari_2600_new(void)
 
 void atari_2600_dsp(t_atari_2600 *x, t_signal **sp, short *count) 
 {   
-  dsp_add(atari_2600_perform, 3, sp[0]->s_vec, sp[0]->s_n, x); 
+  dsp_add(atari_2600_perform, 3, sp[0]->s_vec, (t_int)sp[0]->s_n, x); 
 }  
 
 t_int *atari_2600_perform(t_int *w) 
diff --git a/externals/moonlib/panvol~.c b/externals/moonlib/panvol~.c
index 11bcc378b..e644e10da 100644
--- a/externals/moonlib/panvol~.c
+++ b/externals/moonlib/panvol~.c
@@ -86,7 +86,7 @@ static void pan_dsp(t_pan *x, t_signal **sp)
     float *out2 = sp[2]->s_vec;
 
     dsp_add(pan_perform, 5,
-            in1, out1, out2, n, x);
+            in1, out1, out2, (t_int)n, x);
 }
 
 static void pan_f(t_pan *x, t_floatarg f)
diff --git a/externals/moonlib/sfread2~.c b/externals/moonlib/sfread2~.c
index 30e288031..e5e2a6fb9 100644
--- a/externals/moonlib/sfread2~.c
+++ b/externals/moonlib/sfread2~.c
@@ -276,17 +276,17 @@ static void sfread_dsp(t_sfread *x, t_signal **sp)
     {
     case 1:
         dsp_add(sfread_perform, 4, x, sp[0]->s_vec,
-                sp[1]->s_vec, sp[0]->s_n);
+                sp[1]->s_vec, (t_int)sp[0]->s_n);
         break;
     case 2:
         dsp_add(sfread_perform, 5, x, sp[0]->s_vec,
-                sp[1]->s_vec,sp[2]->s_vec, sp[0]->s_n);
+                sp[1]->s_vec,sp[2]->s_vec, (t_int)sp[0]->s_n);
         break;
     case 4:
         dsp_add(sfread_perform, 6, x, sp[0]->s_vec,
                 sp[1]->s_vec,sp[2]->s_vec,
                 sp[3]->s_vec,sp[4]->s_vec,
-                sp[0]->s_n);
+                (t_int)sp[0]->s_n);
         break;
     }
 }
diff --git a/externals/moonlib/ssaw~.c b/externals/moonlib/ssaw~.c
index fd6bb2486..25ef5d06c 100644
--- a/externals/moonlib/ssaw~.c
+++ b/externals/moonlib/ssaw~.c
@@ -183,7 +183,7 @@ static t_int *ssaw_perform(t_int *w)
 static void ssaw_dsp(t_ssaw *x, t_signal **sp)
 {
     x->x_conv = 1./sp[0]->s_sr;
-    dsp_add(ssaw_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(ssaw_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void ssaw_ft1(t_ssaw *x, t_float f)
diff --git a/externals/moonlib/tabenv.c b/externals/moonlib/tabenv.c
index b499e225a..0e693242e 100644
--- a/externals/moonlib/tabenv.c
+++ b/externals/moonlib/tabenv.c
@@ -224,7 +224,7 @@ static void sigenv_dsp(t_tabenv *x, t_signal **sp)
     if (x->x_period % sp[0]->s_n) x->x_realperiod =
             x->x_period + sp[0]->s_n - (x->x_period % sp[0]->s_n);
     else x->x_realperiod = x->x_period;
-    dsp_add(sigenv_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(sigenv_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     if (sp[0]->s_n > MAXVSTAKEN) bug("sigenv_dsp");
 }
 
diff --git a/externals/motex/ln~.c b/externals/motex/ln~.c
index 5cb123680..73155ade2 100644
--- a/externals/motex/ln~.c
+++ b/externals/motex/ln~.c
@@ -111,9 +111,9 @@ t_int *ln_perf8(t_int *w)
 void dsp_add_ln(t_sample *in1, t_sample *out, int n, int flag)
 {
     if (n&7)
-    	dsp_add(ln_perform, 4, in1, out, n, flag);
+    	dsp_add(ln_perform, 4, in1, out, (t_int)n, (t_int)flag);
     else	
-    	dsp_add(ln_perf8, 4, in1, out, n, flag);
+    	dsp_add(ln_perf8, 4, in1, out, (t_int)n, (t_int)flag);
 }
 
 static void ln_dsp(t_ln *x, t_signal **sp)
diff --git a/externals/motex/pansig~.c b/externals/motex/pansig~.c
index 71ebf626b..0ceb769e4 100644
--- a/externals/motex/pansig~.c
+++ b/externals/motex/pansig~.c
@@ -95,7 +95,7 @@ static void pansig_dsp(t_pansig *x, t_signal **sp)
   float *out2 = sp[3]->s_vec;
 
   dsp_add(pansig_perform, 6,
-	  in1, in2, out1, out2, n, x);
+	  in1, in2, out1, out2, (t_int)n, x);
 }
 
 void pansig_f(t_pansig *x, t_floatarg f)
diff --git a/externals/motex/pan~.c b/externals/motex/pan~.c
index 3fce96ef0..d8fb44ade 100644
--- a/externals/motex/pan~.c
+++ b/externals/motex/pan~.c
@@ -79,7 +79,7 @@ static void pan_dsp(t_pan *x, t_signal **sp)
   float *out2 = sp[2]->s_vec;
 
   dsp_add(pan_perform, 5,
-	  in1, out1, out2, n, x);
+	  in1, out1, out2, (t_int)n, x);
 }
 
 void pan_f(t_pan *x, t_floatarg f)
diff --git a/externals/motex/pol2rec~.c b/externals/motex/pol2rec~.c
index b54d84eb6..14c1d8405 100644
--- a/externals/motex/pol2rec~.c
+++ b/externals/motex/pol2rec~.c
@@ -116,11 +116,11 @@ static void pol2rec_dsp(t_pol2rec *x, t_signal **sp)
 
     if (n&7)
       {
-      dsp_add(pol2rec_perform, 5, in1, in2, out1, out2, n);
+      dsp_add(pol2rec_perform, 5, in1, in2, out1, out2, (t_int)n);
       post("it's a seven");
       }
     else
-      dsp_add(pol2rec_perform8, 5, in1, in2, out1, out2, n);
+      dsp_add(pol2rec_perform8, 5, in1, in2, out1, out2, (t_int)n);
 }
 
 
diff --git a/externals/motex/polygate~.c b/externals/motex/polygate~.c
index 6e4a99351..dc2d1a80d 100644
--- a/externals/motex/polygate~.c
+++ b/externals/motex/polygate~.c
@@ -355,27 +355,27 @@ static void polygate_dsp(t_polygate *x, t_signal **sp)
   // must be a smarter way....
   switch (x->ninlets) 
     {
-    case 1: dsp_add(polygate_perform, 4, x, n, sp[0]->s_vec, sp[1]->s_vec);
+    case 1: dsp_add(polygate_perform, 4, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec);
       break;
-    case 2: dsp_add(polygate_perform, 5, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
+    case 2: dsp_add(polygate_perform, 5, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
       break;
-    case 3: dsp_add(polygate_perform, 6, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
+    case 3: dsp_add(polygate_perform, 6, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
       break;
-    case 4: dsp_add(polygate_perform, 7, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec);
+    case 4: dsp_add(polygate_perform, 7, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec);
       break;
-    case 5: dsp_add(polygate_perform, 8, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec);
+    case 5: dsp_add(polygate_perform, 8, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec);
       break;
-    case 6: dsp_add(polygate_perform, 9, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec);
+    case 6: dsp_add(polygate_perform, 9, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec);
       break;
-    case 7: dsp_add(polygate_perform, 10, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec);
+    case 7: dsp_add(polygate_perform, 10, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec);
       break;
-    case 8: dsp_add(polygate_perform, 11, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
+    case 8: dsp_add(polygate_perform, 11, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
 		    sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec);
     break;
-    case 9: dsp_add(polygate_perform, 12, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
+    case 9: dsp_add(polygate_perform, 12, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
 		    sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec, sp[9]->s_vec);
     break;
-    case 10: dsp_add(polygate_perform, 13, x, n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
+    case 10: dsp_add(polygate_perform, 13, x, (t_int)n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, 
 		     sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec, sp[9]->s_vec, sp[10]->s_vec);
     break;
     }
diff --git a/externals/motex/rec2pol~.c b/externals/motex/rec2pol~.c
index 56441f8fb..ab7be5a70 100644
--- a/externals/motex/rec2pol~.c
+++ b/externals/motex/rec2pol~.c
@@ -110,10 +110,10 @@ static void rec2pol_dsp(t_rec2pol *x, t_signal **sp)
   float *out1 = sp[2]->s_vec;
   float *out2 = sp[3]->s_vec;
   if (n&7)
-    dsp_add(rec2pol_perform, 5, in1, in2, out1, out2, n);
+    dsp_add(rec2pol_perform, 5, in1, in2, out1, out2, (t_int)n);
   else 
-    dsp_add(rec2pol_perform8, 5, in1, in2, out1, out2, n);
-/*   dsp_add(sigsqrt_perform, 3, out2, out2, n); */
+    dsp_add(rec2pol_perform8, 5, in1, in2, out1, out2, (t_int)n);
+/*   dsp_add(sigsqrt_perform, 3, out2, out2, (t_int)n); */
 }
 
 
diff --git a/externals/mrpeach/op~/op~.c b/externals/mrpeach/op~/op~.c
index 8a15bc3a3..5921b564a 100644
--- a/externals/mrpeach/op~/op~.c
+++ b/externals/mrpeach/op~/op~.c
@@ -221,7 +221,7 @@ static void op_tilde_dsp(t_op_tilde *x, t_signal **sp)
     t_sample    *out = sp[2]->s_vec;
     int         n = sp[0]->s_n;
 
-    dsp_add(op_tilde_perform, 5, x, in1, in2, out, n);
+    dsp_add(op_tilde_perform, 5, x, in1, in2, out, (t_int)n);
 }
 
 void op_tilde_setup(void)
diff --git a/externals/mrpeach/rcosc~/rcosc~.c b/externals/mrpeach/rcosc~/rcosc~.c
index 0ab1c9de6..601b1fa7a 100644
--- a/externals/mrpeach/rcosc~/rcosc~.c
+++ b/externals/mrpeach/rcosc~/rcosc~.c
@@ -79,7 +79,7 @@ static t_int *rcosc_tilde_perform(t_int *w)
 static void rcosc_tilde_dsp(t_rcosc_tilde *x, t_signal **sp)
 {
     x->rc_sp = sys_getsr();
-    dsp_add(rcosc_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(rcosc_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *rcosc_tilde_new(t_floatarg f)
diff --git a/externals/mrpeach/rc~/rc~.c b/externals/mrpeach/rc~/rc~.c
index 5cc750aca..1160ef3be 100644
--- a/externals/mrpeach/rc~/rc~.c
+++ b/externals/mrpeach/rc~/rc~.c
@@ -41,7 +41,7 @@ static t_int *rc_tilde_perform(t_int *w)
 
 static void rc_tilde_dsp(t_rc_tilde *x, t_signal **sp)
 {
-    dsp_add(rc_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(rc_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *rc_tilde_new(t_floatarg f)
diff --git a/externals/mrpeach/rojo~/rojo~.c b/externals/mrpeach/rojo~/rojo~.c
index 13c2f6b66..bf8eb86ad 100644
--- a/externals/mrpeach/rojo~/rojo~.c
+++ b/externals/mrpeach/rojo~/rojo~.c
@@ -84,7 +84,7 @@ static t_int *perform0(t_int *w)
 /*------------------------------------------------------------------*/
 static void rojo_dsp(t_rojo *x, t_signal **sp)
 {
-    dsp_add(perform0, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(perform0, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 /*------------------------------------------------------------------*/
 /* outlet 0:  red noise outlet       */
diff --git a/externals/mrpeach/sqosc~/sqosc~.c b/externals/mrpeach/sqosc~/sqosc~.c
index b62500647..d4f8b35be 100644
--- a/externals/mrpeach/sqosc~/sqosc~.c
+++ b/externals/mrpeach/sqosc~/sqosc~.c
@@ -322,7 +322,7 @@ static void sqosc_dsp(t_sqosc *x, t_signal **sp)
     x->x_conv = SQOSCTABSIZE/sp[0]->s_sr;
 /* conv = table period = (samples/cycle)/(samples/sec) = sec/cycle = 0.011610sec for 512/44100 */
 
-    dsp_add(sqosc_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(sqosc_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void sqosc_ft1(t_sqosc *x, t_float f)
diff --git a/externals/nusmuk/nusmuk-audio/bq~.c b/externals/nusmuk/nusmuk-audio/bq~.c
index af7b36866..9059756a6 100644
--- a/externals/nusmuk/nusmuk-audio/bq~.c
+++ b/externals/nusmuk/nusmuk-audio/bq~.c
@@ -93,7 +93,7 @@ static void bq_tilde_dsp(t_bq_tilde *x, t_signal **sp)
 {
     dsp_add(bq_tilde_perform, 9,
         sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, 
-			sp[5]->s_vec, sp[6]->s_vec, x->x_ctl, sp[0]->s_n);
+			sp[5]->s_vec, sp[6]->s_vec, x->x_ctl, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/nusmuk/nusmuk-audio/tabosc4c~.c b/externals/nusmuk/nusmuk-audio/tabosc4c~.c
index b7ebf5100..1eea1d828 100644
--- a/externals/nusmuk/nusmuk-audio/tabosc4c~.c
+++ b/externals/nusmuk/nusmuk-audio/tabosc4c~.c
@@ -225,7 +225,7 @@ static void tabosc4c_tilde_dsp(t_tabosc4c_tilde *x, t_signal **sp)
     tabosc4c_tilde_set(x, x->x_arrayname);
 
     dsp_add(tabosc4c_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void tabosc4c_tilde_setup(void)
diff --git a/externals/nusmuk/nusmuk-audio/tabosci~.c b/externals/nusmuk/nusmuk-audio/tabosci~.c
index 6301636a1..b350a3518 100644
--- a/externals/nusmuk/nusmuk-audio/tabosci~.c
+++ b/externals/nusmuk/nusmuk-audio/tabosci~.c
@@ -297,7 +297,7 @@ static void tabosci_tilde_dsp(t_tabosci_tilde *x, t_signal **sp)
         x->x_conv = 1. / sp[0]->s_sr;
     }
     tabosci_tilde_set(x, x->x_arrayname);
-    dsp_add(tabosci_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(tabosci_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void tabosci_tilde_setup(void)
diff --git a/externals/nusmuk/nusmuk-audio/tabread4c~.c b/externals/nusmuk/nusmuk-audio/tabread4c~.c
index e0de208f6..c9b694778 100644
--- a/externals/nusmuk/nusmuk-audio/tabread4c~.c
+++ b/externals/nusmuk/nusmuk-audio/tabread4c~.c
@@ -155,7 +155,7 @@ static void tabread4c_tilde_dsp(t_tabread4c_tilde *x, t_signal **sp)
     tabread4c_tilde_set(x, x->x_arrayname);
 
     dsp_add(tabread4c_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+        sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/olafmatt/clone/clone.c b/externals/olafmatt/clone/clone.c
index 0b4dd30ce..aa3007cd6 100644
--- a/externals/olafmatt/clone/clone.c
+++ b/externals/olafmatt/clone/clone.c
@@ -558,38 +558,38 @@ static void clone_dsp(t_clone *x, t_signal **sp)
 			switch (nsig)
 			{
 				case 1:
-					dsp_add(clone_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+					dsp_add(clone_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				case 2:
 					dsp_add(clone_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, 
-						sp[0]->s_n);
+						(t_int)sp[0]->s_n);
 					break;
 				case 3:
 					dsp_add(clone_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, 
-						sp[2]->s_vec, sp[0]->s_n);
+						sp[2]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				case 4:
 					dsp_add(clone_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, 
-						sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
+						sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				case 5:
 					dsp_add(clone_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, 
-						sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[0]->s_n);
+						sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				case 6:
 					dsp_add(clone_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, 
 						sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec,
-						sp[0]->s_n);
+						(t_int)sp[0]->s_n);
 					break;
 				case 7:
 					dsp_add(clone_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, 
 						sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec,
-						sp[6]->s_vec, sp[0]->s_n);
+						sp[6]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				case 8:
 					dsp_add(clone_perform, 6, x, sp[0]->s_vec, sp[1]->s_vec, 
 						sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec,
-						sp[6]->s_vec, sp[7]->s_vec, sp[0]->s_n);
+						sp[6]->s_vec, sp[7]->s_vec, (t_int)sp[0]->s_n);
 					break;
 				default:
 					break;
diff --git a/externals/olafmatt/clone/clone_signal.c b/externals/olafmatt/clone/clone_signal.c
index e650bc81b..df3fe702b 100644
--- a/externals/olafmatt/clone/clone_signal.c
+++ b/externals/olafmatt/clone/clone_signal.c
@@ -75,7 +75,7 @@ void clone_sigout_set(t_clone_sigout *x, int vs, t_float *vec)
 static void clone_sigout_dsp(t_clone_sigout *x, t_signal **sp)
 {
     if (sp[0]->s_n == x->x_vs)
-		dsp_add(clone_sigout_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+		dsp_add(clone_sigout_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     else
     	pd_error(x, "out~: vector size mismatch (dsp)");
 }
@@ -142,7 +142,7 @@ void clone_sigin_set(t_clone_sigin *x, int vs, t_float *vec)
 static void clone_sigin_dsp(t_clone_sigin *x, t_signal **sp)
 {
     if (sp[0]->s_n == x->x_vs)
-		dsp_add(clone_sigin_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+		dsp_add(clone_sigin_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
     else
     	pd_error(x, "in~: vector size mismatch (dsp)");
 }
diff --git a/externals/oscbank~/oscbank~.c b/externals/oscbank~/oscbank~.c
index ff5931213..e8b79871c 100644
--- a/externals/oscbank~/oscbank~.c
+++ b/externals/oscbank~/oscbank~.c
@@ -226,7 +226,7 @@ static void oscbank_dsp(t_oscbank *x, t_signal **sp)
 {
     x->sampleRate =  sp[0]->s_sr;
     x->sampleperiod = 1 / x->sampleRate;
-    dsp_add(oscbank_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(oscbank_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *oscbank_new(void)
diff --git a/externals/pdogg/oggread~.c b/externals/pdogg/oggread~.c
index fcb93975f..0fabdec56 100644
--- a/externals/pdogg/oggread~.c
+++ b/externals/pdogg/oggread~.c
@@ -215,7 +215,7 @@ static t_int *oggread_perform(t_int *w)
 
 static void oggread_dsp(t_oggread *x, t_signal **sp)
 {
-    dsp_add(oggread_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, sp[1]->s_n);
+    dsp_add(oggread_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[1]->s_n);
 }
 
 
diff --git a/externals/pdogg/oggwrite~.c b/externals/pdogg/oggwrite~.c
index a241ae97d..10376c067 100644
--- a/externals/pdogg/oggwrite~.c
+++ b/externals/pdogg/oggwrite~.c
@@ -291,7 +291,7 @@ static t_int *oggwrite_perform(t_int *w)
 
 static void oggwrite_dsp(t_oggwrite *x, t_signal **sp)
 {
-    dsp_add(oggwrite_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(oggwrite_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
     /* initialize the vorbisenc library */
diff --git a/externals/pdp/modules/generic/pdp_metro.c b/externals/pdp/modules/generic/pdp_metro.c
index 9e3e96b57..1b2cb9013 100644
--- a/externals/pdp/modules/generic/pdp_metro.c
+++ b/externals/pdp/modules/generic/pdp_metro.c
@@ -50,7 +50,7 @@ static t_int *metro_perform(t_int *w);
 #define DSP_ARG(type, name, source) type name = (type)source
 static void metro_dsp(t_metro *x, t_signal **sp)
 {
-    dsp_add(metro_perform, 3, x, sp[0]->s_n, (int)sys_getsr());
+    dsp_add(metro_perform, 3, x, (t_int)sp[0]->s_n, (t_int)sys_getsr());
 }
 static t_int *metro_perform(t_int *w){
     DSP_ARG(t_metro*, x,  w[1]);
diff --git a/externals/pdp/modules/image_io/pdp_qt.c b/externals/pdp/modules/image_io/pdp_qt.c
index 530b87fe1..83740379e 100644
--- a/externals/pdp/modules/image_io/pdp_qt.c
+++ b/externals/pdp/modules/image_io/pdp_qt.c
@@ -838,7 +838,7 @@ static t_int *pdp_qt_perform(t_int *w)
 
 static void pdp_qt_dsp(t_pdp_qt *x, t_signal **sp)
 {
-    dsp_add(pdp_qt_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(pdp_qt_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/pdp/modules/image_special/pdp_scan.c b/externals/pdp/modules/image_special/pdp_scan.c
index 2efdd0457..0674c905e 100644
--- a/externals/pdp/modules/image_special/pdp_scan.c
+++ b/externals/pdp/modules/image_special/pdp_scan.c
@@ -156,7 +156,7 @@ static void pdp_scan_input_0(t_pdp_scan *x, t_symbol *s, t_floatarg f)
 
 static void pdp_scan_dsp (t_pdp_scan *x, t_signal **sp)
 {
-    dsp_add(pdp_scan_perform, 4, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
+    dsp_add(pdp_scan_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
 
 }
 
diff --git a/externals/pdp/modules/image_special/pdp_scanxy.c b/externals/pdp/modules/image_special/pdp_scanxy.c
index 90d96e5ac..feeebf612 100644
--- a/externals/pdp/modules/image_special/pdp_scanxy.c
+++ b/externals/pdp/modules/image_special/pdp_scanxy.c
@@ -141,7 +141,7 @@ static void pdp_scanxy_input_0(t_pdp_scanxy *x, t_symbol *s, t_floatarg f)
 
 static void pdp_scanxy_dsp (t_pdp_scanxy *x, t_signal **sp)
 {
-    dsp_add(pdp_scanxy_perform, 5, x, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
+    dsp_add(pdp_scanxy_perform, 5, x, (t_int)sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
 
 }
 
diff --git a/externals/pdp/modules/image_special/pdp_scope.c b/externals/pdp/modules/image_special/pdp_scope.c
index 5b28b85b7..18627151c 100644
--- a/externals/pdp/modules/image_special/pdp_scope.c
+++ b/externals/pdp/modules/image_special/pdp_scope.c
@@ -255,7 +255,7 @@ static t_int *pdp_scope_perform(t_int *w)
 }
 static void pdp_scope_dsp(t_pdp_scope *x, t_signal **sp)
 {
-    dsp_add(pdp_scope_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(pdp_scope_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 
 }
   
diff --git a/externals/pidip/modules/pdp_icedthe~.c b/externals/pidip/modules/pdp_icedthe~.c
index 9d481d410..ad1abfaa4 100755
--- a/externals/pidip/modules/pdp_icedthe~.c
+++ b/externals/pidip/modules/pdp_icedthe~.c
@@ -1289,7 +1289,7 @@ static t_int *pdp_icedthe_perform(t_int *w)
 
 static void pdp_icedthe_dsp(t_pdp_icedthe *x, t_signal **sp)
 {
-    dsp_add(pdp_icedthe_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_icedthe_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void pdp_icedthe_free(t_pdp_icedthe *x)
diff --git a/externals/pidip/modules/pdp_rec~.c b/externals/pidip/modules/pdp_rec~.c
index e7744a9c5..0cdea9385 100755
--- a/externals/pidip/modules/pdp_rec~.c
+++ b/externals/pidip/modules/pdp_rec~.c
@@ -473,7 +473,7 @@ static t_int *pdp_rec_perform(t_int *w)
 
 static void pdp_rec_dsp(t_pdp_rec *x, t_signal **sp)
 {
-    dsp_add(pdp_rec_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_rec_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void pdp_rec_process_yv12(t_pdp_rec *x)
diff --git a/externals/pidip/modules/pdp_segsnd~.c b/externals/pidip/modules/pdp_segsnd~.c
index 54bbf3987..6329d4e9e 100755
--- a/externals/pidip/modules/pdp_segsnd~.c
+++ b/externals/pidip/modules/pdp_segsnd~.c
@@ -343,7 +343,7 @@ static t_int *pdp_segsnd_perform(t_int *w)
 
 static void pdp_segsnd_dsp(t_pdp_segsnd *x, t_signal **sp)
 {
-    dsp_add(pdp_segsnd_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_segsnd_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 t_class *pdp_segsnd_class;
diff --git a/externals/pidip/modules/pdp_theonice~.c b/externals/pidip/modules/pdp_theonice~.c
index 23fc2317b..23fc77c4d 100755
--- a/externals/pidip/modules/pdp_theonice~.c
+++ b/externals/pidip/modules/pdp_theonice~.c
@@ -985,7 +985,7 @@ static t_int *pdp_theonice_perform(t_int *w)
 
 static void pdp_theonice_dsp(t_pdp_theonice *x, t_signal **sp)
 {
-    dsp_add(pdp_theonice_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_theonice_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void pdp_theonice_process_yv12(t_pdp_theonice *x)
diff --git a/externals/pidip/modules/pdp_theorin~.c b/externals/pidip/modules/pdp_theorin~.c
index c689cd6ae..b1574fb0f 100755
--- a/externals/pidip/modules/pdp_theorin~.c
+++ b/externals/pidip/modules/pdp_theorin~.c
@@ -879,7 +879,7 @@ static t_int *pdp_theorin_perform(t_int *w)
 
 static void pdp_theorin_dsp(t_pdp_theorin *x, t_signal **sp)
 {
-    dsp_add(pdp_theorin_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_theorin_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void pdp_theorin_free(t_pdp_theorin *x)
diff --git a/externals/pidip/modules/pdp_theorout~.c b/externals/pidip/modules/pdp_theorout~.c
index c8281c702..9f6e84af9 100755
--- a/externals/pidip/modules/pdp_theorout~.c
+++ b/externals/pidip/modules/pdp_theorout~.c
@@ -518,7 +518,7 @@ static t_int *pdp_theorout_perform(t_int *w)
 
 static void pdp_theorout_dsp(t_pdp_theorout *x, t_signal **sp)
 {
-    dsp_add(pdp_theorout_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(pdp_theorout_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void pdp_theorout_process_yv12(t_pdp_theorout *x)
diff --git a/externals/pidip/modules/pdp_yqt.c b/externals/pidip/modules/pdp_yqt.c
index 0414cda7b..5ae2edd80 100755
--- a/externals/pidip/modules/pdp_yqt.c
+++ b/externals/pidip/modules/pdp_yqt.c
@@ -428,7 +428,7 @@ static t_int *pdp_yqt_perform(t_int *w)
 
 static void pdp_yqt_dsp(t_pdp_yqt *x, t_signal **sp)
 {
-    dsp_add(pdp_yqt_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, sp[1]->s_n);
+    dsp_add(pdp_yqt_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[1]->s_n);
 }
 
 
diff --git a/externals/pmpd/pmpd~.c b/externals/pmpd/pmpd~.c
index 7ca462681..1c4d842d0 100644
--- a/externals/pmpd/pmpd~.c
+++ b/externals/pmpd/pmpd~.c
@@ -219,7 +219,7 @@ void pmpd_tilde_dsp(t_pmpd_tilde *x, t_signal **sp)
 	for (i=0; i<x->nb_outlet; i++)
 		x->outlet_vector[i] = sp[i+x->nb_inlet]->s_vec;
 
-	dsp_add(pmpd_tilde_perform, 2, x, sp[0]->s_n);
+	dsp_add(pmpd_tilde_perform, 2, x, (t_int)sp[0]->s_n);
 }
 
 void pmpd_tilde_bang(t_pmpd_tilde *x)
diff --git a/externals/postlude/flib/src/bmax~.c b/externals/postlude/flib/src/bmax~.c
index 26b93dbfc..869e44d5b 100644
--- a/externals/postlude/flib/src/bmax~.c
+++ b/externals/postlude/flib/src/bmax~.c
@@ -74,7 +74,7 @@ static t_int *bmax_perform(t_int *w)
 static void bmax_dsp(t_bmax *x, t_signal **sp)
 {
   dsp_add(bmax_perform, 4,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *bmax_new(t_floatarg f)
diff --git a/externals/postlude/flib/src/cc~.c b/externals/postlude/flib/src/cc~.c
index 88ce67e59..882e3edb2 100644
--- a/externals/postlude/flib/src/cc~.c
+++ b/externals/postlude/flib/src/cc~.c
@@ -239,10 +239,10 @@ static void cc_dsp(t_cc *x, t_signal **sp)
 {
     if(!x->is_freq_domain)
 	dsp_add(cc_perform_time_domain, 5,
-		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n, x->delay);
+		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n, x->delay);
     else
 	dsp_add(cc_perform_freq_domain, 5, x,
-		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/postlude/flib/src/clean~.c b/externals/postlude/flib/src/clean~.c
index 33513b8fb..f2b39e79f 100644
--- a/externals/postlude/flib/src/clean~.c
+++ b/externals/postlude/flib/src/clean~.c
@@ -60,7 +60,7 @@ static t_int *clean_perform(t_int *w)
 static void clean_dsp(t_clean *x, t_signal **sp)
 {
   dsp_add(clean_perform, 4,
-          sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x);
+          sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void clean_float(t_clean *x, t_float f)  
diff --git a/externals/postlude/flib/src/cross~.c b/externals/postlude/flib/src/cross~.c
index dd94bea01..0a93a1145 100644
--- a/externals/postlude/flib/src/cross~.c
+++ b/externals/postlude/flib/src/cross~.c
@@ -162,10 +162,10 @@ static void cross_dsp(t_cross *x, t_signal **sp)
 {
     if(!x->is_freq_domain)
 	dsp_add(cross_perform_time_domain, 5,
-		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n, x->delay);
+		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n, x->delay);
     else
 	dsp_add(cross_perform_freq_domain, 5, x,
-		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+		sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *cross_new(t_symbol *s, t_int argc, t_atom *argv)
diff --git a/externals/postlude/flib/src/ha~.c b/externals/postlude/flib/src/ha~.c
index aa70190bf..76f7ef81c 100644
--- a/externals/postlude/flib/src/ha~.c
+++ b/externals/postlude/flib/src/ha~.c
@@ -49,7 +49,7 @@ static t_int *hca_perform(t_int *w)
 static void hca_dsp(t_hca *x, t_signal **sp)
 {
   dsp_add(hca_perform, 3,
-          sp[0]->s_vec, sp[0]->s_n, x->p);
+          sp[0]->s_vec, (t_int)sp[0]->s_n, x->p);
 
 }
 
diff --git a/externals/postlude/flib/src/hca~.c b/externals/postlude/flib/src/hca~.c
index e551879ba..ad9787798 100644
--- a/externals/postlude/flib/src/hca~.c
+++ b/externals/postlude/flib/src/hca~.c
@@ -69,7 +69,7 @@ static t_int *hca_perform(t_int *w)
 static void hca_dsp(t_hca *x, t_signal **sp)
 {
   dsp_add(hca_perform, 3,
-          sp[0]->s_vec, sp[0]->s_n, x);
+          sp[0]->s_vec, (t_int)sp[0]->s_n, x);
 
 }
 
diff --git a/externals/postlude/flib/src/irreg~.c b/externals/postlude/flib/src/irreg~.c
index 3733997cd..8dd7fca60 100644
--- a/externals/postlude/flib/src/irreg~.c
+++ b/externals/postlude/flib/src/irreg~.c
@@ -46,7 +46,7 @@ static t_int *irreg_perform(t_int *w)
 static void irreg_dsp(t_irreg *x, t_signal **sp)
 {
   dsp_add(irreg_perform, 3,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *irreg_new(void)
diff --git a/externals/postlude/flib/src/melf~.c b/externals/postlude/flib/src/melf~.c
index ebe4a2226..f0ae6bbc8 100644
--- a/externals/postlude/flib/src/melf~.c
+++ b/externals/postlude/flib/src/melf~.c
@@ -72,7 +72,7 @@ static void melf_dsp(t_melf *x, t_signal **sp)
 {
   int n;
   dsp_add(melf_perform, 3,
-          sp[0]->s_vec, sp[0]->s_n, x);
+          sp[0]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void *melf_new(t_symbol *s, t_int argc, t_atom *argv)
diff --git a/externals/postlude/flib/src/mspec~.c b/externals/postlude/flib/src/mspec~.c
index 7538f08e9..8925fdb0b 100644
--- a/externals/postlude/flib/src/mspec~.c
+++ b/externals/postlude/flib/src/mspec~.c
@@ -60,7 +60,7 @@ static t_int *mspec_perform(t_int *w)
 static void mspec_dsp(t_mspec *x, t_signal **sp)
 {
   dsp_add(mspec_perform, 5,
-          sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n, x->p);
+          sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n, x->p);
 }
 
 static void *mspec_new(t_floatarg f)
diff --git a/externals/postlude/flib/src/peak~.c b/externals/postlude/flib/src/peak~.c
index 02107ace7..7c68a996c 100644
--- a/externals/postlude/flib/src/peak~.c
+++ b/externals/postlude/flib/src/peak~.c
@@ -97,7 +97,7 @@ static t_int *peak_perform(t_int *w)
 
 static void peak_dsp(t_peak *x, t_signal **sp)
 {
-  dsp_add(peak_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n,&x->thresh, x);
+  dsp_add(peak_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n,&x->thresh, x);
 }
 
 static void *peak_new(t_symbol *s, t_int argc, t_atom *argv)
diff --git a/externals/postlude/flib/src/pp~.c b/externals/postlude/flib/src/pp~.c
index 62eba15db..75db5d94e 100644
--- a/externals/postlude/flib/src/pp~.c
+++ b/externals/postlude/flib/src/pp~.c
@@ -45,7 +45,7 @@ static t_int *pp_perform(t_int *w)
 static void pp_dsp(t_pp *x, t_signal **sp)
 {
   dsp_add(pp_perform, 3,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *pp_new(void)
diff --git a/externals/postlude/flib/src/pspec~.c b/externals/postlude/flib/src/pspec~.c
index 76da33736..b77e7c19a 100644
--- a/externals/postlude/flib/src/pspec~.c
+++ b/externals/postlude/flib/src/pspec~.c
@@ -51,7 +51,7 @@ static t_int *pspec_perform(t_int *w)
 static void pspec_dsp(t_pspec *x, t_signal **sp)
 {
   dsp_add(pspec_perform, 4,
-          sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+          sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *pspec_new(void)
diff --git a/externals/postlude/flib/src/sc~.c b/externals/postlude/flib/src/sc~.c
index aa5ec5c87..cb3cb3b1a 100644
--- a/externals/postlude/flib/src/sc~.c
+++ b/externals/postlude/flib/src/sc~.c
@@ -50,7 +50,7 @@ static t_int *sc_perform(t_int *w)
 static void sc_dsp(t_sc *x, t_signal **sp)
 {
   dsp_add(sc_perform, 4,
-          sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sc_new(void)
diff --git a/externals/postlude/flib/src/sfm~.c b/externals/postlude/flib/src/sfm~.c
index ca19ca388..5f956f5ac 100644
--- a/externals/postlude/flib/src/sfm~.c
+++ b/externals/postlude/flib/src/sfm~.c
@@ -51,7 +51,7 @@ static t_int *sfm_perform(t_int *w)
 static void sfm_dsp(t_sfm *x, t_signal **sp)
 {
   dsp_add(sfm_perform, 3,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sfm_new(void)
diff --git a/externals/postlude/flib/src/ss~.c b/externals/postlude/flib/src/ss~.c
index a510f1c5a..3a0075933 100644
--- a/externals/postlude/flib/src/ss~.c
+++ b/externals/postlude/flib/src/ss~.c
@@ -47,7 +47,7 @@ static t_int *ss_perform(t_int *w)
 static void ss_dsp(t_ss *x, t_signal **sp)
 {
   dsp_add(ss_perform, 3,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *ss_new(void)
diff --git a/externals/postlude/flib/src/trist~.c b/externals/postlude/flib/src/trist~.c
index b04c8bb72..d0fb9b2f4 100644
--- a/externals/postlude/flib/src/trist~.c
+++ b/externals/postlude/flib/src/trist~.c
@@ -67,7 +67,7 @@ static t_int *trist_perform(t_int *w)
 static void trist_dsp(t_trist *x, t_signal **sp)
 {
   dsp_add(trist_perform, 3,
-          sp[0]->s_vec, x, sp[0]->s_n);
+          sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *trist_new(t_symbol *s)
diff --git a/externals/postlude/flib/src/wdv~.c b/externals/postlude/flib/src/wdv~.c
index 22ca536ea..2396ab291 100644
--- a/externals/postlude/flib/src/wdv~.c
+++ b/externals/postlude/flib/src/wdv~.c
@@ -164,7 +164,7 @@ static t_int *wdv_perform(t_int *w)
 static void wdv_dsp(t_wdv *x, t_signal **sp)
 {
   dsp_add(wdv_perform, 3,
-          sp[0]->s_vec, sp[0]->s_n, x);
+          sp[0]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 static void *wdv_new(t_symbol *s, t_int argc, t_atom *argv)
diff --git a/externals/rjlib/src/rj_barkflux_accum~.c b/externals/rjlib/src/rj_barkflux_accum~.c
index 90c5bd99e..d9994469c 100644
--- a/externals/rjlib/src/rj_barkflux_accum~.c
+++ b/externals/rjlib/src/rj_barkflux_accum~.c
@@ -258,7 +258,7 @@ static t_int *rj_barkflux_accum_perform(t_int *w)
     out the samples. */
 static void rj_barkflux_accum_dsp(t_rj_barkflux_accum *x, t_signal **sp)
 {
-    dsp_add(rj_barkflux_accum_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(rj_barkflux_accum_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void accum_set_st(t_rj_barkflux_accum *x, t_floatarg g)
diff --git a/externals/rjlib/src/rj_centroid~.c b/externals/rjlib/src/rj_centroid~.c
index 893a6aee5..211d042c8 100644
--- a/externals/rjlib/src/rj_centroid~.c
+++ b/externals/rjlib/src/rj_centroid~.c
@@ -61,7 +61,7 @@ static t_int *rj_centroid_perform(t_int *w)
     out the samples. */
 static void rj_centroid_dsp(t_rj_centroid *x, t_signal **sp)
 {
-    dsp_add(rj_centroid_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(rj_centroid_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *rj_centroid_new(void)
diff --git a/externals/rjlib/src/rj_senergy~.c b/externals/rjlib/src/rj_senergy~.c
index 2fa99f6b3..12f6d18b0 100644
--- a/externals/rjlib/src/rj_senergy~.c
+++ b/externals/rjlib/src/rj_senergy~.c
@@ -54,7 +54,7 @@ static t_int *rj_senergy_perform(t_int *w)
     out the samples. */
 static void rj_senergy_dsp(t_rj_senergy *x, t_signal **sp)
 {
-    dsp_add(rj_senergy_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(rj_senergy_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *rj_senergy_new(void)
diff --git a/externals/rjlib/src/rj_zcr~.c b/externals/rjlib/src/rj_zcr~.c
index d12d332e8..a00a06d9d 100644
--- a/externals/rjlib/src/rj_zcr~.c
+++ b/externals/rjlib/src/rj_zcr~.c
@@ -69,7 +69,7 @@ static t_int *rj_zcr_perform(t_int *w)
     out the samples. */
 static void rj_zcr_dsp(t_rj_zcr *x, t_signal **sp)
 {
-    dsp_add(rj_zcr_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(rj_zcr_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *rj_zcr_new(void)
diff --git a/externals/signal/bonk~/bonk~.c b/externals/signal/bonk~/bonk~.c
index cb05a0450..eb6217808 100644
--- a/externals/signal/bonk~/bonk~.c
+++ b/externals/signal/bonk~/bonk~.c
@@ -510,7 +510,7 @@ static void bonk_dsp(t_bonk *x, t_signal **sp)
     	gp->g_invec = (*(sp++))->s_vec;
 
     for (i = 0; i < n; i += vsize)
-    	dsp_add(bonk_perform, 3, x, vsize, i);
+    	dsp_add(bonk_perform, 3, x, (t_int)vsize, i);
 }
 
 static void bonk_thresh(t_bonk *x, t_floatarg f1, t_floatarg f2)
diff --git a/externals/signal/fiddle~/fiddle~.c b/externals/signal/fiddle~/fiddle~.c
index 7c9373388..be5212118 100644
--- a/externals/signal/fiddle~/fiddle~.c
+++ b/externals/signal/fiddle~/fiddle~.c
@@ -1417,7 +1417,7 @@ void sigfiddle_dsp(t_sigfiddle *x, t_signal **sp)
     x->x_sr = sp[0]->s_sr;
     sigfiddle_reattack(x, x->x_attacktime, x->x_attackthresh);
     sigfiddle_vibrato(x, x->x_vibtime, x->x_vibdepth);
-    dsp_add(fiddle_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(fiddle_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
     /* This is the callback function for the clock, but also acts as
@@ -1677,7 +1677,7 @@ void sigfiddle_dsp(t_sigfiddle *x, t_signal **sp)
    	}
 	sigfiddle_reattack(x, x->x_attacktime, x->x_attackthresh);
     sigfiddle_vibrato(x, x->x_vibtime, x->x_vibdepth);
-    dsp_add(fiddle_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(fiddle_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 void sigfiddle_tick(t_sigfiddle *x)	/* callback function for the clock MSP*/
diff --git a/externals/signal/loop~/loop~.c b/externals/signal/loop~/loop~.c
index b92c93bd3..567b6e0eb 100644
--- a/externals/signal/loop~/loop~.c
+++ b/externals/signal/loop~/loop~.c
@@ -137,7 +137,7 @@ static void loop_dsp(t_loop *x, t_signal **sp)
 {
     dsp_add(loop_perform, 6,
 	&x->x_loopctl, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,
-	    sp[0]->s_n);
+	    (t_int)sp[0]->s_n);
 }
 
 static void loop_set(t_loop *x, t_floatarg val)
diff --git a/externals/signal/lrshift~/lrshift~.c b/externals/signal/lrshift~/lrshift~.c
index d122ab2cb..8c7521260 100644
--- a/externals/signal/lrshift~/lrshift~.c
+++ b/externals/signal/lrshift~/lrshift~.c
@@ -81,7 +81,7 @@ static t_int *lrshift_perform(t_int *w)
 static void lrshift_tilde_dsp(t_lrshift_tilde *x, t_signal **sp)
 {
     int n = sp[0]->s_n;
-   	dsp_add(lrshift_perform, 4, sp[0]->s_vec, sp[1]->s_vec, n, x);
+   	dsp_add(lrshift_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)n, x);
 
 }
 
diff --git a/externals/sigpack/chop~.c b/externals/sigpack/chop~.c
index 29e862346..507f55f9f 100644
--- a/externals/sigpack/chop~.c
+++ b/externals/sigpack/chop~.c
@@ -55,7 +55,7 @@ static t_int *chop_tilde_perform(t_int *w)
 
 static void chop_tilde_dsp(t_chop_tilde *x, t_signal **sp)
 {
-    dsp_add(chop_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(chop_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void chop_tilde_setup(void)
diff --git a/externals/sigpack/decimate~.c b/externals/sigpack/decimate~.c
index 862341ccb..0574369a6 100644
--- a/externals/sigpack/decimate~.c
+++ b/externals/sigpack/decimate~.c
@@ -64,7 +64,7 @@ static t_int *decimate_tilde_perform(t_int *w)
 
 static void decimate_tilde_dsp(t_decimate_tilde *x, t_signal **sp)
 {
-    dsp_add(decimate_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(decimate_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void decimate_tilde_setup(void)
diff --git a/externals/sigpack/diode~.c b/externals/sigpack/diode~.c
index 29f2b3915..da46094a6 100644
--- a/externals/sigpack/diode~.c
+++ b/externals/sigpack/diode~.c
@@ -66,7 +66,7 @@ static t_int *diode_tilde_perform(t_int *w)
 
 static void diode_tilde_dsp(t_diode_tilde *x, t_signal **sp)
 {
-    dsp_add(diode_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(diode_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void diode_tilde_setup(void)
diff --git a/externals/sigpack/foldback~.c b/externals/sigpack/foldback~.c
index da3b2d04b..30505d687 100644
--- a/externals/sigpack/foldback~.c
+++ b/externals/sigpack/foldback~.c
@@ -58,7 +58,7 @@ static t_int *foldback_tilde_perform(t_int *w)
 
 static void foldback_tilde_dsp(t_foldback_tilde *x, t_signal **sp)
 {
-    dsp_add(foldback_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(foldback_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void foldback_tilde_setup(void)
diff --git a/externals/sigpack/foldover~.c b/externals/sigpack/foldover~.c
index 01d495135..8f06b7dfe 100644
--- a/externals/sigpack/foldover~.c
+++ b/externals/sigpack/foldover~.c
@@ -59,7 +59,7 @@ static t_int *foldover_tilde_perform(t_int *w)
 
 static void foldover_tilde_dsp(t_foldover_tilde *x, t_signal **sp)
 {
-    dsp_add(foldover_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(foldover_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void foldover_tilde_setup(void)
diff --git a/externals/sigpack/freqdiv~.c b/externals/sigpack/freqdiv~.c
index dd4c54726..fa8086ec4 100644
--- a/externals/sigpack/freqdiv~.c
+++ b/externals/sigpack/freqdiv~.c
@@ -88,7 +88,7 @@ static t_int *freqdiv_tilde_perform(t_int *w)
 
 static void freqdiv_tilde_dsp(t_freqdiv_tilde *x, t_signal **sp)
 {
-    dsp_add(freqdiv_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(freqdiv_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void freqdiv_tilde_setup(void)
diff --git a/externals/sigpack/freqshift~.c b/externals/sigpack/freqshift~.c
index d83dc2fa3..e885d29f8 100644
--- a/externals/sigpack/freqshift~.c
+++ b/externals/sigpack/freqshift~.c
@@ -192,7 +192,7 @@ static t_int *freqshift_tilde_perform(t_int *w)
 
 static void freqshift_tilde_dsp(t_freqshift_tilde *x, t_signal **sp)
 {
-    dsp_add(freqshift_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(freqshift_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void freqshift_tilde_free(t_freqshift_tilde *x)
diff --git a/externals/sigpack/hardlimit~.c b/externals/sigpack/hardlimit~.c
index d9fc26341..3e003e00f 100644
--- a/externals/sigpack/hardlimit~.c
+++ b/externals/sigpack/hardlimit~.c
@@ -69,7 +69,7 @@ static t_int *hardlimit_tilde_perform(t_int *w)
 
 static void hardlimit_tilde_dsp(t_hardlimit_tilde *x, t_signal **sp)
 {
-    dsp_add(hardlimit_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(hardlimit_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void hardlimit_tilde_setup(void)
diff --git a/externals/sigpack/harmgen~.c b/externals/sigpack/harmgen~.c
index 6dca5cf37..bfb6af0ee 100644
--- a/externals/sigpack/harmgen~.c
+++ b/externals/sigpack/harmgen~.c
@@ -151,7 +151,7 @@ static t_int *harmgen_tilde_perform(t_int *w)
 
 static void harmgen_tilde_dsp(t_harmgen_tilde *x, t_signal **sp)
 {
-    dsp_add(harmgen_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(harmgen_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void harmgen_tilde_setup(void)
diff --git a/externals/sigpack/impulse~.c b/externals/sigpack/impulse~.c
index aeb246115..ff412a506 100644
--- a/externals/sigpack/impulse~.c
+++ b/externals/sigpack/impulse~.c
@@ -65,7 +65,7 @@ static void impulse_tilde_ft1(t_impulse_tilde *x, t_float f)
 
 static void impulse_tilde_dsp(t_impulse_tilde *x, t_signal **sp)
 {
-    dsp_add(impulse_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(impulse_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void impulse_tilde_setup(void)
diff --git a/externals/sigpack/rectify~.c b/externals/sigpack/rectify~.c
index 42c45ec46..89434f863 100644
--- a/externals/sigpack/rectify~.c
+++ b/externals/sigpack/rectify~.c
@@ -49,7 +49,7 @@ static t_int *rectify_tilde_perform(t_int *w)
 
 static void rectify_tilde_dsp(t_rectify_tilde *x, t_signal **sp)
 {
-    dsp_add(rectify_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(rectify_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void rectify_tilde_setup(void)
diff --git a/externals/sigpack/round~.c b/externals/sigpack/round~.c
index 2d3bbae86..665db8a98 100644
--- a/externals/sigpack/round~.c
+++ b/externals/sigpack/round~.c
@@ -52,7 +52,7 @@ static t_int *round_tilde_perform(t_int *w)
 
 static void round_tilde_dsp(t_round_tilde *x, t_signal **sp)
 {
-    dsp_add(round_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(round_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void round_tilde_setup(void)
diff --git a/externals/sigpack/saturate~.c b/externals/sigpack/saturate~.c
index 0e8a8f552..788642e88 100644
--- a/externals/sigpack/saturate~.c
+++ b/externals/sigpack/saturate~.c
@@ -70,7 +70,7 @@ static t_int *saturate_tilde_perform(t_int *w)
 
 static void saturate_tilde_dsp(t_saturate_tilde *x, t_signal **sp)
 {
-    dsp_add(saturate_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(saturate_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void saturate_tilde_setup(void)
diff --git a/externals/sigpack/shape~.c b/externals/sigpack/shape~.c
index 0b2872030..0f82d4548 100644
--- a/externals/sigpack/shape~.c
+++ b/externals/sigpack/shape~.c
@@ -67,7 +67,7 @@ static t_int *shape_tilde_perform(t_int *w)
 
 static void shape_tilde_dsp(t_shape_tilde *x, t_signal **sp)
 {
-    dsp_add(shape_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(shape_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void shape_tilde_setup(void)
diff --git a/externals/sigpack/sieve~.c b/externals/sigpack/sieve~.c
index 0e0edb48c..f955d4603 100644
--- a/externals/sigpack/sieve~.c
+++ b/externals/sigpack/sieve~.c
@@ -93,7 +93,7 @@ static t_int *sieve_tilde_perform(t_int *w)
 
 static void sieve_tilde_dsp(t_sieve_tilde *x, t_signal **sp)
 {
-    dsp_add(sieve_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(sieve_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void sieve_tilde_setup(void)
diff --git a/externals/sigpack/split~.c b/externals/sigpack/split~.c
index f1e9ac0b0..14d9467ad 100644
--- a/externals/sigpack/split~.c
+++ b/externals/sigpack/split~.c
@@ -60,7 +60,7 @@ static t_int *split_tilde_perform(t_int *w)
 
 static void split_tilde_dsp(t_split_tilde *x, t_signal **sp)
 {
-    dsp_add(split_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(split_tilde_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void split_tilde_setup(void)
diff --git a/externals/sigpack/transient~.c b/externals/sigpack/transient~.c
index 786eb8dde..1b40ef78b 100644
--- a/externals/sigpack/transient~.c
+++ b/externals/sigpack/transient~.c
@@ -121,7 +121,7 @@ static t_int *transient_tilde_perform(t_int *w)
 
 static void transient_tilde_dsp(t_transient_tilde *x, t_signal **sp)
 {
-    dsp_add(transient_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(transient_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void transient_tilde_setup(void)
diff --git a/externals/sigpack/ustep~.c b/externals/sigpack/ustep~.c
index 6308e0f14..854ee559e 100644
--- a/externals/sigpack/ustep~.c
+++ b/externals/sigpack/ustep~.c
@@ -71,7 +71,7 @@ static t_int *ustep_tilde_perform(t_int *w)
 
 static void ustep_tilde_dsp(t_ustep_tilde *x, t_signal **sp)
 {
-    dsp_add(ustep_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(ustep_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void ustep_tilde_setup(void)
diff --git a/externals/sigpack/valverect~.c b/externals/sigpack/valverect~.c
index 38280303f..50df9ce1b 100644
--- a/externals/sigpack/valverect~.c
+++ b/externals/sigpack/valverect~.c
@@ -138,7 +138,7 @@ static t_int *valverect_tilde_perform(t_int *w)
 
 static void valverect_tilde_dsp(t_valverect_tilde *x, t_signal **sp)
 {
-    dsp_add(valverect_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(valverect_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void valverect_tilde_free(t_valverect_tilde *x)
diff --git a/externals/sigpack/vowel~.c b/externals/sigpack/vowel~.c
index 65931eac8..c0356b474 100644
--- a/externals/sigpack/vowel~.c
+++ b/externals/sigpack/vowel~.c
@@ -105,7 +105,7 @@ static t_int *vowel_tilde_perform(t_int *w)
 
 static void vowel_tilde_dsp(t_vowel_tilde *x, t_signal **sp)
 {
-    dsp_add(vowel_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(vowel_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void vowel_tilde_setup(void)
diff --git a/externals/sigpack/wavewrap~.c b/externals/sigpack/wavewrap~.c
index fbd15bd96..5a20c416c 100644
--- a/externals/sigpack/wavewrap~.c
+++ b/externals/sigpack/wavewrap~.c
@@ -64,7 +64,7 @@ static t_int *wavewrap_tilde_perform(t_int *w)
 
 static void wavewrap_tilde_dsp(t_wavewrap_tilde *x, t_signal **sp)
 {
-    dsp_add(wavewrap_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(wavewrap_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void wavewrap_tilde_setup(void)
diff --git a/externals/tb/erfc~/erfc~.c b/externals/tb/erfc~/erfc~.c
index 82baa558a..f0d3d0ad5 100644
--- a/externals/tb/erfc~/erfc~.c
+++ b/externals/tb/erfc~/erfc~.c
@@ -52,7 +52,7 @@ static t_int *erfc_perfcorm(t_int *w)
 
 static void erfc_dsp(t_erfc *x, t_signal **sp)
 {
-    dsp_add(erfc_perfcorm, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(erfc_perfcorm, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void erfc_tilde_setup(void)
diff --git a/externals/tb/erf~/erf~.c b/externals/tb/erf~/erf~.c
index db7e5d8af..e715d4462 100644
--- a/externals/tb/erf~/erf~.c
+++ b/externals/tb/erf~/erf~.c
@@ -52,7 +52,7 @@ static t_int *erf_perform(t_int *w)
 
 static void erf_dsp(t_erf *x, t_signal **sp)
 {
-    dsp_add(erf_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(erf_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 void erf_tilde_setup(void)
diff --git a/externals/tb/volctl~/volctl~.c b/externals/tb/volctl~/volctl~.c
index 0d846a1e4..c8c1cfb76 100644
--- a/externals/tb/volctl~/volctl~.c
+++ b/externals/tb/volctl~/volctl~.c
@@ -344,13 +344,13 @@ static void volctl_dsp(t_volctl *x, t_signal **sp)
 {
     const int n = sp[0]->s_n;
     if (n&7)
-    	dsp_add(volctl_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, n);
+    	dsp_add(volctl_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)n);
     else 
     {
 		if(SIMD_CHECK2(n,sp[0]->s_vec,sp[1]->s_vec))
-			dsp_add(volctl_perf_simd, 4, x, sp[0]->s_vec, sp[1]->s_vec, n);
+			dsp_add(volctl_perf_simd, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)n);
 		else
-			dsp_add(volctl_perf8, 4, x, sp[0]->s_vec, sp[1]->s_vec, n);
+			dsp_add(volctl_perf8, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)n);
     }
 
 	x->x_blocksize = n;
diff --git a/externals/tof/src/breakpoints~.c b/externals/tof/src/breakpoints~.c
index 1028dbb67..d635e3850 100644
--- a/externals/tof/src/breakpoints~.c
+++ b/externals/tof/src/breakpoints~.c
@@ -103,7 +103,7 @@ static t_int *breakpointssig_perform(t_int *w)
     out the samples. */
 static void breakpointssig_dsp(t_breakpoints *x, t_signal **sp)
 {
-    dsp_add(breakpointssig_perform, 4, x,sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(breakpointssig_perform, 4, x,sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void breakpoints_totaldur(t_breakpoints* x,t_float dur)
diff --git a/externals/tof/src/common~.c b/externals/tof/src/common~.c
index 3e234468c..6e4af52ec 100644
--- a/externals/tof/src/common~.c
+++ b/externals/tof/src/common~.c
@@ -206,7 +206,7 @@ static  void common_tilde_dsp(t_common_tilde *x, t_signal **sp)
 {
 	
 	if ( (int) sp[0]->s_n == 64 ) {
-		dsp_add(common_tilde_perform, 4, x,sp[0]->s_vec,sp[1]->s_vec, sp[0]->s_n);
+		dsp_add(common_tilde_perform, 4, x,sp[0]->s_vec,sp[1]->s_vec, (t_int)sp[0]->s_n);
 		
 	  } else {
 		  error("common~ only works with a block size of 64");
diff --git a/externals/tof/src/crossfade~.c b/externals/tof/src/crossfade~.c
index da777b13c..9ec377a6e 100644
--- a/externals/tof/src/crossfade~.c
+++ b/externals/tof/src/crossfade~.c
@@ -79,7 +79,7 @@ static void crossfade_tilde_dsp(t_crossfade_tilde *x, t_signal **sp)
   for(n=0;n<x->n_out;n++)*dummy++=sp[n+x->n_in+1]->s_vec;
 
   
-  dsp_add(crossfade_tilde_perform, 3, x, sp[0]->s_n, sp[x->n_in]->s_vec);
+  dsp_add(crossfade_tilde_perform, 3, x, (t_int)sp[0]->s_n, sp[x->n_in]->s_vec);
   
 }
 
diff --git a/externals/tof/src/phasorshot~.c b/externals/tof/src/phasorshot~.c
index 84b9f0653..d189888f2 100644
--- a/externals/tof/src/phasorshot~.c
+++ b/externals/tof/src/phasorshot~.c
@@ -141,7 +141,7 @@ void phasorshot_tick(t_phasorshot *x)
  void phasorshot_dsp(t_phasorshot *x, t_signal **sp)
 {
     x->x_conv = 1./sp[0]->s_sr;
-    dsp_add(phasorshot_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(phasorshot_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
  void phasorshot_ft1(t_phasorshot *x, t_float f)
diff --git a/externals/tof/test/accum~.c b/externals/tof/test/accum~.c
index 487a54aa4..314a38e0a 100644
--- a/externals/tof/test/accum~.c
+++ b/externals/tof/test/accum~.c
@@ -180,7 +180,7 @@ static void accum_tilde_dsp(t_accum_tilde *x, t_signal **sp) {
     // point to number of samples
     // point to inlet~
     // point to outlet~
-    dsp_add(accum_tilde_perform, 4, x, sp[0]->s_n, sp[0]->s_vec,sp[1]->s_vec);
+    dsp_add(accum_tilde_perform, 4, x, (t_int)sp[0]->s_n, sp[0]->s_vec,sp[1]->s_vec);
 }
 
 static void *accum_tilde_new(t_floatarg minval, t_floatarg maxval,
diff --git a/externals/tof/test/count.c b/externals/tof/test/count.c
index b2ed2cdb9..fb1f7ebca 100644
--- a/externals/tof/test/count.c
+++ b/externals/tof/test/count.c
@@ -105,7 +105,7 @@ static t_int *count_perform(t_int *w)
 static void count_dsp(t_count *x, t_signal **sp)
 {
     if (x->x_autoreset) count_bang(x);
-    dsp_add(count_perform, 3, x, sp[0]->s_n, sp[0]->s_vec);
+    dsp_add(count_perform, 3, x, (t_int)sp[0]->s_n, sp[0]->s_vec);
 }
 
 static void *count_new(t_floatarg minval, t_floatarg maxval,
diff --git a/externals/tof/test/frameaccum.c b/externals/tof/test/frameaccum.c
index 6038ae539..aaab147f5 100644
--- a/externals/tof/test/frameaccum.c
+++ b/externals/tof/test/frameaccum.c
@@ -37,7 +37,7 @@ static void frameaccum_dsp(t_frameaccum *x, t_signal **sp)
 				 FRAMEACCUM_INISIZE, x->x_frameini,
 				 sizeof(*x->x_frame));
     memset(x->x_frame, 0, nblock * sizeof(*x->x_frame));  /* CHECKED */
-    dsp_add(frameaccum_perform, 4, nblock, x->x_frame,
+    dsp_add(frameaccum_perform, 4, (t_int)nblock, x->x_frame,
 	    sp[0]->s_vec, sp[1]->s_vec);
 }
 
diff --git a/externals/unauthorized/audience~.c b/externals/unauthorized/audience~.c
index 27a52b1c6..237a70d69 100644
--- a/externals/unauthorized/audience~.c
+++ b/externals/unauthorized/audience~.c
@@ -965,43 +965,43 @@ static void audience_dsp(t_audience_tilde *x, t_signal **sp)
     switch ( x->x_nbinputs+x->x_nboutputs )
     {
     case 2 :
-        dsp_add(audience_perform, 4, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec );
+        dsp_add(audience_perform, 4, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec );
         break;
 
     case 3 :
-        dsp_add(audience_perform, 5, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec );
+        dsp_add(audience_perform, 5, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec );
         break;
 
     case 4 :
-        dsp_add(audience_perform, 6, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec );
+        dsp_add(audience_perform, 6, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec );
         break;
 
     case 5 :
-        dsp_add(audience_perform, 7, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec );
+        dsp_add(audience_perform, 7, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec, sp[5]->s_vec );
         break;
 
     case 6 :
-        dsp_add(audience_perform, 8, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
+        dsp_add(audience_perform, 8, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
                 sp[5]->s_vec, sp[6]->s_vec );
         break;
 
     case 7 :
-        dsp_add(audience_perform, 9, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
+        dsp_add(audience_perform, 9, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
                 sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec );
         break;
 
     case 8 :
-        dsp_add(audience_perform, 10, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
+        dsp_add(audience_perform, 10, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
                 sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec );
         break;
 
     case 9 :
-        dsp_add(audience_perform, 11, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
+        dsp_add(audience_perform, 11, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
                 sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec, sp[9]->s_vec );
         break;
 
     case 10 :
-        dsp_add(audience_perform, 12, x, sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
+        dsp_add(audience_perform, 12, x, (t_int)sp[1]->s_n, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[4]->s_vec,
                 sp[5]->s_vec, sp[6]->s_vec, sp[7]->s_vec, sp[8]->s_vec,
                 sp[9]->s_vec, sp[10]->s_vec );
         break;
diff --git a/externals/unauthorized/beatify~.c b/externals/unauthorized/beatify~.c
index 394a60520..7d784f760 100644
--- a/externals/unauthorized/beatify~.c
+++ b/externals/unauthorized/beatify~.c
@@ -166,7 +166,7 @@ static t_int *beatify_perform(t_int *w)
 
 static void beatify_dsp(t_beatify *x, t_signal **sp)
 {
-    dsp_add(beatify_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x );
+    dsp_add(beatify_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x );
 }
 
 void beatify_tilde_setup(void)
diff --git a/externals/unauthorized/compressor~.c b/externals/unauthorized/compressor~.c
index 2b776e425..34b78c85f 100644
--- a/externals/unauthorized/compressor~.c
+++ b/externals/unauthorized/compressor~.c
@@ -92,7 +92,7 @@ static t_int *compressor_perform(t_int *w)
 
 static void compressor_dsp(t_compressor *x, t_signal **sp)
 {
-    dsp_add(compressor_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x );
+    dsp_add(compressor_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x );
 }
 
 void compressor_tilde_setup(void)
diff --git a/externals/unauthorized/cooled~.c b/externals/unauthorized/cooled~.c
index 87ee370b3..c09ba4c4e 100644
--- a/externals/unauthorized/cooled~.c
+++ b/externals/unauthorized/cooled~.c
@@ -1166,7 +1166,7 @@ static t_int *cooled_perform(t_int *w)
 
 static void cooled_dsp(t_cooled *x, t_signal **sp)
 {
-    dsp_add(cooled_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n, x);
+    dsp_add(cooled_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 /* record the cooled */
diff --git a/externals/unauthorized/disto~.c b/externals/unauthorized/disto~.c
index b51640660..2afcf6ff1 100644
--- a/externals/unauthorized/disto~.c
+++ b/externals/unauthorized/disto~.c
@@ -426,7 +426,7 @@ static void disto_preset(t_disto *x, t_float pnumber)
 
 static void disto_dsp(t_disto *x, t_signal **sp)
 {
-    dsp_add(disto_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x );
+    dsp_add(disto_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x );
 }
 
 /* clean up */
diff --git a/externals/unauthorized/formant~.c b/externals/unauthorized/formant~.c
index 5ef3b5ef6..b5b442a04 100644
--- a/externals/unauthorized/formant~.c
+++ b/externals/unauthorized/formant~.c
@@ -152,7 +152,7 @@ static t_int *formant_perform(t_int *w)
 
 static void formant_dsp(t_formant *x, t_signal **sp)
 {
-    dsp_add(formant_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(formant_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 /* replay the sample */
diff --git a/externals/unauthorized/mp3amp~.c b/externals/unauthorized/mp3amp~.c
index f3aeebed3..699189ed5 100644
--- a/externals/unauthorized/mp3amp~.c
+++ b/externals/unauthorized/mp3amp~.c
@@ -578,7 +578,7 @@ static t_int *mp3amp_perform(t_int *w)
 
 static void mp3amp_dsp(t_mp3amp *x, t_signal **sp)
 {
-    dsp_add(mp3amp_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, sp[1]->s_n);
+    dsp_add(mp3amp_perform, 4, x, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[1]->s_n);
 }
 
 
diff --git a/externals/unauthorized/mp3cast~.c b/externals/unauthorized/mp3cast~.c
index a5bc66a4e..0c7d968f9 100644
--- a/externals/unauthorized/mp3cast~.c
+++ b/externals/unauthorized/mp3cast~.c
@@ -343,7 +343,7 @@ static t_int *mp3cast_perform(t_int *w)
 
 static void mp3cast_dsp(t_mp3cast *x, t_signal **sp)
 {
-    dsp_add(mp3cast_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(mp3cast_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 /* initialize the lame library */
diff --git a/externals/unauthorized/mp3fileout~.c b/externals/unauthorized/mp3fileout~.c
index c331d0f99..5916fcd55 100644
--- a/externals/unauthorized/mp3fileout~.c
+++ b/externals/unauthorized/mp3fileout~.c
@@ -333,7 +333,7 @@ static t_int *mp3fileout_perform(t_int *w)
 
 static void mp3fileout_dsp(t_mp3fileout *x, t_signal **sp)
 {
-    dsp_add(mp3fileout_perform, 2, x, sp[0]->s_n);
+    dsp_add(mp3fileout_perform, 2, x, (t_int)sp[0]->s_n);
 }
 
 /* start streaming */
diff --git a/externals/unauthorized/mp3streamin~.c b/externals/unauthorized/mp3streamin~.c
index 60bb3929c..eb3c5aade 100644
--- a/externals/unauthorized/mp3streamin~.c
+++ b/externals/unauthorized/mp3streamin~.c
@@ -590,7 +590,7 @@ static t_int *mp3streamin_perform(t_int *w)
 
 static void mp3streamin_dsp(t_mp3streamin *x, t_signal **sp)
 {
-    dsp_add(mp3streamin_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(mp3streamin_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/unauthorized/mp3streamout~.c b/externals/unauthorized/mp3streamout~.c
index 3786c044d..2f14c8269 100644
--- a/externals/unauthorized/mp3streamout~.c
+++ b/externals/unauthorized/mp3streamout~.c
@@ -351,7 +351,7 @@ static t_int *mp3streamout_perform(t_int *w)
 
 static void mp3streamout_dsp(t_mp3streamout *x, t_signal **sp)
 {
-    dsp_add(mp3streamout_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(mp3streamout_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 /* initialize the lame library */
diff --git a/externals/unauthorized/mp3write~.c b/externals/unauthorized/mp3write~.c
index 133ffa284..b0c478757 100644
--- a/externals/unauthorized/mp3write~.c
+++ b/externals/unauthorized/mp3write~.c
@@ -343,7 +343,7 @@ static t_int *mp3write_perform(t_int *w)
 
 static void mp3write_dsp(t_mp3write *x, t_signal **sp)
 {
-    dsp_add(mp3write_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+    dsp_add(mp3write_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 /* initialize the lame library */
diff --git a/externals/unauthorized/randomblock~.c b/externals/unauthorized/randomblock~.c
index 002876e45..1d35c2422 100644
--- a/externals/unauthorized/randomblock~.c
+++ b/externals/unauthorized/randomblock~.c
@@ -111,7 +111,7 @@ static t_int *randomblock_perform(t_int *w)
 
 static void randomblock_dsp(t_randomblock *x, t_signal **sp)
 {
-    dsp_add( randomblock_perform, 3, sp[0]->s_vec, sp[0]->s_n, x ) ;
+    dsp_add( randomblock_perform, 3, sp[0]->s_vec, (t_int)sp[0]->s_n, x ) ;
 }
 
 void randomblock_tilde_setup(void)
diff --git a/externals/unauthorized/samplebox~.c b/externals/unauthorized/samplebox~.c
index e0769976b..d3285476c 100644
--- a/externals/unauthorized/samplebox~.c
+++ b/externals/unauthorized/samplebox~.c
@@ -336,7 +336,7 @@ static t_int *samplebox_perform(t_int *w)
 
 static void samplebox_dsp(t_samplebox *x, t_signal **sp)
 {
-    dsp_add(samplebox_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n, x);
+    dsp_add(samplebox_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 /* record the sonogram */
diff --git a/externals/unauthorized/scratcher~.c b/externals/unauthorized/scratcher~.c
index 6ef08d5cb..e4c5c168d 100644
--- a/externals/unauthorized/scratcher~.c
+++ b/externals/unauthorized/scratcher~.c
@@ -588,7 +588,7 @@ static t_int *scratcher_perform(t_int *w)
 
 static void scratcher_dsp(t_scratcher *x, t_signal **sp)
 {
-    dsp_add(scratcher_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x);
+    dsp_add(scratcher_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 /* play the sound */
diff --git a/externals/unauthorized/sonogram~.c b/externals/unauthorized/sonogram~.c
index ca7bfb1a3..cb0b97271 100644
--- a/externals/unauthorized/sonogram~.c
+++ b/externals/unauthorized/sonogram~.c
@@ -1502,7 +1502,7 @@ static t_int *sonogram_perform(t_int *w)
 
 static void sonogram_dsp(t_sonogram *x, t_signal **sp)
 {
-    dsp_add(sonogram_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n, x);
+    dsp_add(sonogram_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, (t_int)sp[0]->s_n, x);
 }
 
 /* record the sonogram */
diff --git a/externals/unauthorized/speexin~.c b/externals/unauthorized/speexin~.c
index b8a350abb..308b0aacb 100644
--- a/externals/unauthorized/speexin~.c
+++ b/externals/unauthorized/speexin~.c
@@ -533,7 +533,7 @@ static t_int *speexin_perform(t_int *w)
 
 static void speexin_dsp(t_speexin *x, t_signal **sp)
 {
-    dsp_add(speexin_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(speexin_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/unauthorized/speexout~.c b/externals/unauthorized/speexout~.c
index 11230d5b2..a00c9ad60 100644
--- a/externals/unauthorized/speexout~.c
+++ b/externals/unauthorized/speexout~.c
@@ -256,7 +256,7 @@ static t_int *speexout_perform(t_int *w)
 
 static void speexout_dsp(t_speexout *x, t_signal **sp)
 {
-    dsp_add(speexout_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+    dsp_add(speexout_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 /* initialize the speex library */
diff --git a/externals/unauthorized/spigot~.c b/externals/unauthorized/spigot~.c
index d994df5b6..34cec85d4 100644
--- a/externals/unauthorized/spigot~.c
+++ b/externals/unauthorized/spigot~.c
@@ -61,7 +61,7 @@ static t_int *spigot_perform(t_int *w)
 static void spigot_dsp(t_spigot *x, t_signal **sp)
 {
     dsp_add(spigot_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
-            sp[0]->s_n, x);
+            (t_int)sp[0]->s_n, x);
 }
 
 static void spigot_set(t_spigot *x, t_float f)
diff --git a/externals/unauthorized/vocoder~.c b/externals/unauthorized/vocoder~.c
index f0b4143ec..69b12ca1a 100644
--- a/externals/unauthorized/vocoder~.c
+++ b/externals/unauthorized/vocoder~.c
@@ -123,7 +123,7 @@ static t_int *vocoder_perform(t_int *w)
 
 static void vocoder_dsp(t_vocoder *x, t_signal **sp)
 {
-    dsp_add(vocoder_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+    dsp_add(vocoder_perform, 5, x, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void *vocoder_new(void)
diff --git a/externals/unauthorized/wahwah~.c b/externals/unauthorized/wahwah~.c
index 9e6e3c6a7..0b6b8f10b 100644
--- a/externals/unauthorized/wahwah~.c
+++ b/externals/unauthorized/wahwah~.c
@@ -339,7 +339,7 @@ static void wahwah_preset(t_wahwah *x, t_float pnumber)
 
 static void wahwah_dsp(t_wahwah *x, t_signal **sp)
 {
-    dsp_add(wahwah_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n, x );
+    dsp_add(wahwah_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n, x );
 }
 
 /* clean up */
diff --git a/externals/vst/vst~.cpp b/externals/vst/vst~.cpp
index b3b5b14d3..4b221d6fd 100644
--- a/externals/vst/vst~.cpp
+++ b/externals/vst/vst~.cpp
@@ -75,11 +75,11 @@ static void vst_tilde_dsp(t_vst_tilde *x, t_signal **sp)
 		//post("*");
 		if ( x->plug->replace() )
 		{
-			dsp_add(vst_tilde_perform_replace, 2 , x->d_args , sp[0]->s_n );
+			dsp_add(vst_tilde_perform_replace, 2 , x->d_args , (t_int)sp[0]->s_n );
 		}
 		else
 		{
-			dsp_add(vst_tilde_perform_acc, 2 , x->d_args , sp[0]->s_n );
+			dsp_add(vst_tilde_perform_acc, 2 , x->d_args , (t_int)sp[0]->s_n );
 		}
 	}
 
diff --git a/externals/windowing/bartlett~.c b/externals/windowing/bartlett~.c
index ea1c9478d..12f2a4526 100644
--- a/externals/windowing/bartlett~.c
+++ b/externals/windowing/bartlett~.c
@@ -68,7 +68,7 @@ static t_int* bartlett_perform(t_int *w) {
 }
 
 static void bartlett_dsp(t_bartlett *x, t_signal **sp) {
-  dsp_add(bartlett_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(bartlett_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* bartlett_new(void) {
diff --git a/externals/windowing/blackman~.c b/externals/windowing/blackman~.c
index ad7af8a45..9248384d6 100644
--- a/externals/windowing/blackman~.c
+++ b/externals/windowing/blackman~.c
@@ -72,7 +72,7 @@ static t_int* blackman_perform(t_int *w) {
 }
 
 static void blackman_dsp(t_blackman *x, t_signal **sp) {
-  dsp_add(blackman_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(blackman_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* blackman_new(void) {
diff --git a/externals/windowing/connes~.c b/externals/windowing/connes~.c
index 027ab199a..7845c4ecf 100644
--- a/externals/windowing/connes~.c
+++ b/externals/windowing/connes~.c
@@ -67,7 +67,7 @@ static t_int* connes_perform(t_int *w) {
 }
 
 static void connes_dsp(t_connes *x, t_signal **sp) {
-  dsp_add(connes_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(connes_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* connes_new(void) {
diff --git a/externals/windowing/cosine~.c b/externals/windowing/cosine~.c
index 92eb8182b..77ac428c4 100644
--- a/externals/windowing/cosine~.c
+++ b/externals/windowing/cosine~.c
@@ -72,7 +72,7 @@ static t_int* cosine_perform(t_int *w) {
 }
 
 static void cosine_dsp(t_cosine *x, t_signal **sp) {
-  dsp_add(cosine_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(cosine_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* cosine_new(void) {
diff --git a/externals/windowing/gaussian~.c b/externals/windowing/gaussian~.c
index 3b9828b12..0bf5aa861 100644
--- a/externals/windowing/gaussian~.c
+++ b/externals/windowing/gaussian~.c
@@ -78,7 +78,7 @@ static t_int* gaussian_perform(t_int *w) {
 }
 
 static void gaussian_dsp(t_gaussian *x, t_signal **sp) {
-  dsp_add(gaussian_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(gaussian_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void gaussian_float(t_gaussian *x, t_float delta) {
diff --git a/externals/windowing/hamming~.c b/externals/windowing/hamming~.c
index 24b5e43f0..52da749eb 100644
--- a/externals/windowing/hamming~.c
+++ b/externals/windowing/hamming~.c
@@ -72,7 +72,7 @@ static t_int* hamming_perform(t_int *w) {
 }
 
 static void hamming_dsp(t_hamming *x, t_signal **sp) {
-  dsp_add(hamming_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(hamming_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* hamming_new(void) {
diff --git a/externals/windowing/hanning~.c b/externals/windowing/hanning~.c
index 9be6da2a7..bacc73759 100644
--- a/externals/windowing/hanning~.c
+++ b/externals/windowing/hanning~.c
@@ -72,7 +72,7 @@ static t_int* hanning_perform(t_int *w) {
 }
 
 static void hanning_dsp(t_hanning *x, t_signal **sp) {
-  dsp_add(hanning_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(hanning_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* hanning_new(void) {
diff --git a/externals/windowing/kaiser~.c b/externals/windowing/kaiser~.c
index dc072e9d6..f474d95ce 100644
--- a/externals/windowing/kaiser~.c
+++ b/externals/windowing/kaiser~.c
@@ -74,7 +74,7 @@ static t_int* kaiser_perform(t_int *w) {
 }
 
 static void kaiser_dsp(t_kaiser *x, t_signal **sp) {
-  dsp_add(kaiser_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(kaiser_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void kaiser_float(t_kaiser *x, t_float alpha) {
diff --git a/externals/windowing/lanczos~.c b/externals/windowing/lanczos~.c
index c10ed6bf1..10466ff44 100644
--- a/externals/windowing/lanczos~.c
+++ b/externals/windowing/lanczos~.c
@@ -77,7 +77,7 @@ static t_int* lanczos_perform(t_int *w) {
 }
 
 static void lanczos_dsp(t_lanczos *x, t_signal **sp) {
-  dsp_add(lanczos_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(lanczos_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* lanczos_new(void) {
diff --git a/externals/windowing/welch~.c b/externals/windowing/welch~.c
index 0903389de..183eb0e32 100644
--- a/externals/windowing/welch~.c
+++ b/externals/windowing/welch~.c
@@ -67,7 +67,7 @@ static t_int* welch_perform(t_int *w) {
 }
 
 static void welch_dsp(t_welch *x, t_signal **sp) {
-  dsp_add(welch_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(welch_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void* welch_new(void) {
diff --git a/externals/zexy/src/0x260x26_tilde.c b/externals/zexy/src/0x260x26_tilde.c
index 92aeda12b..793ce500c 100644
--- a/externals/zexy/src/0x260x26_tilde.c
+++ b/externals/zexy/src/0x260x26_tilde.c
@@ -245,13 +245,13 @@ static void andand_tilde_dsp(t_andand_tilde *UNUSED(x), t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(andand_tilde_performSSE, 4, in1, in2, out, n);
+    dsp_add(andand_tilde_performSSE, 4, in1, in2, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(andand_tilde_perform, 4, in1, in2, out, n);
+      dsp_add(andand_tilde_perform, 4, in1, in2, out, (t_int)n);
     } else {
-      dsp_add(andand_tilde_perf8, 4, in1, in2, out, n);
+      dsp_add(andand_tilde_perf8, 4, in1, in2, out, (t_int)n);
     }
 }
 
@@ -268,13 +268,13 @@ static void scalarandand_tilde_dsp(t_scalarandand_tilde *x, t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(scalarandand_tilde_performSSE, 4, in, &x->x_g, out, n);
+    dsp_add(scalarandand_tilde_performSSE, 4, in, &x->x_g, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(scalarandand_tilde_perform, 4, in, &x->x_g, out, n);
+      dsp_add(scalarandand_tilde_perform, 4, in, &x->x_g, out, (t_int)n);
     } else {
-      dsp_add(scalarandand_tilde_perf8,   4, in, &x->x_g, out, n);
+      dsp_add(scalarandand_tilde_perf8,   4, in, &x->x_g, out, (t_int)n);
     }
 }
 
diff --git a/externals/zexy/src/0x3c_tilde.c b/externals/zexy/src/0x3c_tilde.c
index ef742e866..6e278fd96 100644
--- a/externals/zexy/src/0x3c_tilde.c
+++ b/externals/zexy/src/0x3c_tilde.c
@@ -202,13 +202,13 @@ static void lt_tilde_dsp(t_lt_tilde* UNUSED(x), t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(lt_tilde_performSSE, 4, in1, in2, out, n);
+    dsp_add(lt_tilde_performSSE, 4, in1, in2, out, (t_int)n);
   } else
 #endif
     if(n&7) {
-      dsp_add(lt_tilde_perform, 4, in1, in2, out, n);
+      dsp_add(lt_tilde_perform, 4, in1, in2, out, (t_int)n);
     } else {
-      dsp_add(lt_tilde_perf8, 4, in1, in2, out, n);
+      dsp_add(lt_tilde_perf8, 4, in1, in2, out, (t_int)n);
     }
 }
 
@@ -225,13 +225,13 @@ static void scalarlt_tilde_dsp(t_scalarlt_tilde *x, t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(scalarlt_tilde_performSSE, 4, in, &x->x_g, out, n);
+    dsp_add(scalarlt_tilde_performSSE, 4, in, &x->x_g, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(scalarlt_tilde_perform, 4, in, &x->x_g, out, n);
+      dsp_add(scalarlt_tilde_perform, 4, in, &x->x_g, out, (t_int)n);
     } else {
-      dsp_add(scalarlt_tilde_perf8, 4, in, &x->x_g, out, n);
+      dsp_add(scalarlt_tilde_perf8, 4, in, &x->x_g, out, (t_int)n);
     }
 }
 static void lt_tilde_help(t_object*x)
diff --git a/externals/zexy/src/0x3d0x3d_tilde.c b/externals/zexy/src/0x3d0x3d_tilde.c
index f78af4558..343098786 100644
--- a/externals/zexy/src/0x3d0x3d_tilde.c
+++ b/externals/zexy/src/0x3d0x3d_tilde.c
@@ -201,13 +201,13 @@ static void eq_tilde_dsp(t_eq_tilde* UNUSED(x), t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(eq_tilde_performSSE, 4, in1, in2, out, n);
+    dsp_add(eq_tilde_performSSE, 4, in1, in2, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(eq_tilde_perform, 4, in1, in2, out, n);
+      dsp_add(eq_tilde_perform, 4, in1, in2, out, (t_int)n);
     } else {
-      dsp_add(eq_tilde_perf8, 4, in1, in2, out, n);
+      dsp_add(eq_tilde_perf8, 4, in1, in2, out, (t_int)n);
     }
 }
 
@@ -224,13 +224,13 @@ static void scalareq_tilde_dsp(t_scalareq_tilde *x, t_signal **sp)
     Z_SIMD_CHKALIGN(out) &&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(scalareq_tilde_performSSE, 4, in, &x->x_g, out, n);
+    dsp_add(scalareq_tilde_performSSE, 4, in, &x->x_g, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(scalareq_tilde_perform, 4, in, &x->x_g, out, n);
+      dsp_add(scalareq_tilde_perform, 4, in, &x->x_g, out, (t_int)n);
     } else {
-      dsp_add(scalareq_tilde_perf8,   4, in, &x->x_g, out, n);
+      dsp_add(scalareq_tilde_perf8,   4, in, &x->x_g, out, (t_int)n);
     }
 }
 
diff --git a/externals/zexy/src/0x3e_tilde.c b/externals/zexy/src/0x3e_tilde.c
index cc6964ab7..008a3b1c3 100644
--- a/externals/zexy/src/0x3e_tilde.c
+++ b/externals/zexy/src/0x3e_tilde.c
@@ -204,13 +204,13 @@ static void gt_tilde_dsp(t_gt_tilde* UNUSED(x), t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(gt_tilde_performSSE, 4, in1, in2, out, n);
+    dsp_add(gt_tilde_performSSE, 4, in1, in2, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(gt_tilde_perform, 4, in1, in2, out, n);
+      dsp_add(gt_tilde_perform, 4, in1, in2, out, (t_int)n);
     } else {
-      dsp_add(gt_tilde_perf8, 4, in1, in2, out, n);
+      dsp_add(gt_tilde_perf8, 4, in1, in2, out, (t_int)n);
     }
 }
 
@@ -227,13 +227,13 @@ static void scalargt_tilde_dsp(t_scalargt_tilde *x, t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(scalargt_tilde_performSSE, 4, in, &x->x_g, out, n);
+    dsp_add(scalargt_tilde_performSSE, 4, in, &x->x_g, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(scalargt_tilde_perform, 4, in, &x->x_g, out, n);
+      dsp_add(scalargt_tilde_perform, 4, in, &x->x_g, out, (t_int)n);
     } else {
-      dsp_add(scalargt_tilde_perf8,   4, in, &x->x_g, out, n);
+      dsp_add(scalargt_tilde_perf8,   4, in, &x->x_g, out, (t_int)n);
     }
 }
 
diff --git a/externals/zexy/src/0x7c0x7c_tilde.c b/externals/zexy/src/0x7c0x7c_tilde.c
index 9b43d7306..558c76090 100644
--- a/externals/zexy/src/0x7c0x7c_tilde.c
+++ b/externals/zexy/src/0x7c0x7c_tilde.c
@@ -219,13 +219,13 @@ static void oror_tilde_dsp(t_oror_tilde* UNUSED(x), t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(oror_tilde_performSSE, 4, in1, in2, out, n);
+    dsp_add(oror_tilde_performSSE, 4, in1, in2, out, (t_int)n);
   } else
 #endif
     if(n&7) {
-      dsp_add(oror_tilde_perform, 4, in1, in2, out, n);
+      dsp_add(oror_tilde_perform, 4, in1, in2, out, (t_int)n);
     } else {
-      dsp_add(oror_tilde_perf8, 4, in1, in2, out, n);
+      dsp_add(oror_tilde_perf8, 4, in1, in2, out, (t_int)n);
     }
 }
 
@@ -242,13 +242,13 @@ static void scalaroror_tilde_dsp(t_scalaroror_tilde *x, t_signal **sp)
     Z_SIMD_CHKALIGN(out)&&
     ZEXY_TYPE_EQUAL(t_sample, float)
   ) {
-    dsp_add(scalaroror_tilde_performSSE, 4, in, &x->x_g, out, n);
+    dsp_add(scalaroror_tilde_performSSE, 4, in, &x->x_g, out, (t_int)n);
   } else
 #endif
     if (n&7) {
-      dsp_add(scalaroror_tilde_perform, 4, in, &x->x_g, out, n);
+      dsp_add(scalaroror_tilde_perform, 4, in, &x->x_g, out, (t_int)n);
     } else {
-      dsp_add(scalaroror_tilde_perf8, 4, in, &x->x_g, out, n);
+      dsp_add(scalaroror_tilde_perf8, 4, in, &x->x_g, out, (t_int)n);
     }
 }
 
diff --git a/externals/zexy/src/absgn~.c b/externals/zexy/src/absgn~.c
index 927c55d2c..52d828927 100644
--- a/externals/zexy/src/absgn~.c
+++ b/externals/zexy/src/absgn~.c
@@ -106,12 +106,12 @@ static void sigABSGN_dsp(t_absgn* UNUSED(x), t_signal **sp)
     zexy_testSSE(sigABSGN_perform, sigABSGN_performSSE, 1, 2)
   ) {
     dsp_add(sigABSGN_performSSE, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
   } else
 #endif
   {
     dsp_add(sigABSGN_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
   }
 }
 
diff --git a/externals/zexy/src/abs~.c b/externals/zexy/src/abs~.c
index 333aba3ae..c2bf55a28 100644
--- a/externals/zexy/src/abs~.c
+++ b/externals/zexy/src/abs~.c
@@ -128,11 +128,11 @@ static void sigABS_dsp(t_abs *x, t_signal **sp)
                  sigABS_performSSE,
                  1, 1)
   ) {
-    dsp_add(sigABS_performSSE, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(sigABS_performSSE, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
   } else
 #endif
   {
-    dsp_add(sigABS_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(sigABS_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
   }
 }
 
diff --git a/externals/zexy/src/avg~.c b/externals/zexy/src/avg~.c
index 839b6b523..669879ca4 100644
--- a/externals/zexy/src/avg~.c
+++ b/externals/zexy/src/avg~.c
@@ -55,7 +55,7 @@ static t_int *avg_perform(t_int *w)
 static void avg_dsp(t_avg *x, t_signal **sp)
 {
   x->n_inv=1./sp[0]->s_n;
-  dsp_add(avg_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(avg_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *avg_new(void)
diff --git a/externals/zexy/src/blockmirror~.c b/externals/zexy/src/blockmirror~.c
index 67465dd6e..2ad4092cd 100644
--- a/externals/zexy/src/blockmirror~.c
+++ b/externals/zexy/src/blockmirror~.c
@@ -78,7 +78,7 @@ static void blockmirror_dsp(t_blockmirror *x, t_signal **sp)
     x->blocksize = sp[0]->s_n;
     x->blockbuffer = getbytes(sizeof(*x->blockbuffer)*x->blocksize);
   }
-  dsp_add(blockmirror_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(blockmirror_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void blockmirror_helper(t_blockmirror*x)
diff --git a/externals/zexy/src/blockshuffle~.c b/externals/zexy/src/blockshuffle~.c
index d2e0e9e56..de9b24fc9 100644
--- a/externals/zexy/src/blockshuffle~.c
+++ b/externals/zexy/src/blockshuffle~.c
@@ -116,7 +116,7 @@ static void blockshuffle_dsp(t_blockshuffle *x, t_signal **sp)
   blockshuffle_buildindex(x, sp[0]->s_n);
 
   dsp_add(blockshuffle_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec,
-          sp[0]->s_n);
+          (t_int)sp[0]->s_n);
 }
 
 static void blockshuffle_helper(void)
diff --git a/externals/zexy/src/blockswap~.c b/externals/zexy/src/blockswap~.c
index 05ea2e8e4..15785850f 100644
--- a/externals/zexy/src/blockswap~.c
+++ b/externals/zexy/src/blockswap~.c
@@ -76,7 +76,7 @@ static void blockswap_dsp(t_blockswap *x, t_signal **sp)
     x->blocksize = sp[0]->s_n/2;
     x->blockbuffer = getbytes(sizeof(*x->blockbuffer)*x->blocksize);
   }
-  dsp_add(blockswap_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(blockswap_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void blockswap_helper(t_blockswap *x)
diff --git a/externals/zexy/src/demultiplex~.c b/externals/zexy/src/demultiplex~.c
index 6a40cbb4b..4fb7e7876 100644
--- a/externals/zexy/src/demultiplex~.c
+++ b/externals/zexy/src/demultiplex~.c
@@ -73,7 +73,7 @@ static void demux_dsp(t_demux *x, t_signal **sp)
   while(n--) {
     *dummy++=sp[x->n_out-n]->s_vec;
   }
-  dsp_add(demux_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(demux_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/zexy/src/dfreq~.c b/externals/zexy/src/dfreq~.c
index 1868e80b3..2ad771575 100644
--- a/externals/zexy/src/dfreq~.c
+++ b/externals/zexy/src/dfreq~.c
@@ -82,7 +82,7 @@ static t_int *dfreq_perform(t_int *w)
 
 static void dfreq_dsp(t_dfreq *x, t_signal **sp)
 {
-  dsp_add(dfreq_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n,x);
+  dsp_add(dfreq_perform, 4, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n,x);
 }
 
 
diff --git a/externals/zexy/src/dirac~.c b/externals/zexy/src/dirac~.c
index fbd83109b..027fee553 100644
--- a/externals/zexy/src/dirac~.c
+++ b/externals/zexy/src/dirac~.c
@@ -110,9 +110,9 @@ static t_int *dirac_perf8(t_int *w)
 static void dirac_dsp(t_dirac *x, t_signal **sp)
 {
   if (sp[0]->s_n & 7) {
-    dsp_add(dirac_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(dirac_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
   } else {
-    dsp_add(dirac_perf8, 3, x, sp[0]->s_vec, sp[0]->s_n);
+    dsp_add(dirac_perf8, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
   }
 }
 
diff --git a/externals/zexy/src/doublepole~.c b/externals/zexy/src/doublepole~.c
index 6666135c6..650c8a531 100644
--- a/externals/zexy/src/doublepole~.c
+++ b/externals/zexy/src/doublepole~.c
@@ -105,7 +105,7 @@ static void sigdoublepole_dsp(t_sigdoublepole *x, t_signal **sp)
 {
   dsp_add(sigdoublepole_perform, 4,
           sp[0]->s_vec, sp[1]->s_vec,
-          x->x_ctl, sp[0]->s_n);
+          x->x_ctl, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/zexy/src/envrms~.c b/externals/zexy/src/envrms~.c
index 520421153..b074414c8 100644
--- a/externals/zexy/src/envrms~.c
+++ b/externals/zexy/src/envrms~.c
@@ -126,7 +126,7 @@ static void sigenvrms_dsp(t_sigenvrms *x, t_signal **sp)
   else {
     x->x_realperiod = x->x_period;
   }
-  dsp_add(sigenvrms_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(sigenvrms_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
   if (sp[0]->s_n > MAXVSTAKEN) {
     bug("sigenvrms_dsp");
   }
diff --git a/externals/zexy/src/multiline~.c b/externals/zexy/src/multiline~.c
index 7982c2329..fea4f3d22 100644
--- a/externals/zexy/src/multiline~.c
+++ b/externals/zexy/src/multiline~.c
@@ -211,7 +211,7 @@ static void mline_dsp(t_mline *x, t_signal **sp)
   }
 
   x->msec2tick = sp[0]->s_sr / (1000.f * sp[0]->s_n);
-  dsp_add(mline_perform, 2, x, sp[0]->s_n);
+  dsp_add(mline_perform, 2, x, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/zexy/src/multiplex~.c b/externals/zexy/src/multiplex~.c
index eccda19f0..86de9c560 100644
--- a/externals/zexy/src/multiplex~.c
+++ b/externals/zexy/src/multiplex~.c
@@ -64,7 +64,7 @@ static void mux_tilde_dsp(t_mux *x, t_signal **sp)
     *dummy++=sp[n]->s_vec;
   }
 
-  dsp_add(mux_tilde_perform, 3, x, sp[n]->s_vec, sp[0]->s_n);
+  dsp_add(mux_tilde_perform, 3, x, sp[n]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void mux_tilde_helper(void)
diff --git a/externals/zexy/src/noish~.c b/externals/zexy/src/noish~.c
index 295a95f95..f34455141 100644
--- a/externals/zexy/src/noish~.c
+++ b/externals/zexy/src/noish~.c
@@ -141,7 +141,7 @@ static t_int *noish_perform(t_int *w)
 
 static void noish_dsp(t_nois *x, t_signal **sp)
 {
-  dsp_add(noish_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(noish_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void noish_helper(void)
diff --git a/externals/zexy/src/noisi~.c b/externals/zexy/src/noisi~.c
index 4703b9569..f79e939f7 100644
--- a/externals/zexy/src/noisi~.c
+++ b/externals/zexy/src/noisi~.c
@@ -144,7 +144,7 @@ static t_int *noisi_perform(t_int *w)
 
 static void noisi_dsp(t_nois *x, t_signal **sp)
 {
-  dsp_add(noisi_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(noisi_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/zexy/src/pack~.c b/externals/zexy/src/pack~.c
index e1614a7e4..ef823ec87 100644
--- a/externals/zexy/src/pack~.c
+++ b/externals/zexy/src/pack~.c
@@ -64,7 +64,7 @@ static void sigpack_dsp(t_sigpack *x, t_signal **sp)
     x->vector_length = sp[0]->s_n;
     x->buffer = (t_atom *)getbytes(x->vector_length * sizeof(t_atom));
   }
-  dsp_add(sigpack_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(sigpack_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void sigpack_free(t_sigpack*x)
diff --git a/externals/zexy/src/pdf~.c b/externals/zexy/src/pdf~.c
index 74d20d6bf..12db1db6c 100644
--- a/externals/zexy/src/pdf~.c
+++ b/externals/zexy/src/pdf~.c
@@ -96,7 +96,7 @@ static void pdf_dsp(t_pdf *x, t_signal **sp)
 {
   x->halfsize = (x->size - 1) / 2.0;
 
-  dsp_add(pdf_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(pdf_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *pdf_new(t_floatarg f)
diff --git a/externals/zexy/src/quantize~.c b/externals/zexy/src/quantize~.c
index 972fa6dec..36d8f8964 100644
--- a/externals/zexy/src/quantize~.c
+++ b/externals/zexy/src/quantize~.c
@@ -75,7 +75,7 @@ static t_int *quantize_perform(t_int *w)
 
 static void quantize_dsp(t_quantize *x, t_signal **sp)
 {
-  dsp_add(quantize_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(quantize_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void quantize_tilde_helper(t_quantize* UNUSED(x))
diff --git a/externals/zexy/src/route~.c b/externals/zexy/src/route~.c
index aa073ba63..43add4e90 100644
--- a/externals/zexy/src/route~.c
+++ b/externals/zexy/src/route~.c
@@ -46,7 +46,7 @@ t_int *route_tilde_perform(t_int *w)
 static void route_tilde_dsp(t_route_tilde *x, t_signal **sp)
 {
   if(sp) {
-    dsp_add(route_tilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(route_tilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
   } else {
     route_tilde_any(x, gensym("dsp"), 0, 0);
   }
diff --git a/externals/zexy/src/sfplay.c b/externals/zexy/src/sfplay.c
index 8418e3220..49c6229e9 100644
--- a/externals/zexy/src/sfplay.c
+++ b/externals/zexy/src/sfplay.c
@@ -560,14 +560,14 @@ static void sfplay_dsp(t_sfplay *x, t_signal **sp)
     dsp_add(sfplay_perform, 4, x,
             sp[0]->s_vec,
             sp[1]->s_vec, /* out 1 */
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 2:
     dsp_add(sfplay_perform, 5, x,
             sp[0]->s_vec, /* out 1*/
             sp[1]->s_vec, /* out 2*/
             sp[2]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 4:
     dsp_add(sfplay_perform, 7, x,
@@ -576,7 +576,7 @@ static void sfplay_dsp(t_sfplay *x, t_signal **sp)
             sp[2]->s_vec,
             sp[3]->s_vec,
             sp[4]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 8:
     dsp_add(sfplay_perform, 11, x,
@@ -589,7 +589,7 @@ static void sfplay_dsp(t_sfplay *x, t_signal **sp)
             sp[6]->s_vec,
             sp[7]->s_vec,
             sp[8]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   }
 }
diff --git a/externals/zexy/src/sfrecord.c b/externals/zexy/src/sfrecord.c
index 3a63eb3c4..0e491ce9d 100644
--- a/externals/zexy/src/sfrecord.c
+++ b/externals/zexy/src/sfrecord.c
@@ -489,13 +489,13 @@ static void sfrecord_dsp(t_sfrecord *x, t_signal **sp)
   case 1:
     dsp_add(sfrecord_perform, 3, x,
             sp[0]->s_vec, /* in 1 */
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 2:
     dsp_add(sfrecord_perform, 4, x,
             sp[0]->s_vec,
             sp[1]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 4:
     dsp_add(sfrecord_perform, 6, x,
@@ -503,7 +503,7 @@ static void sfrecord_dsp(t_sfrecord *x, t_signal **sp)
             sp[1]->s_vec,
             sp[2]->s_vec,
             sp[3]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   case 8:
     dsp_add(sfrecord_perform, 9, x,
@@ -515,7 +515,7 @@ static void sfrecord_dsp(t_sfrecord *x, t_signal **sp)
             sp[5]->s_vec,
             sp[6]->s_vec,
             sp[7]->s_vec,
-            sp[0]->s_n);
+            (t_int)sp[0]->s_n);
     break;
   }
 }
diff --git a/externals/zexy/src/sgn~.c b/externals/zexy/src/sgn~.c
index 4ed554fd7..6e6e03d8a 100644
--- a/externals/zexy/src/sgn~.c
+++ b/externals/zexy/src/sgn~.c
@@ -171,13 +171,13 @@ static void sgnTilde_dsp(t_sgnTilde *x, t_signal **sp)
                  sgnTilde_performSSE,
                  1,1)
   ) {
-    dsp_add(sgnTilde_performSSE, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+    dsp_add(sgnTilde_performSSE, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
   } else
 #endif
     if (sp[0]->s_n & 7) {
-      dsp_add(sgnTilde_perform , 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+      dsp_add(sgnTilde_perform , 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
     } else {
-      dsp_add(sgnTilde_perform8, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+      dsp_add(sgnTilde_perform8, 3, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
     }
 
 }
diff --git a/externals/zexy/src/sigzero~.c b/externals/zexy/src/sigzero~.c
index d5f8e7773..8a12b538c 100644
--- a/externals/zexy/src/sigzero~.c
+++ b/externals/zexy/src/sigzero~.c
@@ -74,7 +74,7 @@ static t_int *sigzero_perform(t_int *w)
 
 static void sigzero_dsp(t_sigzero *x, t_signal **sp)
 {
-  dsp_add(sigzero_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(sigzero_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void sigzero_tilde_helper(void)
diff --git a/externals/zexy/src/step~.c b/externals/zexy/src/step~.c
index 9cc5cab9b..a35ed35be 100644
--- a/externals/zexy/src/step~.c
+++ b/externals/zexy/src/step~.c
@@ -96,7 +96,7 @@ static t_int *step_perform(t_int *w)
 
 static void step_dsp(t_step *x, t_signal **sp)
 {
-  dsp_add(step_perform, 3, x, sp[0]->s_vec, sp[0]->s_n);
+  dsp_add(step_perform, 3, x, sp[0]->s_vec, (t_int)sp[0]->s_n);
 }
 
 
diff --git a/externals/zexy/src/swap~.c b/externals/zexy/src/swap~.c
index 7ed978341..9d6486eea 100644
--- a/externals/zexy/src/swap~.c
+++ b/externals/zexy/src/swap~.c
@@ -70,7 +70,7 @@ static t_int *swap_perform(t_int *w)
 
 static void swap_dsp(t_swap *x, t_signal **sp)
 {
-  dsp_add(swap_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
+  dsp_add(swap_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, (t_int)sp[0]->s_n);
 }
 
 static void swap_helper(void)
diff --git a/externals/zexy/src/tabread4~~.c b/externals/zexy/src/tabread4~~.c
index 085178a0e..37cb27b4f 100644
--- a/externals/zexy/src/tabread4~~.c
+++ b/externals/zexy/src/tabread4~~.c
@@ -119,7 +119,7 @@ static void tabread4_tilde_dsp(t_tabread4_tilde *x, t_signal **sp)
   tabread4_tilde_set(x, x->x_arrayname);
 
   dsp_add(tabread4_tilde_perform, 5, x,
-          sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n);
+          sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, (t_int)sp[0]->s_n);
 
 }
 
diff --git a/externals/zexy/src/tavg~.c b/externals/zexy/src/tavg~.c
index 90c9d3d95..b51dcd68e 100644
--- a/externals/zexy/src/tavg~.c
+++ b/externals/zexy/src/tavg~.c
@@ -57,7 +57,7 @@ static t_int *tavg_perform(t_int *w)
 static void tavg_dsp(t_tavgtilde *x, t_signal **sp)
 {
   x->n_inv=1./sp[0]->s_n;
-  dsp_add(tavg_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(tavg_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *tavg_new(void)
diff --git a/externals/zexy/src/unpack~.c b/externals/zexy/src/unpack~.c
index d7bae1cee..270626191 100644
--- a/externals/zexy/src/unpack~.c
+++ b/externals/zexy/src/unpack~.c
@@ -94,7 +94,7 @@ static void sigunpack_dsp(t_sigunpack *x, t_signal **sp)
     x->bufsize = newsize;
   }
 
-  dsp_add(sigunpack_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+  dsp_add(sigunpack_perform, 3, sp[0]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *sigunpack_new(t_floatarg f)
diff --git a/externals/zexy/src/z~.c b/externals/zexy/src/z~.c
index 02cc88db2..bafca0483 100644
--- a/externals/zexy/src/z~.c
+++ b/externals/zexy/src/z~.c
@@ -89,7 +89,7 @@ static t_int *zN_perform(t_int *w)
 
 static void zNdelay_dsp(t_zNdelay *x, t_signal **sp)
 {
-  dsp_add(zN_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+  dsp_add(zN_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, (t_int)sp[0]->s_n);
 }
 
 static void *zNdelay_new(t_symbol*s, int argc, t_atom*argv)
-- 
GitLab