Fix for controllers.

pull/4/head
Holger Wirtz 7 years ago
parent 4fc98cde0b
commit 2d77234a39
  1. 17
      MicroDexed.ino
  2. 27
      controllers.h
  3. 1
      dexed.cpp

@ -49,7 +49,8 @@ void setup()
Serial.begin(115200); Serial.begin(115200);
//while (!Serial) ; // wait for Arduino Serial Monitor //while (!Serial) ; // wait for Arduino Serial Monitor
delay(300); delay(300);
Serial.println(F("MicroDexed")); Serial.println(F("MicroDexed based on https://github.com/asb2m10/dexed"));
Serial.println(F("(c)2018 H. Wirtz"));
Serial.println(F("setup start")); Serial.println(F("setup start"));
MIDI.begin(MIDI_CHANNEL_OMNI); MIDI.begin(MIDI_CHANNEL_OMNI);
@ -59,7 +60,7 @@ void setup()
AudioMemory(16); AudioMemory(16);
sgtl5000_1.enable(); sgtl5000_1.enable();
sgtl5000_1.volume(0.5); sgtl5000_1.volume(0.4);
// Initialize processor and memory measurements // Initialize processor and memory measurements
//AudioProcessorUsageMaxReset(); //AudioProcessorUsageMaxReset();
@ -71,7 +72,7 @@ void setup()
int16_t* audio_buffer = queue1.getBuffer(); int16_t* audio_buffer = queue1.getBuffer();
if (audio_buffer != NULL) if (audio_buffer != NULL)
{ {
memset(audio_buffer, 0, AUDIO_BUFFER_SIZE); memset(audio_buffer, 0, sizeof(int16_t)*AUDIO_BUFFER_SIZE);
queue1.playBuffer(); queue1.playBuffer();
} }
} }
@ -86,6 +87,7 @@ void setup()
midi_queue.enqueue(m); midi_queue.enqueue(m);
m.data1 = TEST_NOTE2; m.data1 = TEST_NOTE2;
midi_queue.enqueue(m); midi_queue.enqueue(m);
m.cmd = 0xb0;
#endif #endif
threads.addThread(audio_thread, 1); threads.addThread(audio_thread, 1);
@ -120,11 +122,12 @@ void loop()
void audio_thread(void) void audio_thread(void)
{ {
int16_t* audio_buffer; // pointer for 128 * int16_t int16_t* audio_buffer; // pointer to 128 * int16_t
bool break_for_calculation;
Serial.println(F("audio thread start")); Serial.println(F("audio thread start"));
while (42 == 42) while (42 == 42) // Don't panic!
{ {
audio_buffer = queue1.getBuffer(); audio_buffer = queue1.getBuffer();
if (audio_buffer == NULL) if (audio_buffer == NULL)
@ -137,8 +140,10 @@ void audio_thread(void)
if (midi_queue_lock.lock(MIDI_QUEUE_LOCK_TIMEOUT_MS)) if (midi_queue_lock.lock(MIDI_QUEUE_LOCK_TIMEOUT_MS))
{ {
midi_queue_t m = midi_queue.dequeue(); midi_queue_t m = midi_queue.dequeue();
dexed->ProcessMidiMessage(m.cmd, m.data1, m.data2); break_for_calculation=dexed->ProcessMidiMessage(m.cmd, m.data1, m.data2);
midi_queue_lock.unlock(); midi_queue_lock.unlock();
if(break_for_calculation==true)
break;
} }
else else
break; break;

@ -1,17 +1,17 @@
/* /*
* Copyright 2013 Google Inc. Copyright 2013 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
* You may obtain a copy of the License at You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0 http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and See the License for the specific language governing permissions and
* limitations under the License. limitations under the License.
*/ */
#ifndef __CONTROLLERS_H #ifndef __CONTROLLERS_H
@ -55,7 +55,6 @@ struct FmMod {
pitch = assign & 1; // AMP pitch = assign & 1; // AMP
amp = assign & 2; // PITCH amp = assign & 2; // PITCH
eg = assign & 4; // EG eg = assign & 4; // EG
} }
}; };

@ -125,6 +125,7 @@ void Dexed::activate(void)
panic(); panic();
controllers.values_[kControllerPitchRange] = data[155]; controllers.values_[kControllerPitchRange] = data[155];
controllers.values_[kControllerPitchStep] = data[156]; controllers.values_[kControllerPitchStep] = data[156];
controllers.refresh();
} }
void Dexed::deactivate(void) void Dexed::deactivate(void)

Loading…
Cancel
Save