diff --git a/.gitignore b/.gitignore index 1530978..e8cce76 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -*.o \ No newline at end of file +*.o +.DS_Store + diff --git a/Makefile b/Makefile index b961d79..746ba02 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ -VERSION = 1.1 +VERSION = 1.PRO3 FLAGS = -Wall -Wextra -Wno-unused-parameter -g -Wno-unused -O3 -march=nocona -ffast-math \ -DVERSION=$(VERSION) -DPFFFT_SIMD_DISABLE \ - -I. -Iext -Iext/imgui -Idep/include -Idep/include/SDL2 + -I. -Iext -Iext/imgui -Idep/include -Idep/SDL2-2.0.7/include/ CFLAGS = CXXFLAGS = -std=c++11 LDFLAGS = @@ -31,9 +31,9 @@ ifeq ($(ARCH),lin) else ifeq ($(ARCH),mac) # Mac FLAGS += -DARCH_MAC \ - -mmacosx-version-min=10.7 + -mmacosx-version-min=10.11 CXXFLAGS += -stdlib=libc++ - LDFLAGS += -mmacosx-version-min=10.7 \ + LDFLAGS += -mmacosx-version-min=10.11 \ -stdlib=libc++ -lpthread \ -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo \ -Ldep/lib -lSDL2 -lsamplerate -lsndfile -ljansson -lcurl diff --git a/catalog/00Digital/00Sine.wav b/catalog/00Digital/00Sine.wav index 1558af0..d4d5fe5 100644 Binary files a/catalog/00Digital/00Sine.wav and b/catalog/00Digital/00Sine.wav differ diff --git a/catalog/00Digital/01Sawtooth.wav b/catalog/00Digital/01Sawtooth.wav index c60adac..cc90f52 100644 Binary files a/catalog/00Digital/01Sawtooth.wav and b/catalog/00Digital/01Sawtooth.wav differ diff --git a/catalog/00Digital/02Ramp.wav b/catalog/00Digital/02Ramp.wav index 4d97e4a..80cca91 100644 Binary files a/catalog/00Digital/02Ramp.wav and b/catalog/00Digital/02Ramp.wav differ diff --git a/catalog/00Digital/03Triangle.wav b/catalog/00Digital/03Triangle.wav index 917432b..dc8c1bf 100644 Binary files a/catalog/00Digital/03Triangle.wav and b/catalog/00Digital/03Triangle.wav differ diff --git a/catalog/00Digital/04Square.wav b/catalog/00Digital/04Square.wav index 11c7f71..35e6d16 100644 Binary files a/catalog/00Digital/04Square.wav and b/catalog/00Digital/04Square.wav differ diff --git a/catalog/00Digital/05Rectangle.wav b/catalog/00Digital/05Rectangle.wav index 4fac594..4af7aee 100644 Binary files a/catalog/00Digital/05Rectangle.wav and b/catalog/00Digital/05Rectangle.wav differ diff --git a/catalog/00Digital/06Trigger.wav b/catalog/00Digital/06Trigger.wav index cdc5dcd..0b757b7 100644 Binary files a/catalog/00Digital/06Trigger.wav and b/catalog/00Digital/06Trigger.wav differ diff --git a/catalog/00Digital/07Rectified Sine.wav b/catalog/00Digital/07Rectified Sine.wav index 5d9d48b..bea7d34 100644 Binary files a/catalog/00Digital/07Rectified Sine.wav and b/catalog/00Digital/07Rectified Sine.wav differ diff --git a/catalog/00Digital/08Chirp 4.wav b/catalog/00Digital/08Chirp 4.wav index 61f8a1f..2b5927a 100644 Binary files a/catalog/00Digital/08Chirp 4.wav and b/catalog/00Digital/08Chirp 4.wav differ diff --git a/catalog/00Digital/09Chirp 16.wav b/catalog/00Digital/09Chirp 16.wav index 2886411..ab2e8dc 100644 Binary files a/catalog/00Digital/09Chirp 16.wav and b/catalog/00Digital/09Chirp 16.wav differ diff --git a/catalog/00Digital/10Chirp 64.wav b/catalog/00Digital/10Chirp 64.wav index 4d05e59..5a72895 100644 Binary files a/catalog/00Digital/10Chirp 64.wav and b/catalog/00Digital/10Chirp 64.wav differ diff --git a/catalog/00Digital/11Mortlet 4.wav b/catalog/00Digital/11Mortlet 4.wav index 0dc8bcc..30db4f8 100644 Binary files a/catalog/00Digital/11Mortlet 4.wav and b/catalog/00Digital/11Mortlet 4.wav differ diff --git a/catalog/00Digital/12Mortlet 16.wav b/catalog/00Digital/12Mortlet 16.wav index a4eaf3f..a974ece 100644 Binary files a/catalog/00Digital/12Mortlet 16.wav and b/catalog/00Digital/12Mortlet 16.wav differ diff --git a/catalog/00Digital/13Mortlet 64.wav b/catalog/00Digital/13Mortlet 64.wav index a704396..f423875 100644 Binary files a/catalog/00Digital/13Mortlet 64.wav and b/catalog/00Digital/13Mortlet 64.wav differ diff --git a/catalog/01Analog/00MOTM-300 Sine Low.wav b/catalog/01Analog/00MOTM-300 Sine Low.wav index 19397a9..90ac58f 100644 Binary files a/catalog/01Analog/00MOTM-300 Sine Low.wav and b/catalog/01Analog/00MOTM-300 Sine Low.wav differ diff --git a/catalog/01Analog/01MOTM-300 Sine High.wav b/catalog/01Analog/01MOTM-300 Sine High.wav index d0a4e09..9b5e80f 100644 Binary files a/catalog/01Analog/01MOTM-300 Sine High.wav and b/catalog/01Analog/01MOTM-300 Sine High.wav differ diff --git a/catalog/01Analog/02MOTM-300 Tri Low.wav b/catalog/01Analog/02MOTM-300 Tri Low.wav index fdae50b..84ce37a 100644 Binary files a/catalog/01Analog/02MOTM-300 Tri Low.wav and b/catalog/01Analog/02MOTM-300 Tri Low.wav differ diff --git a/catalog/01Analog/03MOTM-300 Tri High.wav b/catalog/01Analog/03MOTM-300 Tri High.wav index 14d0d70..fa43432 100644 Binary files a/catalog/01Analog/03MOTM-300 Tri High.wav and b/catalog/01Analog/03MOTM-300 Tri High.wav differ diff --git a/catalog/01Analog/04MOTM-300 Saw Low.wav b/catalog/01Analog/04MOTM-300 Saw Low.wav index da1893b..071eff0 100644 Binary files a/catalog/01Analog/04MOTM-300 Saw Low.wav and b/catalog/01Analog/04MOTM-300 Saw Low.wav differ diff --git a/catalog/01Analog/05MOTM-300 Saw High.wav b/catalog/01Analog/05MOTM-300 Saw High.wav index 6558ea4..a1a5974 100644 Binary files a/catalog/01Analog/05MOTM-300 Saw High.wav and b/catalog/01Analog/05MOTM-300 Saw High.wav differ diff --git a/catalog/01Analog/06MOTM-300 Square Low.wav b/catalog/01Analog/06MOTM-300 Square Low.wav index c94aec0..aa3740b 100644 Binary files a/catalog/01Analog/06MOTM-300 Square Low.wav and b/catalog/01Analog/06MOTM-300 Square Low.wav differ diff --git a/catalog/01Analog/07MOTM-300 Square High.wav b/catalog/01Analog/07MOTM-300 Square High.wav index 0dd83c6..7d2bc5e 100644 Binary files a/catalog/01Analog/07MOTM-300 Square High.wav and b/catalog/01Analog/07MOTM-300 Square High.wav differ diff --git a/catalog/02FM/00Sine FM 1.wav b/catalog/02FM/00Sine FM 1.wav index 6dd858c..347f260 100644 Binary files a/catalog/02FM/00Sine FM 1.wav and b/catalog/02FM/00Sine FM 1.wav differ diff --git a/catalog/02FM/01Sine FM 2.wav b/catalog/02FM/01Sine FM 2.wav index 73cb915..1db8eac 100644 Binary files a/catalog/02FM/01Sine FM 2.wav and b/catalog/02FM/01Sine FM 2.wav differ diff --git a/catalog/02FM/02Sine FM 3.wav b/catalog/02FM/02Sine FM 3.wav index 167550e..979d515 100644 Binary files a/catalog/02FM/02Sine FM 3.wav and b/catalog/02FM/02Sine FM 3.wav differ diff --git a/catalog/02FM/03Sine FM 5.wav b/catalog/02FM/03Sine FM 5.wav index adbe987..95742bd 100644 Binary files a/catalog/02FM/03Sine FM 5.wav and b/catalog/02FM/03Sine FM 5.wav differ diff --git a/catalog/02FM/04Sine FM 7.wav b/catalog/02FM/04Sine FM 7.wav index e27d987..1235ccd 100644 Binary files a/catalog/02FM/04Sine FM 7.wav and b/catalog/02FM/04Sine FM 7.wav differ diff --git a/catalog/02FM/05Sine FM 11.wav b/catalog/02FM/05Sine FM 11.wav index 5986ea5..4b259a4 100644 Binary files a/catalog/02FM/05Sine FM 11.wav and b/catalog/02FM/05Sine FM 11.wav differ diff --git a/catalog/02FM/06Sine TZFM 1.wav b/catalog/02FM/06Sine TZFM 1.wav index 7119c3c..9638157 100644 Binary files a/catalog/02FM/06Sine TZFM 1.wav and b/catalog/02FM/06Sine TZFM 1.wav differ diff --git a/catalog/02FM/07Sine TZFM 2.wav b/catalog/02FM/07Sine TZFM 2.wav index 3bab1c3..ef99c89 100644 Binary files a/catalog/02FM/07Sine TZFM 2.wav and b/catalog/02FM/07Sine TZFM 2.wav differ diff --git a/catalog/02FM/08Sine TZFM 3.wav b/catalog/02FM/08Sine TZFM 3.wav index 206864e..c806801 100644 Binary files a/catalog/02FM/08Sine TZFM 3.wav and b/catalog/02FM/08Sine TZFM 3.wav differ diff --git a/catalog/02FM/09Sine TZFM 5.wav b/catalog/02FM/09Sine TZFM 5.wav index c6823c6..6595ced 100644 Binary files a/catalog/02FM/09Sine TZFM 5.wav and b/catalog/02FM/09Sine TZFM 5.wav differ diff --git a/catalog/02FM/10Sine TZFM 7.wav b/catalog/02FM/10Sine TZFM 7.wav index 0ff5b6c..b2ddaa0 100644 Binary files a/catalog/02FM/10Sine TZFM 7.wav and b/catalog/02FM/10Sine TZFM 7.wav differ diff --git a/catalog/02FM/11Sine TZFM 11.wav b/catalog/02FM/11Sine TZFM 11.wav index e49333a..c11835f 100644 Binary files a/catalog/02FM/11Sine TZFM 11.wav and b/catalog/02FM/11Sine TZFM 11.wav differ diff --git a/catalog/02FM/12Sawtooth FM 1.wav b/catalog/02FM/12Sawtooth FM 1.wav index be20ba8..efa60f0 100644 Binary files a/catalog/02FM/12Sawtooth FM 1.wav and b/catalog/02FM/12Sawtooth FM 1.wav differ diff --git a/catalog/02FM/13Sawtooth FM 2.wav b/catalog/02FM/13Sawtooth FM 2.wav index 58c6df0..f1d957a 100644 Binary files a/catalog/02FM/13Sawtooth FM 2.wav and b/catalog/02FM/13Sawtooth FM 2.wav differ diff --git a/catalog/02FM/14Sawtooth FM 3.wav b/catalog/02FM/14Sawtooth FM 3.wav index f0ccad7..33a1d5e 100644 Binary files a/catalog/02FM/14Sawtooth FM 3.wav and b/catalog/02FM/14Sawtooth FM 3.wav differ diff --git a/catalog/02FM/15Sawtooth FM 5.wav b/catalog/02FM/15Sawtooth FM 5.wav index 6cb9c68..1cf3983 100644 Binary files a/catalog/02FM/15Sawtooth FM 5.wav and b/catalog/02FM/15Sawtooth FM 5.wav differ diff --git a/catalog/02FM/16Sawtooth FM 7.wav b/catalog/02FM/16Sawtooth FM 7.wav index 127ca42..2ece593 100644 Binary files a/catalog/02FM/16Sawtooth FM 7.wav and b/catalog/02FM/16Sawtooth FM 7.wav differ diff --git a/catalog/02FM/17Sawtooth FM 11.wav b/catalog/02FM/17Sawtooth FM 11.wav index bd3598a..5456102 100644 Binary files a/catalog/02FM/17Sawtooth FM 11.wav and b/catalog/02FM/17Sawtooth FM 11.wav differ diff --git a/catalog/03Glitch/00Big-Endian Sine.wav b/catalog/03Glitch/00Big-Endian Sine.wav index 98b01b0..e5a8ea7 100644 Binary files a/catalog/03Glitch/00Big-Endian Sine.wav and b/catalog/03Glitch/00Big-Endian Sine.wav differ diff --git a/catalog/03Glitch/01Unsigned Sine.wav b/catalog/03Glitch/01Unsigned Sine.wav index 5a7f02d..d0da19b 100644 Binary files a/catalog/03Glitch/01Unsigned Sine.wav and b/catalog/03Glitch/01Unsigned Sine.wav differ diff --git a/catalog/03Glitch/02Incomplete Sine.wav b/catalog/03Glitch/02Incomplete Sine.wav index d8f9494..17ff29d 100644 Binary files a/catalog/03Glitch/02Incomplete Sine.wav and b/catalog/03Glitch/02Incomplete Sine.wav differ diff --git a/catalog/04Noise/00White.wav b/catalog/04Noise/00White.wav new file mode 100644 index 0000000..d782fd5 Binary files /dev/null and b/catalog/04Noise/00White.wav differ diff --git a/catalog/04Noise/01Pink.wav b/catalog/04Noise/01Pink.wav new file mode 100644 index 0000000..0a75184 Binary files /dev/null and b/catalog/04Noise/01Pink.wav differ diff --git a/catalog/04Noise/02Brown.wav b/catalog/04Noise/02Brown.wav new file mode 100644 index 0000000..44344d6 Binary files /dev/null and b/catalog/04Noise/02Brown.wav differ diff --git a/dep/Makefile b/dep/Makefile index 6fbe75a..a440e0d 100755 --- a/dep/Makefile +++ b/dep/Makefile @@ -4,7 +4,7 @@ LOCAL = $(PWD) include ../Makefile-arch.inc ifeq ($(ARCH),mac) export CFLAGS = \ - -mmacosx-version-min=10.7 + -mmacosx-version-min=10.11 export CXXFLAGS = $(CFLAGS) export LDFLAGS = $(CFLAGS) endif @@ -38,16 +38,16 @@ $(jansson): $(libsndfile): wget -nc http://www.mega-nerd.com/libsndfile/files/$@.tar.gz tar xf $@.tar.gz - cd $@ && ./configure --prefix="$(LOCAL)" + cd $@ && ./configure --prefix="$(LOCAL)" --enable-external-libs=no $(MAKE) -C $@ $(MAKE) -C $@ install $(libsamplerate): wget -nc http://www.mega-nerd.com/SRC/$@.tar.gz tar xf $@.tar.gz - cd $@ && ./configure --prefix="$(LOCAL)" - $(MAKE) -C $@ - $(MAKE) -C $@ install + cd $@ && ./configure --prefix="$(LOCAL)" --disable-fftw --disable-sndfile + $(MAKE) -C $@/src + $(MAKE) -C $@/src install $(libcurl): wget https://curl.haxx.se/download/$@.tar.gz diff --git a/doc/manual.html b/doc/manual.html index 69294d8..e5ff110 100644 --- a/doc/manual.html +++ b/doc/manual.html @@ -75,7 +75,7 @@
In WaveEdit and the Synthesis Technology E370 and E352 modules, you can load a bank of wavetables and morph/interpolate between them as they cycle at a particular frequency.
In Z mode, all 64 wavetables are positioned on a line, and the Z parameter interpolates wavetables from wave 0 to wave 63. In XY mode, the wavetables are positioned on an 8x8 grid and interpolated in 2D.
@@ -119,7 +119,7 @@To the right of the tool selection, you can load a number of preset wavetables from the catalog/
subfolders.
-You may customize these presets by adding WAV files with 256 samples to a subfolder in the catalog.
+You may customize these presets by adding WAV files with 1024 samples to a subfolder in the catalog.
You may even create new subfolders, optionally prefixing the filenames with numbers to alphabetically sort them.
Below the Harmonic display are sliders to adjust the effect amount for the active wavetable. The meanings of the effects and effect buttons are described in the Effect Editor section.
diff --git a/doc/manual.pug b/doc/manual.pug index f2238a8..2d7cdd2 100644 --- a/doc/manual.pug +++ b/doc/manual.pug @@ -68,7 +68,7 @@ html In *WaveEdit* and the Synthesis Technology E370 and E352 modules, you can load a bank of wavetables and morph/interpolate between them as they cycle at a particular frequency. - A bank contains 64 wavetables - - A wavetable contains 256 samples + - A wavetable contains 1024 samples In Z mode, all 64 wavetables are positioned on a line, and the Z parameter interpolates wavetables from wave 0 to wave 63. In XY mode, the wavetables are positioned on an 8x8 grid and interpolated in 2D. @@ -127,7 +127,7 @@ html Use the **Line** tool to draw a straight line by dragging and the **Erase** tool to set samples and harmonics to zero as you drag across them. To the right of the tool selection, you can load a number of preset wavetables from the `catalog/` subfolders. - You may customize these presets by adding WAV files with 256 samples to a subfolder in the catalog. + You may customize these presets by adding WAV files with 1024 samples to a subfolder in the catalog. You may even create new subfolders, optionally prefixing the filenames with numbers to alphabetically sort them. Below the Harmonic display are sliders to adjust the effect amount for the active wavetable. diff --git a/generate_catalog.py b/generate_catalog.py index 4cff4e4..7367c62 100644 --- a/generate_catalog.py +++ b/generate_catalog.py @@ -5,8 +5,8 @@ import scipy.io.wavfile CATALOG_DIR = "catalog" -SAMPLE_RATE = 44100 -NUM_SAMPLES = 256 +SAMPLE_RATE = 48000 +NUM_SAMPLES = 1024 t = np.linspace(0, 1, NUM_SAMPLES, False) def saveWAV16(filename, x): @@ -102,8 +102,13 @@ def Noise(): saveWAV16("04Noise/%02dBrown.wav" % i, normalize(brown)); i += 1 +#def Shepard(): +# shepard = np.zeros(NUM_SAMPLES * 64) +# for i in range(128): +# saveWAV16("05Shepard/%03dShepard.wav" % i, normalize(shepard)) -shepard = np.zeros(NUM_SAMPLES * 64) -for i in range(128): - -saveWAV16("Shepard.wav", ) \ No newline at end of file +Digital() +FM() +Glitch() +Noise() +#Shepard() diff --git a/src/WaveEdit.hpp b/src/WaveEdit.hpp index ba8a469..3b7a87c 100644 --- a/src/WaveEdit.hpp +++ b/src/WaveEdit.hpp @@ -120,7 +120,7 @@ unsigned char *base64_decode(const unsigned char *src, size_t len, size_t *out_l // wave.cpp //////////////////// -#define WAVE_LEN 256 +#define WAVE_LEN 1024 enum EffectID { PRE_GAIN, @@ -178,7 +178,7 @@ extern bool clipboardActive; // bank.cpp //////////////////// -#define BANK_LEN 64 +#define BANK_LEN 16 #define BANK_GRID_WIDTH 8 #define BANK_GRID_HEIGHT 8 diff --git a/src/audio.cpp b/src/audio.cpp index 8cfb432..76816c3 100644 --- a/src/audio.cpp +++ b/src/audio.cpp @@ -131,7 +131,7 @@ void audioOpen(int deviceId) { SDL_AudioSpec spec; memset(&spec, 0, sizeof(spec)); - spec.freq = 44100; + spec.freq = 48000; spec.format = AUDIO_F32; spec.channels = 1; spec.samples = 1024; diff --git a/src/bank.cpp b/src/bank.cpp index d634b2d..a938cfd 100644 --- a/src/bank.cpp +++ b/src/bank.cpp @@ -78,7 +78,7 @@ void Bank::load(const char *filename) { void Bank::saveWAV(const char *filename) { SF_INFO info; - info.samplerate = 44100; + info.samplerate = 48000; info.channels = 1; info.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16 | SF_ENDIAN_LITTLE; SNDFILE *sf = sf_open(filename, SFM_WRITE, &info); diff --git a/src/wave.cpp b/src/wave.cpp index 2afbfe7..664b202 100644 --- a/src/wave.cpp +++ b/src/wave.cpp @@ -272,7 +272,7 @@ void Wave::randomizeEffects() { void Wave::saveWAV(const char *filename) { SF_INFO info; - info.samplerate = 44100; + info.samplerate = 48000; info.channels = 1; info.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16 | SF_ENDIAN_LITTLE; SNDFILE *sf = sf_open(filename, SFM_WRITE, &info);