lmms
Cross-platform music production software
Loading...
Searching...
No Matches
base.h
Go to the documentation of this file.
1#include <stdint.h>
2#include <stdio.h>
3
4#define NO_LIBSNDFILE
5
6#ifndef NO_LIBSNDFILE
7#include "sndfile.h"
8#endif
9
10#define SP_BUFSIZE 4096
11#ifndef SPFLOAT
12#define SPFLOAT float
13#endif
14#define SP_OK 1
15#define SP_NOT_OK 0
16
17#define SP_RANDMAX 2147483648
18
19typedef unsigned long sp_frame;
20
21typedef struct sp_auxdata {
22 size_t size;
23 void *ptr;
25
26typedef struct sp_data {
28 uint32_t sr;
29 int nchan;
30 unsigned long len;
31 unsigned long pos;
32 char filename[200];
33 uint32_t rand;
35
36typedef struct {
37 char state;
39} sp_param;
40
41int sp_auxdata_alloc(sp_auxdata *aux, size_t size);
43
44int sp_create(sp_data **spp);
45int sp_createn(sp_data **spp, int nchan);
46
47int sp_destroy(sp_data **spp);
48int sp_process(sp_data *sp, void *ud, void (*callback)(sp_data *, void *));
49int sp_process_raw(sp_data *sp, void *ud, void (*callback)(sp_data *, void *));
50int sp_process_plot(sp_data *sp, void *ud, void (*callback)(sp_data *, void *));
51int sp_process_spa(sp_data *sp, void *ud, void (*callback)(sp_data *, void *));
52
54
55int sp_set(sp_param *p, SPFLOAT val);
56
57int sp_out(sp_data *sp, uint32_t chan, SPFLOAT val);
58
59uint32_t sp_rand(sp_data *sp);
60void sp_srand(sp_data *sp, uint32_t val);
61
62
63typedef struct {
65 int16_t *BRLow;
66 int16_t *BRLowCpx;
67} sp_fft;
68
70void sp_fft_init(sp_fft *fft, int M);
71void sp_fftr(sp_fft *fft, SPFLOAT *buf, int FFTsize);
72void sp_fft_cpx(sp_fft *fft, SPFLOAT *buf, int FFTsize);
73void sp_ifftr(sp_fft *fft, SPFLOAT *buf, int FFTsize);
75#ifndef kiss_fft_scalar
76#define kiss_fft_scalar SPFLOAT
77#endif
82
83typedef struct kiss_fft_state* kiss_fft_cfg;
84typedef struct kiss_fftr_state* kiss_fftr_cfg;
int sp_auxdata_free(sp_auxdata *aux)
Definition base.c:152
int sp_create(sp_data **spp)
Definition base.c:7
int sp_createn(sp_data **spp, int nchan)
Definition base.c:9
int sp_process_raw(sp_data *sp, void *ud, void(*callback)(sp_data *, void *))
Definition base.c:79
int sp_set(sp_param *p, SPFLOAT val)
Definition base.c:164
void sp_srand(sp_data *sp, uint32_t val)
Definition base.c:189
int sp_out(sp_data *sp, uint32_t chan, SPFLOAT val)
Definition base.c:170
SPFLOAT sp_midi2cps(SPFLOAT nn)
Definition base.c:159
int sp_auxdata_alloc(sp_auxdata *aux, size_t size)
Definition base.c:144
int sp_destroy(sp_data **spp)
Definition base.c:20
int sp_process_plot(sp_data *sp, void *ud, void(*callback)(sp_data *, void *))
Definition base.c:121
void sp_fft_create(sp_fft **fft)
void sp_fft_cpx(sp_fft *fft, SPFLOAT *buf, int FFTsize)
void sp_fft_init(sp_fft *fft, int M)
void sp_ifftr(sp_fft *fft, SPFLOAT *buf, int FFTsize)
#define kiss_fft_scalar
Definition base.h:76
uint32_t sp_rand(sp_data *sp)
unsigned long sp_frame
Definition base.h:19
struct kiss_fftr_state * kiss_fftr_cfg
Definition base.h:84
struct kiss_fft_state * kiss_fft_cfg
Definition base.h:83
void sp_fft_destroy(sp_fft *fft)
void sp_fftr(sp_fft *fft, SPFLOAT *buf, int FFTsize)
int sp_process_spa(sp_data *sp, void *ud, void(*callback)(sp_data *, void *))
#define SPFLOAT
Definition base.h:12
int sp_process(sp_data *sp, void *ud, void(*callback)(sp_data *, void *))
Definition base.h:78
kiss_fft_scalar r
Definition base.h:79
kiss_fft_scalar i
Definition base.h:80
Definition base.h:21
void * ptr
Definition base.h:23
size_t size
Definition base.h:22
Definition base.h:26
int nchan
Definition base.h:29
uint32_t sr
Definition base.h:28
unsigned long len
Definition base.h:30
SPFLOAT * out
Definition base.h:27
char filename[200]
Definition base.h:32
uint32_t rand
Definition base.h:33
unsigned long pos
Definition base.h:31
Definition base.h:63
int16_t * BRLowCpx
Definition base.h:66
SPFLOAT * utbl
Definition base.h:64
int16_t * BRLow
Definition base.h:65
Definition base.h:36
SPFLOAT val
Definition base.h:38
char state
Definition base.h:37