Changeset 2430:cd4e4e0562a4 in roaraudio
- Timestamp:
- 08/19/09 06:02:58 (15 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroardsp/synth.h
r2426 r2430 43 43 // SYNF -> Synthesis Function 44 44 #define ROAR_SYNTH_SYNF_SINE ROAR_SYNTH_FUNC_CAST(sinf) 45 #define ROAR_SYNTH_SYNF_RECT ROAR_SYNTH_FUNC_CAST(roar_synth_synf_rect) 46 #define ROAR_SYNTH_SYNF_SAW ROAR_SYNTH_FUNC_CAST(roar_synth_synf_saw) 47 #define ROAR_SYNTH_SYNF_TRI ROAR_SYNTH_FUNC_CAST(roar_synth_synf_tri) 48 #define ROAR_SYNTH_SYNF_TRAP ROAR_SYNTH_FUNC_CAST(roar_synth_synf_trap) 45 49 46 50 struct roar_synth_state { … … 58 62 int roar_synth_pcmout_i161(struct roar_synth_state * state, int16_t * out, size_t frames); 59 63 64 // some basic SYNFs: 65 float roar_synth_synf_rect (float t, struct roar_synth_state * state); 66 float roar_synth_synf_saw (float t, struct roar_synth_state * state); 67 float roar_synth_synf_tri (float t, struct roar_synth_state * state); 68 float roar_synth_synf_trap (float t, struct roar_synth_state * state); 69 60 70 #endif 61 71 -
libroardsp/synth.c
r2429 r2430 98 98 } 99 99 100 // basic SINFs: 101 float roar_synth_synf_rect (float t, struct roar_synth_state * state) { 102 t /= 2*M_PI; 103 t -= (int)t; 104 105 if ( t < 0.5 ) 106 return 1; 107 else 108 return -1; 109 } 110 111 float roar_synth_synf_saw (float t, struct roar_synth_state * state) { 112 t /= 2*M_PI; 113 t -= (int)t; 114 115 return 2*t - 1; 116 } 117 118 float roar_synth_synf_tri (float t, struct roar_synth_state * state) { 119 t /= 2*M_PI; 120 t -= (int)t; 121 122 if ( t < 0.5 ) 123 return 4* t - 1; 124 else 125 return -4*(t-0.5) + 1; 126 } 127 128 float roar_synth_synf_trap (float t, struct roar_synth_state * state) { 129 t /= 2*M_PI; 130 t -= (int)t; 131 132 if ( t < 0.125 || t > 0.875 ) { 133 return -1; 134 } else if ( t < 0.625 && t > 0.375 ) { 135 return 1; 136 } else if ( t < 0.5 ) { 137 return 8*(t-0.375) + 1; 138 } else { 139 return -8*(t-0.625) + 1; 140 } 141 } 100 142 101 143 //ll
Note: See TracChangeset
for help on using the changeset viewer.