diff --git a/DigitalSynthVRA8U/DigitalSynthVRA8U.ino b/DigitalSynthVRA8U/DigitalSynthVRA8U.ino index 4968e2e..cb992ac 100644 --- a/DigitalSynthVRA8U/DigitalSynthVRA8U.ino +++ b/DigitalSynthVRA8U/DigitalSynthVRA8U.ino @@ -16,7 +16,6 @@ #define R_LOW_AUDIO_OUT_PIN (3) // Pin D3 (Fixed): R channel, low 8-bit audio output #define ENABLE_SPECIAL_PROGRAM_CHANGE // Program Change by Control Change (112-119) - // Interpret Program Change 8-15 as 0-7 diff --git a/DigitalSynthVRA8U/osc.h b/DigitalSynthVRA8U/osc.h index b640401..69878ff 100644 --- a/DigitalSynthVRA8U/osc.h +++ b/DigitalSynthVRA8U/osc.h @@ -658,6 +658,9 @@ class Osc { INLINE static void update_freq_3rd() { uint8_t fine = low_byte(m_pitch_real[N]); uint16_t freq_div_2 = (m_freq_temp[N] >> 1); + int8_t freq_offset = high_sbyte(freq_div_2 * g_osc_tune_table[fine >> (8 - OSC_TUNE_TABLE_STEPS_BITS)]); + m_freq_temp[N] += freq_offset; + uint8_t bit = (m_rnd >= 0xF0); uint8_t mono_offset = 0; if (N == 2) { @@ -667,8 +670,8 @@ class Osc { } } } - int8_t freq_offset = high_sbyte(freq_div_2 * g_osc_tune_table[fine >> (8 - OSC_TUNE_TABLE_STEPS_BITS)]) + bit + mono_offset; - m_freq[N] = m_freq_temp[N] + freq_offset; + m_freq[N] = m_freq_temp[N] + bit + mono_offset; + m_wave_table[N] = m_wave_table_temp[N]; } diff --git a/DigitalSynthVRA8U/serial-in.h b/DigitalSynthVRA8U/serial-in.h index c12bf38..afa6c94 100644 --- a/DigitalSynthVRA8U/serial-in.h +++ b/DigitalSynthVRA8U/serial-in.h @@ -14,7 +14,7 @@ class SerialIn { return UCSR0A & _BV(RXC0); } - INLINE static int8_t read() { + INLINE static uint8_t read() { return UDR0; } }; diff --git a/README.md b/README.md index 3debefb..4650f97 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ -# Digital Synth VRA8-U v2.2.2 +# Digital Synth VRA8-U v2.2.3 -- 2023-05-04 ISGK Instruments +- 2023-07-08 ISGK Instruments - ## Concept -- Monophonic/Paraphonic United Synthesizer for Arduino Uno +- Monophonic/Paraphonic United Synthesizer for Arduino UNO R3 - Monophonic Mode: 1-Voice, 2-Oscillator (with Sub Oscillator) - Paraphonic Mode: 4-Voice, 1-Oscillator - Built-in Chorus FX - Controlled by MIDI: VRA8-U is MIDI Sound Module -- The 8th in the Digital Synth VRA8 series that pushes the limits of the Arduino Uno +- The 8th in the Digital Synth VRA8 series that pushes the limits of the Arduino UNO R3 ## Caution about Arduino AVR Boards Version @@ -19,6 +19,8 @@ ## Change History +- v2.2.3: + - Fix Osc 2 frequency in Monophonic Mode - v2.2.2: - Separate Voice Mode Lgt (Legato) into Lgt (Legato) and LP (Legato Portamento) - Fix Voice Mode value 32 to be Mon (Monophonic) mode @@ -63,7 +65,7 @@ - We recommend adding AC coupling capacitors to reduce DC components - A 10 uF electrolytic capacitor works well - Files - - `"DigitalSynthVRA8U.ino"` is a sketch for Arduino Uno Rev3 (ATmega328P) + - `"DigitalSynthVRA8U.ino"` is a sketch for Arduino UNO R3 (ATmega328P) - `"make-sample-wav-file.cc"` is for Debugging on PC - Requiring GCC (g++) or other - `"make-sample-wav-file-cc.bat"` makes a sample WAV file (working on Windows) @@ -156,11 +158,11 @@ This image was created with Fritzing. ![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png) -Digital Synth VRA8-U v2.2.2 by ISGK Instruments (Ryo Ishigaki) +Digital Synth VRA8-U v2.2.3 by ISGK Instruments (Ryo Ishigaki) To the extent possible under law, ISGK Instruments (Ryo Ishigaki) has waived all copyright and related or neighboring rights -to Digital Synth VRA8-U v2.2.2. +to Digital Synth VRA8-U v2.2.3. You should have received a copy of the CC0 legalcode along with this work. If not, see . diff --git a/VRA8-U-MIDI-Implementation-Chart.md b/VRA8-U-MIDI-Implementation-Chart.md index 6a42d4a..7f73e8a 100644 --- a/VRA8-U-MIDI-Implementation-Chart.md +++ b/VRA8-U-MIDI-Implementation-Chart.md @@ -1,6 +1,6 @@ ``` - [United Synthesizer] Date: 2023-05-04 - Model: Digital Synth VRA8-U MIDI Implementation Chart Version: 2.2.2 + [United Synthesizer] Date: 2023-07-08 + Model: Digital Synth VRA8-U MIDI Implementation Chart Version: 2.2.3 +-------------------------------+---------------+---------------+----------------------------------+ | Function... | Transmitted | Recognized | Remarks | +-------------------------------+---------------+---------------+----------------------------------+ diff --git a/VRA8-U-Parameter-Guide.md b/VRA8-U-Parameter-Guide.md index e078d6e..b33aae0 100644 --- a/VRA8-U-Parameter-Guide.md +++ b/VRA8-U-Parameter-Guide.md @@ -1,6 +1,6 @@ -# Digital Synth VRA8-U Parameter Guide v2.2.2 +# Digital Synth VRA8-U Parameter Guide v2.2.3 -- 2023-05-04 ISGK Instruments +- 2023-07-08 ISGK Instruments - ## Control Change Parameters diff --git a/VRA8-U-type-16-Operation-Guide.md b/VRA8-U-type-16-Operation-Guide.md index 98ce7ff..f2b8746 100644 --- a/VRA8-U-type-16-Operation-Guide.md +++ b/VRA8-U-type-16-Operation-Guide.md @@ -1,6 +1,6 @@ -# Digital Synth VRA8-U type-16 Operation Guide v2.2.2 +# Digital Synth VRA8-U type-16 Operation Guide v2.2.3 -- 2023-05-04 ISGK Instruments +- 2023-07-08 ISGK Instruments - ## Concept diff --git a/vra8-u-ctrl.html b/vra8-u-ctrl.html index 7ebed3f..7601f88 100644 --- a/vra8-u-ctrl.html +++ b/vra8-u-ctrl.html @@ -41,7 +41,7 @@ }