diff options
Diffstat (limited to 'beatify~/beatify~.c')
-rw-r--r-- | beatify~/beatify~.c | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/beatify~/beatify~.c b/beatify~/beatify~.c deleted file mode 100644 index 69c2dd0..0000000 --- a/beatify~/beatify~.c +++ /dev/null @@ -1,177 +0,0 @@ -/* Copyright (c) 2002 Yves Degoyon. */ -/* For information on usage and redistribution, and for a DISCLAIMER OF ALL */ -/* WARRANTIES, see the file, "COPYING" in this distribution. */ -/* */ -/* beatify~ -- modulates an audio signal amplitude, */ -/* making it sounding like drums (sometimes) */ -/* */ -/* This program is free software; you can redistribute it and/or */ -/* modify it under the terms of the GNU General Public License */ -/* as published by the Free Software Foundation; either version 2 */ -/* of the License, or (at your option) any later version. */ -/* */ -/* See file LICENSE for further informations on licensing terms. */ -/* */ -/* This program is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU General Public License for more details. */ -/* */ -/* You should have received a copy of the GNU General Public License */ -/* along with this program; if not, write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* */ -/* Based on PureData by Miller Puckette and others. */ -/* */ -/* Made while listening to : */ -/* */ -/* "We wanted succes" */ -/* "We got lost into the night" */ -/* "Take life as it comes" */ -/* PJ Harvey -- We Float */ -/* ---------------------------------------------------------------------------- */ - -#include "m_pd.h" -#include <stdlib.h> -#include <math.h> - -static char *beatify_version = "beatify~: an audio beatify, version 0.1 (ydegoyon@free.fr)"; - -typedef struct _beatify -{ - t_object x_obj; - t_float x_attack; - t_float x_sustain; - t_float x_decay; - t_float x_size; - t_float x_gamplitude; - t_float x_vol; - t_int x_current; - t_float x_f; -} t_beatify; - -static t_class *beatify_class; - -static void beatify_attack(t_beatify *x, t_floatarg fattack ) -{ - if (fattack < 1.0) - { - x->x_attack = 1.0; - } - else - { - x->x_attack = fattack; - } -} - -static void beatify_sustain(t_beatify *x, t_floatarg fsustain ) -{ - if (fsustain < 0.0) - { - x->x_sustain = 0.0; - } - else - { - x->x_sustain = fsustain; - } -} - -static void beatify_decay(t_beatify *x, t_floatarg fdecay ) -{ - if (fdecay < 1.0) - { - x->x_decay = 1.0; - } - else - { - x->x_decay = fdecay; - } -} - -static void beatify_size(t_beatify *x, t_floatarg fsize ) -{ - if (fsize < 100.0) - { - x->x_size = 100.0; - } - else - { - x->x_size = fsize; - } -} - -static void beatify_gamplitude(t_beatify *x, t_floatarg fgamplitude ) -{ - if (fgamplitude < 0.0) { - x->x_gamplitude = 0.0; - } else if (fgamplitude > 1.0) { - x->x_gamplitude = 1.0; - } else { - x->x_gamplitude = fgamplitude; - } -} - -static void *beatify_new(void) -{ - t_beatify *x = (t_beatify *)pd_new(beatify_class); - inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("attack")); - inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("sustain")); - inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("decay")); - inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("size")); - inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("gamplitude")); - x->x_attack = 10; - x->x_decay = 50; - x->x_sustain = 2; - x->x_size = 700; - x->x_gamplitude = 0.5; - x->x_current = x->x_size; - outlet_new(&x->x_obj, &s_signal); - return (x); -} - -static t_int *beatify_perform(t_int *w) -{ - t_float *in = (t_float *)(w[1]); - t_float *out = (t_float *)(w[2]); - t_int n = (int)(w[3]); - t_beatify *x = (t_beatify*)(w[4]); - t_float adelta = 0., ddelta = 0.; - - while (n--) { - if ( x->x_current>=x->x_size ) - { - adelta = (x->x_gamplitude-x->x_vol)/x->x_attack; - ddelta = x->x_gamplitude/x->x_decay; - x->x_current = 0; - } - if ( x->x_current<x->x_attack ) x->x_vol+= adelta; - if ( x->x_current>x->x_attack+x->x_sustain && x->x_current<x->x_attack+x->x_sustain+x->x_decay ) - { - x->x_vol-= ddelta; - } - x->x_current++; - - *(out) = *(in)*x->x_vol; - out++; in++; - } - return (w+5); -} - -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 ); -} - -void beatify_tilde_setup(void) -{ - post( beatify_version ); - beatify_class = class_new(gensym("beatify~"), (t_newmethod)beatify_new, 0, - sizeof(t_beatify), 0, 0); - CLASS_MAINSIGNALIN( beatify_class, t_beatify, x_f ); - class_addmethod(beatify_class, (t_method)beatify_dsp, gensym("dsp"), 0); - class_addmethod(beatify_class, (t_method)beatify_attack, gensym("attack"), A_FLOAT, 0); - class_addmethod(beatify_class, (t_method)beatify_sustain, gensym("sustain"), A_FLOAT, 0); - class_addmethod(beatify_class, (t_method)beatify_decay, gensym("decay"), A_FLOAT, 0); - class_addmethod(beatify_class, (t_method)beatify_size, gensym("size"), A_FLOAT, 0); - class_addmethod(beatify_class, (t_method)beatify_gamplitude, gensym("gamplitude"), A_FLOAT, 0); -} |