#include "BasicFlute1_samples.h" | #include "BasicFlute1_samples.h" | ||||
const sample_data BasicFlute1_samples[2] = { | |||||
const AudioSynthWavetable::sample_data BasicFlute1_samples[2] = { | |||||
{ | { | ||||
(int16_t*)sample_0_BasicFlute1_BreathyFluteC2, //16-bit PCM encoded audio sample | (int16_t*)sample_0_BasicFlute1_BreathyFluteC2, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data BasicFlute1_samples[2]; | |||||
extern const AudioSynthWavetable::sample_data BasicFlute1_samples[2]; | |||||
const uint8_t BasicFlute1_ranges[] = {54, 127, }; | const uint8_t BasicFlute1_ranges[] = {54, 127, }; | ||||
const instrument_data BasicFlute1 = {2, BasicFlute1_ranges, BasicFlute1_samples }; | |||||
const AudioSynthWavetable::instrument_data BasicFlute1 = {2, BasicFlute1_ranges, BasicFlute1_samples }; | |||||
extern const uint32_t sample_0_BasicFlute1_BreathyFluteC2[28544]; | extern const uint32_t sample_0_BasicFlute1_BreathyFluteC2[28544]; |
#include "FrenchHorns_samples.h" | #include "FrenchHorns_samples.h" | ||||
const sample_data FrenchHorns_samples[1] = { | |||||
const AudioSynthWavetable::sample_data FrenchHorns_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_FrenchHorns_FrenchHornsA4L, //16-bit PCM encoded audio sample | (int16_t*)sample_0_FrenchHorns_FrenchHornsA4L, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data FrenchHorns_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data FrenchHorns_samples[1]; | |||||
const uint8_t FrenchHorns_ranges[] = {127, }; | const uint8_t FrenchHorns_ranges[] = {127, }; | ||||
const instrument_data FrenchHorns = {1, FrenchHorns_ranges, FrenchHorns_samples }; | |||||
const AudioSynthWavetable::instrument_data FrenchHorns = {1, FrenchHorns_ranges, FrenchHorns_samples }; | |||||
extern const uint32_t sample_0_FrenchHorns_FrenchHornsA4L[55040]; | extern const uint32_t sample_0_FrenchHorns_FrenchHornsA4L[55040]; |
#include "Ocarina_samples.h" | #include "Ocarina_samples.h" | ||||
const sample_data Ocarina_samples[3] = { | |||||
const AudioSynthWavetable::sample_data Ocarina_samples[3] = { | |||||
{ | { | ||||
(int16_t*)sample_0_Ocarina_OcarinaF4, //16-bit PCM encoded audio sample | (int16_t*)sample_0_Ocarina_OcarinaF4, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data Ocarina_samples[3]; | |||||
extern const AudioSynthWavetable::sample_data Ocarina_samples[3]; | |||||
const uint8_t Ocarina_ranges[] = {78, 101, 127, }; | const uint8_t Ocarina_ranges[] = {78, 101, 127, }; | ||||
const instrument_data Ocarina = {3, Ocarina_ranges, Ocarina_samples }; | |||||
const AudioSynthWavetable::instrument_data Ocarina = {3, Ocarina_ranges, Ocarina_samples }; | |||||
extern const uint32_t sample_0_Ocarina_OcarinaF4[1536]; | extern const uint32_t sample_0_Ocarina_OcarinaF4[1536]; |
#include "Pizzicato_samples.h" | #include "Pizzicato_samples.h" | ||||
const sample_data Pizzicato_samples[4] = { | |||||
const AudioSynthWavetable::sample_data Pizzicato_samples[4] = { | |||||
{ | { | ||||
(int16_t*)sample_0_Pizzicato_PizzViolinE3, //16-bit PCM encoded audio sample | (int16_t*)sample_0_Pizzicato_PizzViolinE3, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data Pizzicato_samples[4]; | |||||
extern const AudioSynthWavetable::sample_data Pizzicato_samples[4]; | |||||
const uint8_t Pizzicato_ranges[] = {68, 83, 93, 127, }; | const uint8_t Pizzicato_ranges[] = {68, 83, 93, 127, }; | ||||
const instrument_data Pizzicato = {4, Pizzicato_ranges, Pizzicato_samples }; | |||||
const AudioSynthWavetable::instrument_data Pizzicato = {4, Pizzicato_ranges, Pizzicato_samples }; | |||||
extern const uint32_t sample_0_Pizzicato_PizzViolinE3[2944]; | extern const uint32_t sample_0_Pizzicato_PizzViolinE3[2944]; |
#include "Viola_samples.h" | #include "Viola_samples.h" | ||||
const sample_data Viola_samples[8] = { | |||||
const AudioSynthWavetable::sample_data Viola_samples[8] = { | |||||
{ | { | ||||
(int16_t*)sample_0_Viola_ViolinBb2, //16-bit PCM encoded audio sample | (int16_t*)sample_0_Viola_ViolinBb2, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data Viola_samples[8]; | |||||
extern const AudioSynthWavetable::sample_data Viola_samples[8]; | |||||
const uint8_t Viola_ranges[] = {58, 65, 68, 73, 79, 92, 96, 127, }; | const uint8_t Viola_ranges[] = {58, 65, 68, 73, 79, 92, 96, 127, }; | ||||
const instrument_data Viola = {8, Viola_ranges, Viola_samples }; | |||||
const AudioSynthWavetable::instrument_data Viola = {8, Viola_ranges, Viola_samples }; | |||||
extern const uint32_t sample_0_Viola_ViolinBb2[768]; | extern const uint32_t sample_0_Viola_ViolinBb2[768]; |
#include "BasicFlute1_samples.h" | #include "BasicFlute1_samples.h" | ||||
const sample_data BasicFlute1_samples[2] = { | |||||
const AudioSynthWavetable::sample_data BasicFlute1_samples[2] = { | |||||
{ | { | ||||
(int16_t*)sample_0_BasicFlute1_BreathyFluteC2, //16-bit PCM encoded audio sample | (int16_t*)sample_0_BasicFlute1_BreathyFluteC2, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data BasicFlute1_samples[2]; | |||||
extern const AudioSynthWavetable::sample_data BasicFlute1_samples[2]; | |||||
const uint8_t BasicFlute1_ranges[] = {54, 127, }; | const uint8_t BasicFlute1_ranges[] = {54, 127, }; | ||||
const instrument_data BasicFlute1 = {2, BasicFlute1_ranges, BasicFlute1_samples }; | |||||
const AudioSynthWavetable::instrument_data BasicFlute1 = {2, BasicFlute1_ranges, BasicFlute1_samples }; | |||||
extern const uint32_t sample_0_BasicFlute1_BreathyFluteC2[28544]; | extern const uint32_t sample_0_BasicFlute1_BreathyFluteC2[28544]; |
#include "FrenchHorns_samples.h" | #include "FrenchHorns_samples.h" | ||||
const sample_data FrenchHorns_samples[1] = { | |||||
const AudioSynthWavetable::sample_data FrenchHorns_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_FrenchHorns_FrenchHornsA4L, //16-bit PCM encoded audio sample | (int16_t*)sample_0_FrenchHorns_FrenchHornsA4L, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data FrenchHorns_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data FrenchHorns_samples[1]; | |||||
const uint8_t FrenchHorns_ranges[] = {127, }; | const uint8_t FrenchHorns_ranges[] = {127, }; | ||||
const instrument_data FrenchHorns = {1, FrenchHorns_ranges, FrenchHorns_samples }; | |||||
const AudioSynthWavetable::instrument_data FrenchHorns = {1, FrenchHorns_ranges, FrenchHorns_samples }; | |||||
extern const uint32_t sample_0_FrenchHorns_FrenchHornsA4L[55040]; | extern const uint32_t sample_0_FrenchHorns_FrenchHornsA4L[55040]; |
#include "Ocarina_samples.h" | #include "Ocarina_samples.h" | ||||
const sample_data Ocarina_samples[3] = { | |||||
const AudioSynthWavetable::sample_data Ocarina_samples[3] = { | |||||
{ | { | ||||
(int16_t*)sample_0_Ocarina_OcarinaF4, //16-bit PCM encoded audio sample | (int16_t*)sample_0_Ocarina_OcarinaF4, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data Ocarina_samples[3]; | |||||
extern const AudioSynthWavetable::sample_data Ocarina_samples[3]; | |||||
const uint8_t Ocarina_ranges[] = {78, 101, 127, }; | const uint8_t Ocarina_ranges[] = {78, 101, 127, }; | ||||
const instrument_data Ocarina = {3, Ocarina_ranges, Ocarina_samples }; | |||||
const AudioSynthWavetable::instrument_data Ocarina = {3, Ocarina_ranges, Ocarina_samples }; | |||||
extern const uint32_t sample_0_Ocarina_OcarinaF4[1536]; | extern const uint32_t sample_0_Ocarina_OcarinaF4[1536]; |
#include "Pizzicato_samples.h" | #include "Pizzicato_samples.h" | ||||
const sample_data Pizzicato_samples[4] = { | |||||
const AudioSynthWavetable::sample_data Pizzicato_samples[4] = { | |||||
{ | { | ||||
(int16_t*)sample_0_Pizzicato_PizzViolinE3, //16-bit PCM encoded audio sample | (int16_t*)sample_0_Pizzicato_PizzViolinE3, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data Pizzicato_samples[4]; | |||||
extern const AudioSynthWavetable::sample_data Pizzicato_samples[4]; | |||||
const uint8_t Pizzicato_ranges[] = {68, 83, 93, 127, }; | const uint8_t Pizzicato_ranges[] = {68, 83, 93, 127, }; | ||||
const instrument_data Pizzicato = {4, Pizzicato_ranges, Pizzicato_samples }; | |||||
const AudioSynthWavetable::instrument_data Pizzicato = {4, Pizzicato_ranges, Pizzicato_samples }; | |||||
extern const uint32_t sample_0_Pizzicato_PizzViolinE3[2944]; | extern const uint32_t sample_0_Pizzicato_PizzViolinE3[2944]; |
#include "Viola_samples.h" | #include "Viola_samples.h" | ||||
const sample_data Viola_samples[8] = { | |||||
const AudioSynthWavetable::sample_data Viola_samples[8] = { | |||||
{ | { | ||||
(int16_t*)sample_0_Viola_ViolinBb2, //16-bit PCM encoded audio sample | (int16_t*)sample_0_Viola_ViolinBb2, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data Viola_samples[8]; | |||||
extern const AudioSynthWavetable::sample_data Viola_samples[8]; | |||||
const uint8_t Viola_ranges[] = {58, 65, 68, 73, 79, 92, 96, 127, }; | const uint8_t Viola_ranges[] = {58, 65, 68, 73, 79, 92, 96, 127, }; | ||||
const instrument_data Viola = {8, Viola_ranges, Viola_samples }; | |||||
const AudioSynthWavetable::instrument_data Viola = {8, Viola_ranges, Viola_samples }; | |||||
extern const uint32_t sample_0_Viola_ViolinBb2[768]; | extern const uint32_t sample_0_Viola_ViolinBb2[768]; |
//Serial.println(); | //Serial.println(); | ||||
} | } | ||||
const instrument_data* const midi_map[] = { | |||||
const AudioSynthWavetable::instrument_data * const midi_map[] = { | |||||
&piano, &piano, &piano, &piano, &piano, &piano, &piano, &piano, // 000: pianos | &piano, &piano, &piano, &piano, &piano, &piano, &piano, &piano, // 000: pianos | ||||
&vibraphone, &vibraphone, &vibraphone, &vibraphone, &vibraphone, &vibraphone, &vibraphone, &vibraphone, // 008: chrom percus | &vibraphone, &vibraphone, &vibraphone, &vibraphone, &vibraphone, &vibraphone, &vibraphone, &vibraphone, // 008: chrom percus | ||||
&harmonica, &harmonica, &harmonica, &harmonica, &harmonica, &harmonica, &harmonica, &harmonica, // 016: organs | &harmonica, &harmonica, &harmonica, &harmonica, &harmonica, &harmonica, &harmonica, &harmonica, // 016: organs | ||||
>fretnoise, >fretnoise, >fretnoise, >fretnoise, >fretnoise, >fretnoise, >fretnoise, >fretnoise, // 120: sound effects | >fretnoise, >fretnoise, >fretnoise, >fretnoise, >fretnoise, >fretnoise, >fretnoise, >fretnoise, // 120: sound effects | ||||
}; | }; | ||||
const instrument_data* channel_map[17] = { | |||||
const AudioSynthWavetable::instrument_data * channel_map[17] = { | |||||
&piano, &piano, &piano, &piano, &piano, &piano, &piano, &piano, &piano, &piano, &standard_DRUMS, &piano, &piano, &piano, &piano, &piano, &piano, | &piano, &piano, &piano, &piano, &piano, &piano, &piano, &piano, &piano, &piano, &standard_DRUMS, &piano, &piano, &piano, &piano, &piano, &piano, | ||||
}; | }; | ||||
#include "bassoon_samples.h" | #include "bassoon_samples.h" | ||||
const sample_data bassoon_samples[2] = { | |||||
const AudioSynthWavetable::sample_data bassoon_samples[2] = { | |||||
{ | { | ||||
(int16_t*)sample_0_bassoon_bassoonc2, // sample | (int16_t*)sample_0_bassoon_bassoonc2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data bassoon_samples[2]; | |||||
extern const AudioSynthWavetable::sample_data bassoon_samples[2]; | |||||
const uint8_t bassoon_ranges[] = {88, 127, }; | const uint8_t bassoon_ranges[] = {88, 127, }; | ||||
const instrument_data bassoon = {2, bassoon_ranges, bassoon_samples }; | |||||
const AudioSynthWavetable::instrument_data bassoon = {2, bassoon_ranges, bassoon_samples }; | |||||
extern const uint32_t sample_0_bassoon_bassoonc2[640]; | extern const uint32_t sample_0_bassoon_bassoonc2[640]; |
#include "clarinet_samples.h" | #include "clarinet_samples.h" | ||||
const sample_data clarinet_samples[2] = { | |||||
const AudioSynthWavetable::sample_data clarinet_samples[2] = { | |||||
{ | { | ||||
(int16_t*)sample_0_clarinet_clarinetd2, // sample | (int16_t*)sample_0_clarinet_clarinetd2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data clarinet_samples[2]; | |||||
extern const AudioSynthWavetable::sample_data clarinet_samples[2]; | |||||
const uint8_t clarinet_ranges[] = {69, 127, }; | const uint8_t clarinet_ranges[] = {69, 127, }; | ||||
const instrument_data clarinet = {2, clarinet_ranges, clarinet_samples }; | |||||
const AudioSynthWavetable::instrument_data clarinet = {2, clarinet_ranges, clarinet_samples }; | |||||
extern const uint32_t sample_0_clarinet_clarinetd2[384]; | extern const uint32_t sample_0_clarinet_clarinetd2[384]; |
#include "distortiongt_samples.h" | #include "distortiongt_samples.h" | ||||
const sample_data distortiongt_samples[4] = { | |||||
const AudioSynthWavetable::sample_data distortiongt_samples[4] = { | |||||
{ | { | ||||
(int16_t*)sample_0_distortiongt_distgtra2, // sample | (int16_t*)sample_0_distortiongt_distgtra2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data distortiongt_samples[4]; | |||||
extern const AudioSynthWavetable::sample_data distortiongt_samples[4]; | |||||
const uint8_t distortiongt_ranges[] = {62, 66, 72, 127, }; | const uint8_t distortiongt_ranges[] = {62, 66, 72, 127, }; | ||||
const instrument_data distortiongt = {4, distortiongt_ranges, distortiongt_samples }; | |||||
const AudioSynthWavetable::instrument_data distortiongt = {4, distortiongt_ranges, distortiongt_samples }; | |||||
extern const uint32_t sample_0_distortiongt_distgtra2[1024]; | extern const uint32_t sample_0_distortiongt_distgtra2[1024]; |
#include "epiano_samples.h" | #include "epiano_samples.h" | ||||
const sample_data epiano_samples[4] = { | |||||
const AudioSynthWavetable::sample_data epiano_samples[4] = { | |||||
{ | { | ||||
(int16_t*)sample_0_epiano_coldglass7wave, // sample | (int16_t*)sample_0_epiano_coldglass7wave, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data epiano_samples[4]; | |||||
extern const AudioSynthWavetable::sample_data epiano_samples[4]; | |||||
const uint8_t epiano_ranges[] = {48, 60, 80, 127, }; | const uint8_t epiano_ranges[] = {48, 60, 80, 127, }; | ||||
const instrument_data epiano = {4, epiano_ranges, epiano_samples }; | |||||
const AudioSynthWavetable::instrument_data epiano = {4, epiano_ranges, epiano_samples }; | |||||
extern const uint32_t sample_0_epiano_coldglass7wave[128]; | extern const uint32_t sample_0_epiano_coldglass7wave[128]; |
#include "flute_samples.h" | #include "flute_samples.h" | ||||
const sample_data flute_samples[1] = { | |||||
const AudioSynthWavetable::sample_data flute_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_flute_flutec4, // sample | (int16_t*)sample_0_flute_flutec4, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data flute_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data flute_samples[1]; | |||||
const uint8_t flute_ranges[] = {127, }; | const uint8_t flute_ranges[] = {127, }; | ||||
const instrument_data flute = {1, flute_ranges, flute_samples }; | |||||
const AudioSynthWavetable::instrument_data flute = {1, flute_ranges, flute_samples }; | |||||
extern const uint32_t sample_0_flute_flutec4[768]; | extern const uint32_t sample_0_flute_flutec4[768]; |
#include "frenchhorn_samples.h" | #include "frenchhorn_samples.h" | ||||
const sample_data frenchhorn_samples[1] = { | |||||
const AudioSynthWavetable::sample_data frenchhorn_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_frenchhorn_frenchhorng4, // sample | (int16_t*)sample_0_frenchhorn_frenchhorng4, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data frenchhorn_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data frenchhorn_samples[1]; | |||||
const uint8_t frenchhorn_ranges[] = {127, }; | const uint8_t frenchhorn_ranges[] = {127, }; | ||||
const instrument_data frenchhorn = {1, frenchhorn_ranges, frenchhorn_samples }; | |||||
const AudioSynthWavetable::instrument_data frenchhorn = {1, frenchhorn_ranges, frenchhorn_samples }; | |||||
extern const uint32_t sample_0_frenchhorn_frenchhorng4[768]; | extern const uint32_t sample_0_frenchhorn_frenchhorng4[768]; |
#include "glockenspiel_samples.h" | #include "glockenspiel_samples.h" | ||||
const sample_data glockenspiel_samples[2] = { | |||||
const AudioSynthWavetable::sample_data glockenspiel_samples[2] = { | |||||
{ | { | ||||
(int16_t*)sample_0_glockenspiel_sinetick, // sample | (int16_t*)sample_0_glockenspiel_sinetick, // sample | ||||
false, // LOOP | false, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data glockenspiel_samples[2]; | |||||
extern const AudioSynthWavetable::sample_data glockenspiel_samples[2]; | |||||
const uint8_t glockenspiel_ranges[] = {59, 127, }; | const uint8_t glockenspiel_ranges[] = {59, 127, }; | ||||
const instrument_data glockenspiel = {2, glockenspiel_ranges, glockenspiel_samples }; | |||||
const AudioSynthWavetable::instrument_data glockenspiel = {2, glockenspiel_ranges, glockenspiel_samples }; | |||||
extern const uint32_t sample_0_glockenspiel_sinetick[128]; | extern const uint32_t sample_0_glockenspiel_sinetick[128]; |
#include "gtfretnoise_samples.h" | #include "gtfretnoise_samples.h" | ||||
const sample_data gtfretnoise_samples[1] = { | |||||
const AudioSynthWavetable::sample_data gtfretnoise_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_gtfretnoise_guitarfret, // sample | (int16_t*)sample_0_gtfretnoise_guitarfret, // sample | ||||
false, // LOOP | false, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data gtfretnoise_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data gtfretnoise_samples[1]; | |||||
const uint8_t gtfretnoise_ranges[] = {127, }; | const uint8_t gtfretnoise_ranges[] = {127, }; | ||||
const instrument_data gtfretnoise = {1, gtfretnoise_ranges, gtfretnoise_samples }; | |||||
const AudioSynthWavetable::instrument_data gtfretnoise = {1, gtfretnoise_ranges, gtfretnoise_samples }; | |||||
extern const uint32_t sample_0_gtfretnoise_guitarfret[1792]; | extern const uint32_t sample_0_gtfretnoise_guitarfret[1792]; |
#include "harmonica_samples.h" | #include "harmonica_samples.h" | ||||
const sample_data harmonica_samples[1] = { | |||||
const AudioSynthWavetable::sample_data harmonica_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_harmonica_harmonicaa3, // sample | (int16_t*)sample_0_harmonica_harmonicaa3, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data harmonica_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data harmonica_samples[1]; | |||||
const uint8_t harmonica_ranges[] = {127, }; | const uint8_t harmonica_ranges[] = {127, }; | ||||
const instrument_data harmonica = {1, harmonica_ranges, harmonica_samples }; | |||||
const AudioSynthWavetable::instrument_data harmonica = {1, harmonica_ranges, harmonica_samples }; | |||||
extern const uint32_t sample_0_harmonica_harmonicaa3[512]; | extern const uint32_t sample_0_harmonica_harmonicaa3[512]; |
#include "harp_samples.h" | #include "harp_samples.h" | ||||
const sample_data harp_samples[1] = { | |||||
const AudioSynthWavetable::sample_data harp_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_harp_pluckharp, // sample | (int16_t*)sample_0_harp_pluckharp, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data harp_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data harp_samples[1]; | |||||
const uint8_t harp_ranges[] = {127, }; | const uint8_t harp_ranges[] = {127, }; | ||||
const instrument_data harp = {1, harp_ranges, harp_samples }; | |||||
const AudioSynthWavetable::instrument_data harp = {1, harp_ranges, harp_samples }; | |||||
extern const uint32_t sample_0_harp_pluckharp[1792]; | extern const uint32_t sample_0_harp_pluckharp[1792]; |
#include "mutedgtr_samples.h" | #include "mutedgtr_samples.h" | ||||
const sample_data mutedgtr_samples[1] = { | |||||
const AudioSynthWavetable::sample_data mutedgtr_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_mutedgtr_mgtr, // sample | (int16_t*)sample_0_mutedgtr_mgtr, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data mutedgtr_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data mutedgtr_samples[1]; | |||||
const uint8_t mutedgtr_ranges[] = {127, }; | const uint8_t mutedgtr_ranges[] = {127, }; | ||||
const instrument_data mutedgtr = {1, mutedgtr_ranges, mutedgtr_samples }; | |||||
const AudioSynthWavetable::instrument_data mutedgtr = {1, mutedgtr_ranges, mutedgtr_samples }; | |||||
extern const uint32_t sample_0_mutedgtr_mgtr[512]; | extern const uint32_t sample_0_mutedgtr_mgtr[512]; |
#include "nylonstrgtr_samples.h" | #include "nylonstrgtr_samples.h" | ||||
const sample_data nylonstrgtr_samples[3] = { | |||||
const AudioSynthWavetable::sample_data nylonstrgtr_samples[3] = { | |||||
{ | { | ||||
(int16_t*)sample_0_nylonstrgtr_nguitrf2, // sample | (int16_t*)sample_0_nylonstrgtr_nguitrf2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data nylonstrgtr_samples[3]; | |||||
extern const AudioSynthWavetable::sample_data nylonstrgtr_samples[3]; | |||||
const uint8_t nylonstrgtr_ranges[] = {56, 77, 127, }; | const uint8_t nylonstrgtr_ranges[] = {56, 77, 127, }; | ||||
const instrument_data nylonstrgtr = {3, nylonstrgtr_ranges, nylonstrgtr_samples }; | |||||
const AudioSynthWavetable::instrument_data nylonstrgtr = {3, nylonstrgtr_ranges, nylonstrgtr_samples }; | |||||
extern const uint32_t sample_0_nylonstrgtr_nguitrf2[1920]; | extern const uint32_t sample_0_nylonstrgtr_nguitrf2[1920]; |
#include "oboe_samples.h" | #include "oboe_samples.h" | ||||
const sample_data oboe_samples[3] = { | |||||
const AudioSynthWavetable::sample_data oboe_samples[3] = { | |||||
{ | { | ||||
(int16_t*)sample_0_oboe_oboecx3, // sample | (int16_t*)sample_0_oboe_oboecx3, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data oboe_samples[3]; | |||||
extern const AudioSynthWavetable::sample_data oboe_samples[3]; | |||||
const uint8_t oboe_ranges[] = {63, 68, 127, }; | const uint8_t oboe_ranges[] = {63, 68, 127, }; | ||||
const instrument_data oboe = {3, oboe_ranges, oboe_samples }; | |||||
const AudioSynthWavetable::instrument_data oboe = {3, oboe_ranges, oboe_samples }; | |||||
extern const uint32_t sample_0_oboe_oboecx3[512]; | extern const uint32_t sample_0_oboe_oboecx3[512]; |
#include "overdrivegt_samples.h" | #include "overdrivegt_samples.h" | ||||
const sample_data overdrivegt_samples[3] = { | |||||
const AudioSynthWavetable::sample_data overdrivegt_samples[3] = { | |||||
{ | { | ||||
(int16_t*)sample_0_overdrivegt_distgtra2, // sample | (int16_t*)sample_0_overdrivegt_distgtra2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data overdrivegt_samples[3]; | |||||
extern const AudioSynthWavetable::sample_data overdrivegt_samples[3]; | |||||
const uint8_t overdrivegt_ranges[] = {62, 66, 127, }; | const uint8_t overdrivegt_ranges[] = {62, 66, 127, }; | ||||
const instrument_data overdrivegt = {3, overdrivegt_ranges, overdrivegt_samples }; | |||||
const AudioSynthWavetable::instrument_data overdrivegt = {3, overdrivegt_ranges, overdrivegt_samples }; | |||||
extern const uint32_t sample_0_overdrivegt_distgtra2[1024]; | extern const uint32_t sample_0_overdrivegt_distgtra2[1024]; |
#include "piano_samples.h" | #include "piano_samples.h" | ||||
const sample_data piano_samples[4] = { | |||||
const AudioSynthWavetable::sample_data piano_samples[4] = { | |||||
{ | { | ||||
(int16_t*)sample_0_piano_kpianob1, // sample | (int16_t*)sample_0_piano_kpianob1, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data piano_samples[4]; | |||||
extern const AudioSynthWavetable::sample_data piano_samples[4]; | |||||
const uint8_t piano_ranges[] = {54, 74, 88, 127, }; | const uint8_t piano_ranges[] = {54, 74, 88, 127, }; | ||||
const instrument_data piano = {4, piano_ranges, piano_samples }; | |||||
const AudioSynthWavetable::instrument_data piano = {4, piano_ranges, piano_samples }; | |||||
extern const uint32_t sample_0_piano_kpianob1[8704]; | extern const uint32_t sample_0_piano_kpianob1[8704]; |
#include "recorder_samples.h" | #include "recorder_samples.h" | ||||
const sample_data recorder_samples[1] = { | |||||
const AudioSynthWavetable::sample_data recorder_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_recorder_recorderax2, // sample | (int16_t*)sample_0_recorder_recorderax2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data recorder_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data recorder_samples[1]; | |||||
const uint8_t recorder_ranges[] = {127, }; | const uint8_t recorder_ranges[] = {127, }; | ||||
const instrument_data recorder = {1, recorder_ranges, recorder_samples }; | |||||
const AudioSynthWavetable::instrument_data recorder = {1, recorder_ranges, recorder_samples }; | |||||
extern const uint32_t sample_0_recorder_recorderax2[768]; | extern const uint32_t sample_0_recorder_recorderax2[768]; |
#include "standard_DRUMS_samples.h" | #include "standard_DRUMS_samples.h" | ||||
const sample_data standard_DRUMS_samples[48] = { | |||||
const AudioSynthWavetable::sample_data standard_DRUMS_samples[48] = { | |||||
{ | { | ||||
(int16_t*)sample_0_standard_DRUMS_filtersnap, // sample | (int16_t*)sample_0_standard_DRUMS_filtersnap, // sample | ||||
false, // LOOP | false, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data standard_DRUMS_samples[48]; | |||||
extern const AudioSynthWavetable::sample_data standard_DRUMS_samples[48]; | |||||
const uint8_t standard_DRUMS_ranges[] = {27, 28, 28, 29, 30, 31, 33, 34, 35, 36, 37, 39, 42, 45, 47, 48, 50, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 65, 67, 68, 69, 71, 72, 73, 74, 76, 78, 80, 81, 82, 83, 83, 84, 85, 85, 86, 87, 127, }; | const uint8_t standard_DRUMS_ranges[] = {27, 28, 28, 29, 30, 31, 33, 34, 35, 36, 37, 39, 42, 45, 47, 48, 50, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 65, 67, 68, 69, 71, 72, 73, 74, 76, 78, 80, 81, 82, 83, 83, 84, 85, 85, 86, 87, 127, }; | ||||
const instrument_data standard_DRUMS = {48, standard_DRUMS_ranges, standard_DRUMS_samples }; | |||||
const AudioSynthWavetable::instrument_data standard_DRUMS = {48, standard_DRUMS_ranges, standard_DRUMS_samples }; | |||||
extern const uint32_t sample_0_standard_DRUMS_filtersnap[256]; | extern const uint32_t sample_0_standard_DRUMS_filtersnap[256]; |
#include "steelstrgtr_samples.h" | #include "steelstrgtr_samples.h" | ||||
const sample_data steelstrgtr_samples[2] = { | |||||
const AudioSynthWavetable::sample_data steelstrgtr_samples[2] = { | |||||
{ | { | ||||
(int16_t*)sample_0_steelstrgtr_acgtrg2, // sample | (int16_t*)sample_0_steelstrgtr_acgtrg2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data steelstrgtr_samples[2]; | |||||
extern const AudioSynthWavetable::sample_data steelstrgtr_samples[2]; | |||||
const uint8_t steelstrgtr_ranges[] = {72, 127, }; | const uint8_t steelstrgtr_ranges[] = {72, 127, }; | ||||
const instrument_data steelstrgtr = {2, steelstrgtr_ranges, steelstrgtr_samples }; | |||||
const AudioSynthWavetable::instrument_data steelstrgtr = {2, steelstrgtr_ranges, steelstrgtr_samples }; | |||||
extern const uint32_t sample_0_steelstrgtr_acgtrg2[2560]; | extern const uint32_t sample_0_steelstrgtr_acgtrg2[2560]; |
#include "strings_samples.h" | #include "strings_samples.h" | ||||
const sample_data strings_samples[3] = { | |||||
const AudioSynthWavetable::sample_data strings_samples[3] = { | |||||
{ | { | ||||
(int16_t*)sample_0_strings_stringsg2, // sample | (int16_t*)sample_0_strings_stringsg2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data strings_samples[3]; | |||||
extern const AudioSynthWavetable::sample_data strings_samples[3]; | |||||
const uint8_t strings_ranges[] = {59, 72, 127, }; | const uint8_t strings_ranges[] = {59, 72, 127, }; | ||||
const instrument_data strings = {3, strings_ranges, strings_samples }; | |||||
const AudioSynthWavetable::instrument_data strings = {3, strings_ranges, strings_samples }; | |||||
extern const uint32_t sample_0_strings_stringsg2[4736]; | extern const uint32_t sample_0_strings_stringsg2[4736]; |
#include "timpani_samples.h" | #include "timpani_samples.h" | ||||
const sample_data timpani_samples[3] = { | |||||
const AudioSynthWavetable::sample_data timpani_samples[3] = { | |||||
{ | { | ||||
(int16_t*)sample_0_timpani_timpani, // sample | (int16_t*)sample_0_timpani_timpani, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data timpani_samples[3]; | |||||
extern const AudioSynthWavetable::sample_data timpani_samples[3]; | |||||
const uint8_t timpani_ranges[] = {49, 63, 127, }; | const uint8_t timpani_ranges[] = {49, 63, 127, }; | ||||
const instrument_data timpani = {3, timpani_ranges, timpani_samples }; | |||||
const AudioSynthWavetable::instrument_data timpani = {3, timpani_ranges, timpani_samples }; | |||||
extern const uint32_t sample_0_timpani_timpani[3968]; | extern const uint32_t sample_0_timpani_timpani[3968]; |
#include "trombone_samples.h" | #include "trombone_samples.h" | ||||
const sample_data trombone_samples[4] = { | |||||
const AudioSynthWavetable::sample_data trombone_samples[4] = { | |||||
{ | { | ||||
(int16_t*)sample_0_trombone_tromb2, // sample | (int16_t*)sample_0_trombone_tromb2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data trombone_samples[4]; | |||||
extern const AudioSynthWavetable::sample_data trombone_samples[4]; | |||||
const uint8_t trombone_ranges[] = {52, 59, 64, 127, }; | const uint8_t trombone_ranges[] = {52, 59, 64, 127, }; | ||||
const instrument_data trombone = {4, trombone_ranges, trombone_samples }; | |||||
const AudioSynthWavetable::instrument_data trombone = {4, trombone_ranges, trombone_samples }; | |||||
extern const uint32_t sample_0_trombone_tromb2[768]; | extern const uint32_t sample_0_trombone_tromb2[768]; |
#include "trumpet_samples.h" | #include "trumpet_samples.h" | ||||
const sample_data trumpet_samples[5] = { | |||||
const AudioSynthWavetable::sample_data trumpet_samples[5] = { | |||||
{ | { | ||||
(int16_t*)sample_0_trumpet_htrumpetd2, // sample | (int16_t*)sample_0_trumpet_htrumpetd2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data trumpet_samples[5]; | |||||
extern const AudioSynthWavetable::sample_data trumpet_samples[5]; | |||||
const uint8_t trumpet_ranges[] = {64, 69, 74, 79, 127, }; | const uint8_t trumpet_ranges[] = {64, 69, 74, 79, 127, }; | ||||
const instrument_data trumpet = {5, trumpet_ranges, trumpet_samples }; | |||||
const AudioSynthWavetable::instrument_data trumpet = {5, trumpet_ranges, trumpet_samples }; | |||||
extern const uint32_t sample_0_trumpet_htrumpetd2[896]; | extern const uint32_t sample_0_trumpet_htrumpetd2[896]; |
#include "tuba_samples.h" | #include "tuba_samples.h" | ||||
const sample_data tuba_samples[2] = { | |||||
const AudioSynthWavetable::sample_data tuba_samples[2] = { | |||||
{ | { | ||||
(int16_t*)sample_0_tuba_tubaax1, // sample | (int16_t*)sample_0_tuba_tubaax1, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data tuba_samples[2]; | |||||
extern const AudioSynthWavetable::sample_data tuba_samples[2]; | |||||
const uint8_t tuba_ranges[] = {86, 127, }; | const uint8_t tuba_ranges[] = {86, 127, }; | ||||
const instrument_data tuba = {2, tuba_ranges, tuba_samples }; | |||||
const AudioSynthWavetable::instrument_data tuba = {2, tuba_ranges, tuba_samples }; | |||||
extern const uint32_t sample_0_tuba_tubaax1[1024]; | extern const uint32_t sample_0_tuba_tubaax1[1024]; |
#include "vibraphone_samples.h" | #include "vibraphone_samples.h" | ||||
const sample_data vibraphone_samples[2] = { | |||||
const AudioSynthWavetable::sample_data vibraphone_samples[2] = { | |||||
{ | { | ||||
(int16_t*)sample_0_vibraphone_vibese2, // sample | (int16_t*)sample_0_vibraphone_vibese2, // sample | ||||
true, // LOOP | true, // LOOP |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data vibraphone_samples[2]; | |||||
extern const AudioSynthWavetable::sample_data vibraphone_samples[2]; | |||||
const uint8_t vibraphone_ranges[] = {94, 127, }; | const uint8_t vibraphone_ranges[] = {94, 127, }; | ||||
const instrument_data vibraphone = {2, vibraphone_ranges, vibraphone_samples }; | |||||
const AudioSynthWavetable::instrument_data vibraphone = {2, vibraphone_ranges, vibraphone_samples }; | |||||
extern const uint32_t sample_0_vibraphone_vibese2[512]; | extern const uint32_t sample_0_vibraphone_vibese2[512]; |
#include "BasicFlute1_samples.h" | #include "BasicFlute1_samples.h" | ||||
const sample_data BasicFlute1_samples[1] = { | |||||
const AudioSynthWavetable::sample_data BasicFlute1_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_BasicFlute1_BreathyFluteC2, //16-bit PCM encoded audio sample | (int16_t*)sample_0_BasicFlute1_BreathyFluteC2, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data BasicFlute1_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data BasicFlute1_samples[1]; | |||||
const uint8_t BasicFlute1_ranges[] = {127,}; | const uint8_t BasicFlute1_ranges[] = {127,}; | ||||
const instrument_data BasicFlute1 = {1, BasicFlute1_ranges, BasicFlute1_samples }; | |||||
const AudioSynthWavetable::instrument_data BasicFlute1 = {1, BasicFlute1_ranges, BasicFlute1_samples }; | |||||
extern const uint32_t sample_0_BasicFlute1_BreathyFluteC2[28544]; | extern const uint32_t sample_0_BasicFlute1_BreathyFluteC2[28544]; |
#include "BasicFlute1_samples.h" | #include "BasicFlute1_samples.h" | ||||
const sample_data BasicFlute1_samples[2] = { | |||||
const AudioSynthWavetable::sample_data BasicFlute1_samples[2] = { | |||||
{ | { | ||||
(int16_t*)sample_0_BasicFlute1_BreathyFluteC2, //16-bit PCM encoded audio sample | (int16_t*)sample_0_BasicFlute1_BreathyFluteC2, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data BasicFlute1_samples[2]; | |||||
extern const AudioSynthWavetable::sample_data BasicFlute1_samples[2]; | |||||
const uint8_t BasicFlute1_ranges[] = {54, 127, }; | const uint8_t BasicFlute1_ranges[] = {54, 127, }; | ||||
const instrument_data BasicFlute1 = {2, BasicFlute1_ranges, BasicFlute1_samples }; | |||||
const AudioSynthWavetable::instrument_data BasicFlute1 = {2, BasicFlute1_ranges, BasicFlute1_samples }; | |||||
extern const uint32_t sample_0_BasicFlute1_BreathyFluteC2[28544]; | extern const uint32_t sample_0_BasicFlute1_BreathyFluteC2[28544]; |
#include "FrenchHorns_samples.h" | #include "FrenchHorns_samples.h" | ||||
const sample_data FrenchHorns_samples[1] = { | |||||
const AudioSynthWavetable::sample_data FrenchHorns_samples[1] = { | |||||
{ | { | ||||
(int16_t*)sample_0_FrenchHorns_FrenchHornsA4L, //16-bit PCM encoded audio sample | (int16_t*)sample_0_FrenchHorns_FrenchHornsA4L, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data FrenchHorns_samples[1]; | |||||
extern const AudioSynthWavetable::sample_data FrenchHorns_samples[1]; | |||||
const uint8_t FrenchHorns_ranges[] = {127, }; | const uint8_t FrenchHorns_ranges[] = {127, }; | ||||
const instrument_data FrenchHorns = {1, FrenchHorns_ranges, FrenchHorns_samples }; | |||||
const AudioSynthWavetable::instrument_data FrenchHorns = {1, FrenchHorns_ranges, FrenchHorns_samples }; | |||||
extern const uint32_t sample_0_FrenchHorns_FrenchHornsA4L[55040]; | extern const uint32_t sample_0_FrenchHorns_FrenchHornsA4L[55040]; |
#include "Pizzicato_samples.h" | #include "Pizzicato_samples.h" | ||||
const sample_data Pizzicato_samples[4] = { | |||||
const AudioSynthWavetable::sample_data Pizzicato_samples[4] = { | |||||
{ | { | ||||
(int16_t*)sample_0_Pizzicato_PizzViolinE3, //16-bit PCM encoded audio sample | (int16_t*)sample_0_Pizzicato_PizzViolinE3, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data Pizzicato_samples[4]; | |||||
extern const AudioSynthWavetable::sample_data Pizzicato_samples[4]; | |||||
const uint8_t Pizzicato_ranges[] = {68, 83, 93, 127, }; | const uint8_t Pizzicato_ranges[] = {68, 83, 93, 127, }; | ||||
const instrument_data Pizzicato = {4, Pizzicato_ranges, Pizzicato_samples }; | |||||
const AudioSynthWavetable::instrument_data Pizzicato = {4, Pizzicato_ranges, Pizzicato_samples }; | |||||
extern const uint32_t sample_0_Pizzicato_PizzViolinE3[2944]; | extern const uint32_t sample_0_Pizzicato_PizzViolinE3[2944]; |
#include "Viola_samples.h" | #include "Viola_samples.h" | ||||
const sample_data Viola_samples[8] = { | |||||
const AudioSynthWavetable::sample_data Viola_samples[8] = { | |||||
{ | { | ||||
(int16_t*)sample_0_Viola_ViolinBb2, //16-bit PCM encoded audio sample | (int16_t*)sample_0_Viola_ViolinBb2, //16-bit PCM encoded audio sample | ||||
true, //Whether or not to loop this sample | true, //Whether or not to loop this sample |
#pragma once | #pragma once | ||||
#include <Audio.h> | #include <Audio.h> | ||||
extern const sample_data Viola_samples[8]; | |||||
extern const AudioSynthWavetable::sample_data Viola_samples[8]; | |||||
const uint8_t Viola_ranges[] = {58, 65, 68, 73, 79, 92, 96, 127, }; | const uint8_t Viola_ranges[] = {58, 65, 68, 73, 79, 92, 96, 127, }; | ||||
const instrument_data Viola = {8, Viola_ranges, Viola_samples }; | |||||
const AudioSynthWavetable::instrument_data Viola = {8, Viola_ranges, Viola_samples }; | |||||
extern const uint32_t sample_0_Viola_ViolinBb2[768]; | extern const uint32_t sample_0_Viola_ViolinBb2[768]; |
* Copyright (c) 2017, TeensyAudio PSU Team | * Copyright (c) 2017, TeensyAudio PSU Team | ||||
* | * | ||||
* Development of this audio library was sponsored by PJRC.COM, LLC. | * Development of this audio library was sponsored by PJRC.COM, LLC. | ||||
* Please support PJRC's efforts to develop open source | |||||
* Please support PJRC's efforts to develop open source | |||||
* software by purchasing Teensy or other PJRC products. | * software by purchasing Teensy or other PJRC products. | ||||
* | * | ||||
* Permission is hereby granted, free of charge, to any person obtaining a copy | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
#include <math.h> | #include <math.h> | ||||
#include <stdint.h> | #include <stdint.h> | ||||
// TODO: move all this stuff into the AudioSynthWavetable class (used in sample data) | |||||
#define UNITY_GAIN INT32_MAX // Max amplitude / no attenuation | #define UNITY_GAIN INT32_MAX // Max amplitude / no attenuation | ||||
#define DEFAULT_AMPLITUDE 90 | |||||
#define SAMPLES_PER_MSEC (AUDIO_SAMPLE_RATE_EXACT/1000.0) | #define SAMPLES_PER_MSEC (AUDIO_SAMPLE_RATE_EXACT/1000.0) | ||||
#define TRIANGLE_INITIAL_PHASE (-0x40000000) | |||||
#define LFO_SMOOTHNESS 3 | #define LFO_SMOOTHNESS 3 | ||||
#define LFO_PERIOD (AUDIO_BLOCK_SAMPLES/(1 << (LFO_SMOOTHNESS-1))) | #define LFO_PERIOD (AUDIO_BLOCK_SAMPLES/(1 << (LFO_SMOOTHNESS-1))) | ||||
#define ENVELOPE_PERIOD 8 | #define ENVELOPE_PERIOD 8 | ||||
enum envelopeStateEnum { STATE_IDLE, STATE_DELAY, STATE_ATTACK, STATE_HOLD, STATE_DECAY, STATE_SUSTAIN, STATE_RELEASE }; | |||||
#define CENTS_SHIFT(C) (pow(2.0, C/1200.0)) | #define CENTS_SHIFT(C) (pow(2.0, C/1200.0)) | ||||
#define NOTE(N) (440.0 * pow(2.0, (N - 69) / 12.0)) | #define NOTE(N) (440.0 * pow(2.0, (N - 69) / 12.0)) | ||||
#define DECIBEL_SHIFT(dB) (pow(10.0, dB/20.0)) | #define DECIBEL_SHIFT(dB) (pow(10.0, dB/20.0)) | ||||
// TODO: move all this stuff into the AudioSynthWavetable class, not global scope | |||||
struct sample_data { | |||||
// SAMPLE VALUES | |||||
const int16_t* sample; | |||||
const bool LOOP; | |||||
const int INDEX_BITS; | |||||
const float PER_HERTZ_PHASE_INCREMENT; | |||||
const uint32_t MAX_PHASE; | |||||
const uint32_t LOOP_PHASE_END; | |||||
const uint32_t LOOP_PHASE_LENGTH; | |||||
const uint16_t INITIAL_ATTENUATION_SCALAR; | |||||
// VOLUME ENVELOPE VALUES | |||||
const uint32_t DELAY_COUNT; | |||||
const uint32_t ATTACK_COUNT; | |||||
const uint32_t HOLD_COUNT; | |||||
const uint32_t DECAY_COUNT; | |||||
const uint32_t RELEASE_COUNT; | |||||
const int32_t SUSTAIN_MULT; | |||||
// VIRBRATO VALUES | |||||
const uint32_t VIBRATO_DELAY; | |||||
const uint32_t VIBRATO_INCREMENT; | |||||
const float VIBRATO_PITCH_COEFFICIENT_INITIAL; | |||||
const float VIBRATO_PITCH_COEFFICIENT_SECOND; | |||||
// MODULATION VALUES | |||||
const uint32_t MODULATION_DELAY; | |||||
const uint32_t MODULATION_INCREMENT; | |||||
const float MODULATION_PITCH_COEFFICIENT_INITIAL; | |||||
const float MODULATION_PITCH_COEFFICIENT_SECOND; | |||||
const int32_t MODULATION_AMPLITUDE_INITIAL_GAIN; | |||||
const int32_t MODULATION_AMPLITUDE_SECOND_GAIN; | |||||
}; | |||||
// TODO: move all this stuff into the AudioSynthWavetable class (used in this file) | |||||
#define DEFAULT_AMPLITUDE 90 | |||||
#define TRIANGLE_INITIAL_PHASE (-0x40000000) | |||||
enum envelopeStateEnum { STATE_IDLE, STATE_DELAY, STATE_ATTACK, STATE_HOLD, STATE_DECAY, STATE_SUSTAIN, STATE_RELEASE }; | |||||
struct instrument_data { | |||||
const uint8_t sample_count; | |||||
const uint8_t* sample_note_ranges; | |||||
const sample_data* samples; | |||||
}; | |||||
class AudioSynthWavetable : public AudioStream | class AudioSynthWavetable : public AudioStream | ||||
{ | { | ||||
public: | |||||
struct sample_data { | |||||
// SAMPLE VALUES | |||||
const int16_t* sample; | |||||
const bool LOOP; | |||||
const int INDEX_BITS; | |||||
const float PER_HERTZ_PHASE_INCREMENT; | |||||
const uint32_t MAX_PHASE; | |||||
const uint32_t LOOP_PHASE_END; | |||||
const uint32_t LOOP_PHASE_LENGTH; | |||||
const uint16_t INITIAL_ATTENUATION_SCALAR; | |||||
// VOLUME ENVELOPE VALUES | |||||
const uint32_t DELAY_COUNT; | |||||
const uint32_t ATTACK_COUNT; | |||||
const uint32_t HOLD_COUNT; | |||||
const uint32_t DECAY_COUNT; | |||||
const uint32_t RELEASE_COUNT; | |||||
const int32_t SUSTAIN_MULT; | |||||
// VIRBRATO VALUES | |||||
const uint32_t VIBRATO_DELAY; | |||||
const uint32_t VIBRATO_INCREMENT; | |||||
const float VIBRATO_PITCH_COEFFICIENT_INITIAL; | |||||
const float VIBRATO_PITCH_COEFFICIENT_SECOND; | |||||
// MODULATION VALUES | |||||
const uint32_t MODULATION_DELAY; | |||||
const uint32_t MODULATION_INCREMENT; | |||||
const float MODULATION_PITCH_COEFFICIENT_INITIAL; | |||||
const float MODULATION_PITCH_COEFFICIENT_SECOND; | |||||
const int32_t MODULATION_AMPLITUDE_INITIAL_GAIN; | |||||
const int32_t MODULATION_AMPLITUDE_SECOND_GAIN; | |||||
}; | |||||
struct instrument_data { | |||||
const uint8_t sample_count; | |||||
const uint8_t* sample_note_ranges; | |||||
const sample_data* samples; | |||||
}; | |||||
public: | public: | ||||
/** | /** | ||||
* Class constructor. | * Class constructor. | ||||
* | * | ||||
* A wavetable uses a set of samples to generate sound. | * A wavetable uses a set of samples to generate sound. | ||||
* This function is used to set the instrument samples. | * This function is used to set the instrument samples. | ||||
* @param instrument a struct of type instrument_data, commonly prodced from a | |||||
* @param instrument a struct of type instrument_data, commonly prodced from a | |||||
* decoded SoundFont file using the SoundFont Decoder Script which accompanies this library. | * decoded SoundFont file using the SoundFont Decoder Script which accompanies this library. | ||||
*/ | */ | ||||
void setInstrument(const instrument_data& instrument) { | void setInstrument(const instrument_data& instrument) { | ||||
// Defined in AudioSynthWavetable.cpp | // Defined in AudioSynthWavetable.cpp | ||||
void stop(void); | void stop(void); | ||||
// TODO: amplitude should be 0 to 1.0 scale | |||||
void playFrequency(float freq, int amp = DEFAULT_AMPLITUDE); | void playFrequency(float freq, int amp = DEFAULT_AMPLITUDE); | ||||
void playNote(int note, int amp = DEFAULT_AMPLITUDE); | void playNote(int note, int amp = DEFAULT_AMPLITUDE); | ||||
bool isPlaying(void) { return env_state != STATE_IDLE; } | bool isPlaying(void) { return env_state != STATE_IDLE; } | ||||
void setFrequency(float freq); | void setFrequency(float freq); | ||||
virtual void update(void); | virtual void update(void); | ||||
envelopeStateEnum getEnvState(void) { return env_state; } | envelopeStateEnum getEnvState(void) { return env_state; } | ||||
private: | private: |