History

remove unused file

Sigrid Solveig Haflínudóttir committed 3 years ago

Commit e87ff1e1 parent cc0694e1 file · +0 −443Browse files

Unified · Split

leaf/Inc/leaf-midi copy.h+0−443
@@ -1,443 +0,0 @@
1−/*==============================================================================
2−
3− leaf-midi.h
4− Created: 30 Nov 2018 11:29:26am
5− Author: airship
6−
7− ==============================================================================*/
8−
9−#ifndef LEAF_MIDI_H_INCLUDED
10−#define LEAF_MIDI_H_INCLUDED
11−
12−#ifdef __cplusplus
13−extern "C" {
14−#endif
15−
16− //==============================================================================
17−
18−#include "leaf-global.h"
19−#include "leaf-mempool.h"
20−#include "leaf-math.h"
21−#include "leaf-envelopes.h"
22−
23− /*!
24− * @internal
25− * Header.
26− * @include basic-oscillators.h
27− * @example basic-oscillators.c
28− * An example.
29− */
30−
31− //==============================================================================
32−
33− // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
34−
35− /*!
36− @defgroup tstack tStack
37− @ingroup midi
38− @brief A basic stack of integers with a fixed capacity of 128, used by tPoly to keep track of MIDI notes.
39− @{
40−
41− @fn void tStack_init (tStack* const stack, LEAF* const leaf)
42− @brief Initialize a tStack to the default mempool of a LEAF instance.
43− @param stack A pointer to the tStack to initialize.
44− @param leaf A pointer to the leaf instance.
45−
46− @fn void tStack_initToPool (tStack* const stack, tMempool* const mempool)
47− @brief Initialize a tStack to a specified mempool.
48− @param stack A pointer to the tStack to initialize.
49− @param mempool A pointer to the tMempool to use.
50−
51− @fn void tStack_free (tStack* const stack)
52− @brief Free a tStack from its mempool.
53− @param stack A pointer to the tStack to free.
54−
55− @fn void tStack_setCapacity (tStack* const stack, uint16_t cap)
56− @brief Set the capacity of the stack.
57− @param stack A pointer to the relevant tStack.
58− @param cap The new capacity.
59−
60− @fn int tStack_addIfNotAlreadyThere (tStack* const stack, uint16_t item)
61− @brief Add a value to the stack only if that value is not already in the stack.
62− @param stack A pointer to the relevant tStack.
63− @param item The value to be added.
64−
65− @fn void tStack_add (tStack* const stack, uint16_t item)
66− @brief Add a value to the stack.
67− @param stack A pointer to the relevant tStack.
68− @param item The value to be added.
69−
70− @fn int tStack_remove (tStack* const stack, uint16_t item)
71− @brief Remove a single instance of a value from the stack.
72− @param stack A pointer to the relevant tStack.
73− @param item The value to be removed.
74−
75− @fn void tStack_clear (tStack* const stack)
76− @brief Clear the stack.
77− @param stack A pointer to the relevant tStack.
78−
79− @fn int tStack_first (tStack* const stack)
80− @brief Get the first value in the stack.
81− @param stack A pointer to the relevant tStack.
82− @return The first value in the stack.
83−
84− @fn int tStack_getSize (tStack* const stack)
85− @brief Get the current size of the stack.
86− @param stack A pointer to the relevant tStack.
87− @return The current size of the stack.
88−
89− @fn int tStack_contains (tStack* const stack, uint16_t item)
90− @brief Check if the stack contains a value, and if it does, get the index of that value.
91− @param stack A pointer to the relevant tStack.
92− @param item The value to check against the stack.
93− @return The index of the value or -1 if the stack does not contain the value.
94−
95− @fn int tStack_next (tStack* const stack)
96− @brief Get the next value in the stack, starting from the earliest added values.
97− @param stack A pointer to the relevant tStack.
98− @return The next value in the stack or -1 if there are no values in the stack.
99−
100− @fn int tStack_get (tStack* const stack, int index)
101− @brief Get the value at a given index of the stack.
102− @param stack A pointer to the relevant tStack.
103− @param index The index of the stack from which to get a value.
104− @return The value at the given index.
105−
106− @} */
107−
108−#define STACK_SIZE 128
109− typedef struct _tStack
110− {
111−
112− tMempool mempool;
113− int data[STACK_SIZE];
114− uint16_t pos;
115− uint16_t size;
116− uint16_t capacity;
117− int ordered;
118− } _tStack;
119−
120− typedef _tStack* tStack;
121−
122− void tStack_init (tStack* const stack, LEAF* const leaf);
123− void tStack_initToPool (tStack* const stack, tMempool* const pool);
124− void tStack_free (tStack* const stack);
125−
126− void tStack_setCapacity (tStack* const stack, uint16_t cap);
127− int tStack_addIfNotAlreadyThere (tStack* const stack, uint16_t item);
128− void tStack_add (tStack* const stack, uint16_t item);
129− int tStack_remove (tStack* const stack, uint16_t item);
130− void tStack_clear (tStack* const stack);
131− int tStack_first (tStack* const stack);
132− int tStack_getSize (tStack* const stack);
133− int tStack_contains (tStack* const stack, uint16_t item);
134− int tStack_next (tStack* const stack);
135− int tStack_get (tStack* const stack, int index);
136−
137− /*! @}
138− @defgroup tpoly tPoly
139− @ingroup midi
140− @brief Polyphony handler with glide and pitch bend options.
141− @{
142−
143− @fn void tPoly_init (tPoly* const poly, int maxNumVoices, LEAF* const leaf)
144− @brief Initialize a tPoly to the default mempool of a LEAF instance.
145− @param poly A pointer to the tPoly to initialize.
146− @param maxNumVoices The maximum number of voices this tPoly can handle at once.
147− @param leaf A pointer to the leaf instance.
148−
149− @fn void tPoly_initToPool (tPoly* const poly, int maxNumVoices, tMempool* const pool)
150− @brief Initialize a tPoly to a specified mempool.
151− @param poly A pointer to the tPoly to initialize.
152− @param mempool A pointer to the tMempool to use.
153−
154− @fn void tPoly_free (tPoly* const poly)
155− @brief Free a tPoly from its mempool.
156− @param poly A pointer to the tPoly to free.
157−
158− @fn int tPoly_noteOn (tPoly* const poly, int note, uint8_t vel)
159− @brief Add a note with a given velocity to the poly handler.
160− @param poly A pointer to the relevant tPoly.
161− @param note The MIDI note number to add.
162− @param vel The MIDI velocity of the note to add.
163− @return The voice that will play the note.
164−
165− @fn int tPoly_noteOff (tPoly* const poly, uint8_t note)
166− @brief Remove a note from the poly handler.
167− @param poly A pointer to the relevant tPoly.
168− @param note The MIDI note number to remove.
169− @return The voice that was playing the removed note.
170−
171− @fn void tPoly_orderedAddToStack (tPoly* const poly, uint8_t note)
172− @brief
173− @param
174−
175− @fn void tPoly_setNumVoices (tPoly* const poly, uint8_t numVoices)
176− @brief Set the number of voices available to play notes.
177− @param poly A pointer to the relevant tPoly.
178− @param numVoices The new number of available voices. Cannot be greater than the max number voices given in tPoly_init().
179−
180− @fn void tPoly_setPitchGlideActive (tPoly* const poly, int isActive)
181− @brief Set whether pitch glide over note changes in voices is active.
182− @param poly A pointer to the relevant tPoly.
183− @param isActive Whether pitch glide should be active or not.
184−
185− @fn void tPoly_setPitchGlideTime (tPoly* const poly, float t)
186− @brief Set how long pitch glide over note changes in voices takes.
187− @param poly A pointer to the relevant tPoly.
188− @param t The time to glide in milliseconds.
189−
190− @fn void tPoly_setPitchBend (tPoly* const poly, float pitchBend)
191− @brief Set the amount of pitch bend
192− @param poly A pointer to the relevant tPoly.
193− @param pitchBend The new amount of pitch bend.
194−
195− @fn void tPoly_setBendGlideTime (tPoly* const poly, float t)
196− @brief
197− @param
198−
199− @fn void tPoly_setBendSamplesPerTick (tPoly* const poly, float t)
200− @brief
201− @param
202−
203− @fn void tPoly_tickPitch (tPoly* const poly)
204− @brief Execute all tick-rate changes in the poly handler's pitch, including glide and bend.
205− @param poly A pointer to the relevant tPoly.
206−
207− @fn void tPoly_tickPitchGlide (tPoly* const poly)
208− @brief Execute the tick-rate change of the poly handler's pitch glide.
209− @param poly A pointer to the relevant tPoly.
210−
211− @fn void tPoly_tickPitchBend (tPoly* const poly)
212− @brief Execute the tick-rate change of the poly handler's pitch bend.
213− @param poly A pointer to the relevant tPoly.
214−
215− @fn int tPoly_getNumVoices (tPoly* const poly)
216− @brief Get the current number of voices available to play notes.
217− @param poly A pointer to the relevant tPoly.
218− @return The current number of voices available to play notes.
219−
220− @fn int tPoly_getNumActiveVoices (tPoly* const poly)
221− @brief Get the number of voices currently playing notes.
222− @param poly A pointer to the relevant tPoly.
223− @return The number of voices currently playing notes.
224−
225− @fn float tPoly_getPitch (tPoly* const poly, uint8_t voice)
226− @brief Get the current pitch of a given voice.
227− @param poly A pointer to the relevant tPoly.
228− @param voice The voice to get the pitch of.
229− @return The current pitch of the given voice as a fractional MIDI note number.
230−
231− @fn int tPoly_getKey (tPoly* const poly, uint8_t voice)
232− @brief Get the current MIDI note number of a given voice.
233− @param poly A pointer to the relevant tPoly.
234− @param voice The voice to get the MIDI note number of.
235− @return The MIDI note number of the given voice.
236−
237− @fn int tPoly_getVelocity (tPoly* const poly, uint8_t voice)
238− @brief Get the current MIDI velocity of a given voice.
239− @param poly A pointer to the relevant tPoly.
240− @param voice The voice to get the MIDI velocity of.
241− @return The current MIDI velocity of the given voice.
242−
243− @fn int tPoly_isOn (tPoly* const poly, uint8_t voice)
244− @brief Get the current play state of a given voice.
245− @param poly A pointer to the relevant tPoly.
246− @param voice The voice to get the state of.
247− @return The current play state of the given voice.
248−
249− @} */
250−
251− typedef struct _tPoly
252− {
253−
254− tMempool mempool;
255−
256− tStack stack;
257− tStack orderStack;
258−
259− tRamp* ramps;
260− float* rampVals;
261− int* firstReceived;
262− float glideTime;
263− int pitchGlideIsActive;
264−
265− int numVoices;
266− int maxNumVoices;
267−
268− //int voices[POLY_NUM_MAX_VOICES][2];
269− int** voices;
270−
271− int notes[128][2];
272−
273− int CCs[128];
274−
275− uint8_t CCsRaw[128];
276−
277− int lastVoiceToChange;
278−
279− float pitchBend;
280− tRamp pitchBendRamp;
281−
282− int currentNote;
283− int currentVoice;
284− int currentVelocity;
285− int maxLength;
286− } _tPoly;
287−
288− typedef _tPoly* tPoly;
289−
290− void tPoly_init (tPoly* const poly, int maxNumVoices, LEAF* const leaf);
291− void tPoly_initToPool (tPoly* const poly, int maxNumVoices, tMempool* const pool);
292− void tPoly_free (tPoly* const poly);
293−
294− int tPoly_noteOn (tPoly* const poly, int note, uint8_t vel);
295− int tPoly_noteOff (tPoly* const poly, uint8_t note);
296− void tPoly_orderedAddToStack (tPoly* const poly, uint8_t note);
297− void tPoly_setNumVoices (tPoly* const poly, uint8_t numVoices);
298− void tPoly_setPitchGlideActive (tPoly* const poly, int isActive);
299− void tPoly_setPitchGlideTime (tPoly* const poly, float t);
300− void tPoly_setPitchBend (tPoly* const poly, float pitchBend);
301− void tPoly_setBendGlideTime (tPoly* const poly, float t);
302− void tPoly_setBendSamplesPerTick (tPoly* const poly, float t);
303− void tPoly_tickPitch (tPoly* const poly);
304− void tPoly_tickPitchGlide (tPoly* const poly);
305− void tPoly_tickPitchBend (tPoly* const poly);
306− int tPoly_getNumVoices (tPoly* const poly);
307− int tPoly_getNumActiveVoices (tPoly* const poly);
308− float tPoly_getPitch (tPoly* const poly, uint8_t voice);
309− int tPoly_getKey (tPoly* const poly, uint8_t voice);
310− int tPoly_getVelocity (tPoly* const poly, uint8_t voice);
311− int tPoly_isOn (tPoly* const poly, uint8_t voice);
312− void tPoly_setSampleRate (tPoly* const poly, float sr);
313−
314− //==============================================================================
315−
316− /*! @}
317− @defgroup tsimplepoly tSimplePoly
318− @ingroup midi
319− @brief Polyphony handler.
320− @{
321−
322− @fn void tSimplePoly_init (tSimplePoly* const poly, int maxNumVoices, LEAF* const leaf)
323− @brief Initialize a tSimplePoly to the default mempool of a LEAF instance.
324− @param poly A pointer to the tSimplePoly to initialize.
325− @param maxNumVoices The maximum number of voices this tSimplePoly can handle at once.
326− @param leaf A pointer to the leaf instance.
327−
328− @fn void tSimplePoly_initToPool (tSimplePoly* const poly, int maxNumVoices, tMempool* const pool)
329− @brief Initialize a tSimplePoly to a specified mempool.
330− @param poly A pointer to the tSimplePoly to initialize.
331− @param mempool A pointer to the tMempool to use.
332−
333− @fn void tSimplePoly_free (tSimplePoly* const poly)
334− @brief Free a tSimplePoly from its mempool.
335− @param poly A pointer to the tSimplePoly to free.
336−
337− @fn int tSimplePoly_noteOn (tSimplePoly* const poly, int note, uint8_t vel)
338− @brief Add a note with a given velocity to the poly handler.
339− @param poly A pointer to the relevant tSimplePoly.
340− @param note The MIDI note number to add.
341− @param vel The MIDI velocity of the note to add.
342− @return The voice that will play the note.
343−
344− @fn int tSimplePoly_noteOff (tSimplePoly* const poly, uint8_t note)
345− @brief Remove a note from the poly handler.
346− @param poly A pointer to the relevant tSimplePoly.
347− @param note The MIDI note number to remove.
348− @return The voice that was playing the removed note.
349−
350− @fn void tSimplePoly_deactivateVoice(tSimplePoly* const polyh, uint8_t voice)
351− @brief
352− @param
353−
354− @fn int tSimplePoly_markPendingNoteOff(tSimplePoly* const polyh, uint8_t note)
355− @brief
356− @param
357−
358− @fn int tSimplePoly_findVoiceAssignedToNote(tSimplePoly* const polyh, uint8_t note)
359− @brief Find if there is a voice with that note -- useful for note offs where you want to wait to remove it from the poly until the release phase of the envelope is finished
360− @param
361−
362− @fn void tSimplePoly_setNumVoices (tSimplePoly* const poly, uint8_t numVoices)
363− @brief Set the number of voices available to play notes.
364− @param poly A pointer to the relevant tSimplePoly.
365− @param numVoices The new number of available voices. Cannot be greater than the max number voices given on initialization.
366−
367− @fn int tSimplePoly_getNumVoices (tSimplePoly* const poly)
368− @brief Get the current number of voices available to play notes.
369− @param poly A pointer to the relevant tSimplePoly.
370− @return The current number of voices available to play notes.
371−
372− @fn int tSimplePoly_getNumActiveVoices (tSimplePoly* const poly)
373− @brief Get the number of voices currently playing notes.
374− @param poly A pointer to the relevant tSimplePoly.
375− @return The number of voices currently playing notes.
376−
377− @fn int tSimplePoly_getPitch (tSimplePoly* const poly, uint8_t voice)
378− @brief Get the current MIDI note number of a given voice.
379− @param poly A pointer to the relevant tSimplePoly.
380− @param voice The voice to get the MIDI note number of.
381− @return The MIDI note number of the given voice.
382−
383− @fn int tSimplePoly_getPitchAndCheckActive(tSimplePoly* const polyh, uint8_t voice)
384− @brief Returns negative one if the voice is inactive
385−
386− @fn int tSimplePoly_getVelocity (tSimplePoly* const poly, uint8_t voice)
387− @brief Get the current MIDI velocity of a given voice.
388− @param poly A pointer to the relevant tSimplePoly.
389− @param voice The voice to get the MIDI velocity of.
390− @return The current MIDI velocity of the given voice.
391−
392− @fn int tSimplePoly_isOn (tSimplePoly* const poly, uint8_t voice)
393− @brief Get the current play state of a given voice.
394− @param poly A pointer to the relevant tSimplePoly.
395− @param voice The voice to get the state of.
396− @return The current play state of the given voice.
397−
398− @} */
399− typedef struct _tSimplePoly
400− {
401− tMempool mempool;
402−
403− tStack stack;
404−
405− int numVoices;
406− int maxNumVoices;
407− int** voices;
408− int stealing_on;
409− int recover_stolen;
410−
411− int notes[128][2];
412− } _tSimplePoly;
413−
414− typedef _tSimplePoly* tSimplePoly;
415−
416− void tSimplePoly_init (tSimplePoly* const poly, int maxNumVoices, LEAF* const leaf);
417− void tSimplePoly_initToPool (tSimplePoly* const poly, int maxNumVoices, tMempool* const pool);
418− void tSimplePoly_free (tSimplePoly* const poly);
419−
420− int tSimplePoly_noteOn (tSimplePoly* const poly, int note, uint8_t vel);
421− int tSimplePoly_noteOff (tSimplePoly* const poly, uint8_t note);
422− void tSimplePoly_deactivateVoice (tSimplePoly* const polyh, uint8_t voice);
423− int tSimplePoly_markPendingNoteOff (tSimplePoly* const polyh, uint8_t note);
424− int tSimplePoly_findVoiceAssignedToNote (tSimplePoly* const polyh, uint8_t note);
425− void tSimplePoly_setNumVoices (tSimplePoly* const poly, uint8_t numVoices);
426− int tSimplePoly_getNumVoices (tSimplePoly* const poly);
427− int tSimplePoly_getNumActiveVoices (tSimplePoly* const poly);
428− int tSimplePoly_getPitch (tSimplePoly* const poly, uint8_t voice);
429− int tSimplePoly_getPitchAndCheckActive(tSimplePoly* const polyh, uint8_t voice);
430− int tSimplePoly_getVelocity (tSimplePoly* const poly, uint8_t voice);
431− int tSimplePoly_isOn (tSimplePoly* const poly, uint8_t voice);
432−
433− //==============================================================================
434−
435−#ifdef __cplusplus
436−}
437−#endif
438−
439−#endif // LEAF_MIDI_H_INCLUDED
440−
441−//==============================================================================
442−
443−

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t