Skip to content

Commit 78bd6bc

Browse files
authored
Merge pull request #1 from olilarkin/codex/swift-parity-conversions
Add Swift conversion parity
2 parents 01f24ac + 3b921a8 commit 78bd6bc

7 files changed

Lines changed: 811 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,18 @@ jobs:
118118
path: .build/xcframework/CLibrosa.xcframework
119119
if-no-files-found: error
120120

121+
swift-package:
122+
name: "Build & test Swift package"
123+
runs-on: macos-latest
124+
125+
steps:
126+
- uses: actions/checkout@v4
127+
with:
128+
submodules: true
129+
130+
- name: Run Swift tests
131+
run: swift test
132+
121133
pocketfft:
122134
name: "Build & test (Ubuntu, pocketfft backend)"
123135
runs-on: ubuntu-latest

Sources/CLibrosa/include/librosa_c.h

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,118 @@ int librosa_load(const char *path,
7777
double duration,
7878
LibrosaAudioData *out_audio);
7979

80+
int librosa_frames_to_samples(int64_t frames,
81+
int hop_length,
82+
int has_n_fft,
83+
int n_fft,
84+
int64_t *out_samples);
85+
int librosa_frames_to_samples_vector(const double *frames,
86+
int64_t count,
87+
int hop_length,
88+
int has_n_fft,
89+
int n_fft,
90+
LibrosaVector *out);
91+
int librosa_samples_to_frames(int64_t samples,
92+
int hop_length,
93+
int has_n_fft,
94+
int n_fft,
95+
int64_t *out_frames);
96+
int librosa_samples_to_frames_vector(const double *samples,
97+
int64_t count,
98+
int hop_length,
99+
int has_n_fft,
100+
int n_fft,
101+
LibrosaVector *out);
102+
int librosa_frames_to_time(int64_t frames,
103+
double sample_rate,
104+
int hop_length,
105+
int has_n_fft,
106+
int n_fft,
107+
double *out_time);
108+
int librosa_frames_to_time_vector(const double *frames,
109+
int64_t count,
110+
double sample_rate,
111+
int hop_length,
112+
int has_n_fft,
113+
int n_fft,
114+
LibrosaVector *out);
115+
int librosa_time_to_frames(double time,
116+
double sample_rate,
117+
int hop_length,
118+
int has_n_fft,
119+
int n_fft,
120+
int64_t *out_frames);
121+
int librosa_time_to_frames_vector(const double *times,
122+
int64_t count,
123+
double sample_rate,
124+
int hop_length,
125+
int has_n_fft,
126+
int n_fft,
127+
LibrosaVector *out);
128+
int librosa_time_to_samples(double time, double sample_rate, int64_t *out_samples);
129+
int librosa_time_to_samples_vector(const double *times,
130+
int64_t count,
131+
double sample_rate,
132+
LibrosaVector *out);
133+
int librosa_samples_to_time(int64_t samples, double sample_rate, double *out_time);
134+
int librosa_samples_to_time_vector(const double *samples,
135+
int64_t count,
136+
double sample_rate,
137+
LibrosaVector *out);
138+
80139
int librosa_midi_to_hz(double midi, double *out_hz);
140+
int librosa_midi_to_hz_vector(const double *midi, int64_t count, LibrosaVector *out);
81141
int librosa_hz_to_midi(double hz, double *out_midi);
142+
int librosa_hz_to_midi_vector(const double *hz, int64_t count, LibrosaVector *out);
82143
int librosa_hz_to_mel(double hz, int htk, double *out_mel);
144+
int librosa_hz_to_mel_vector(const double *hz, int64_t count, int htk, LibrosaVector *out);
83145
int librosa_mel_to_hz(double mel, int htk, double *out_hz);
146+
int librosa_mel_to_hz_vector(const double *mel, int64_t count, int htk, LibrosaVector *out);
84147
int librosa_note_to_midi(const char *note, int round_midi, double *out_midi);
85148
int librosa_note_to_hz(const char *note, double *out_hz);
149+
int librosa_hz_to_octs(double hz, double tuning, int bins_per_octave, double *out_octs);
150+
int librosa_hz_to_octs_vector(const double *hz,
151+
int64_t count,
152+
double tuning,
153+
int bins_per_octave,
154+
LibrosaVector *out);
155+
int librosa_octs_to_hz(double octs, double tuning, int bins_per_octave, double *out_hz);
156+
int librosa_octs_to_hz_vector(const double *octs,
157+
int64_t count,
158+
double tuning,
159+
int bins_per_octave,
160+
LibrosaVector *out);
161+
int librosa_a4_to_tuning(double a4, int bins_per_octave, double *out_tuning);
162+
int librosa_a4_to_tuning_vector(const double *a4,
163+
int64_t count,
164+
int bins_per_octave,
165+
LibrosaVector *out);
166+
int librosa_tuning_to_a4(double tuning, int bins_per_octave, double *out_a4);
167+
int librosa_tuning_to_a4_vector(const double *tuning,
168+
int64_t count,
169+
int bins_per_octave,
170+
LibrosaVector *out);
86171
int librosa_fft_frequencies(double sample_rate, int n_fft, LibrosaVector *out);
172+
int librosa_cqt_frequencies(int n_bins,
173+
double fmin,
174+
int bins_per_octave,
175+
double tuning,
176+
LibrosaVector *out);
87177
int librosa_mel_frequencies(int n_mels, double fmin, double fmax, int htk, LibrosaVector *out);
178+
int librosa_tempo_frequencies(int n_bins,
179+
int hop_length,
180+
double sample_rate,
181+
LibrosaVector *out);
182+
int librosa_fourier_tempo_frequencies(double sample_rate,
183+
int win_length,
184+
int hop_length,
185+
LibrosaVector *out);
186+
int librosa_frequency_weighting(const double *frequencies,
187+
int64_t count,
188+
const char *kind,
189+
int has_min_db,
190+
double min_db,
191+
LibrosaVector *out);
88192

89193
int librosa_tone(double frequency,
90194
double sample_rate,

0 commit comments

Comments
 (0)