Skip to content

Commit

Permalink
[ADC] fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
mxmxmx committed Mar 25, 2017
1 parent 28e03ad commit 1cb1869
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 36 deletions.
4 changes: 2 additions & 2 deletions hardware/readme.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
hardware files for o_C quad 16 bit CV generator/processor
============

###.fpd files
### .fpd files

- .fpd (= front panel express).
- .svg (= same thing, exported from frontDesign).
- /fpd_nearlyghost: .fpd, w/ graphics by nearly_ghost

###schematic
### schematic

- rev 2.e
- (rev 2.c, 2.d are basically identical)
Expand Down
2 changes: 1 addition & 1 deletion software/o_c_REV/APP_A_SEQ.ino
Original file line number Diff line number Diff line change
Expand Up @@ -916,7 +916,7 @@ public:
// CV?
if (get_pulsewidth_cv_source()) {

_pulsewidth += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_pulsewidth_cv_source() - 1)) + 8) >> 3;
_pulsewidth += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_pulsewidth_cv_source() - 1)) + 4) >> 3;
if (!_gates)
CONSTRAIN(_pulsewidth, 1, PULSEW_MAX);
else // CV for 50% duty cycle:
Expand Down
12 changes: 6 additions & 6 deletions software/o_c_REV/APP_CHORDS.ino
Original file line number Diff line number Diff line change
Expand Up @@ -288,17 +288,17 @@ public:
if (!continuous) {

if (get_root_cv()) {
root += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_root_cv() - 1)) * 12 + 2047) >> 12;
root += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_root_cv() - 1)) + 128) >> 8;
CONSTRAIN(root, 0, 11);
}

if (get_octave_cv()) {
octave += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_octave_cv() - 1)) * 12 + 2047) >> 12;
octave += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_octave_cv() - 1)) + 256) >> 9;
CONSTRAIN(octave, -4, 4);
}

if (get_transpose_cv()) {
transpose += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_transpose_cv() - 1)) * 12 + 2047) >> 12;
transpose += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_transpose_cv() - 1)) + 64) >> 7;
CONSTRAIN(transpose, -12, 12);
}

Expand Down Expand Up @@ -327,7 +327,7 @@ public:

if (get_root_cv()) {

_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(get_root_cv() - 1)) * 12 + 2047) >> 12;
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(get_root_cv() - 1)) + 128) >> 8;

if (_aux_cv != prev_root_cv_) {
root = get_root() + _aux_cv;
Expand All @@ -339,7 +339,7 @@ public:

if (get_octave_cv()) {

_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(get_octave_cv() - 1)) * 12 + 2047) >> 12;
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(get_octave_cv() - 1)) + 256) >> 9;

if (_aux_cv != prev_octave_cv_) {
octave = get_octave() + _aux_cv;
Expand All @@ -351,7 +351,7 @@ public:

if (get_transpose_cv()) {

_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(get_transpose_cv() - 1)) * 12 + 2047) >> 12;
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(get_transpose_cv() - 1)) + 64) >> 7;

if (_aux_cv != prev_transpose_cv_) {
transpose = get_transpose() + _aux_cv;
Expand Down
12 changes: 6 additions & 6 deletions software/o_c_REV/APP_DQ.ino
Original file line number Diff line number Diff line change
Expand Up @@ -567,17 +567,17 @@ public:
schedule_scale_update_ = true;
break;
case DQ_DEST_ROOT:
root += (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) * 12 + 2047) >> 12;
root += (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) + 127) >> 8;
break;
case DQ_DEST_MASK:
update_scale(true, active_scale_slot_, (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) + 127) >> 8);
schedule_scale_update_ = false;
break;
case DQ_DEST_OCTAVE:
octave += (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) * 12 + 2047) >> 12;
octave += (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) + 255) >> 9;
break;
case DQ_DEST_TRANSPOSE:
transpose += (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) * 12 + 2047) >> 12;
transpose += (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) + 64) >> 7;
break;
default:
break;
Expand Down Expand Up @@ -624,7 +624,7 @@ public:
}
break;
case DQ_DEST_TRANSPOSE:
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) * 12 + 2047) >> 12;
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) + 63) >> 7;
if (_aux_cv != prev_transpose_cv_) {
transpose = get_transpose() + _aux_cv;
CONSTRAIN(transpose, -12, 12);
Expand All @@ -633,7 +633,7 @@ public:
}
break;
case DQ_DEST_ROOT:
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) * 12 + 2047) >> 12;
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) + 127) >> 8;
if (_aux_cv != prev_root_cv_) {
root = get_root() + _aux_cv;
CONSTRAIN(root, 0, 11);
Expand All @@ -642,7 +642,7 @@ public:
}
break;
case DQ_DEST_OCTAVE:
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) * 12 + 2047) >> 12;
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(channel_id)) + 255) >> 9;
if (_aux_cv != prev_octave_cv_) {
octave = get_octave() + _aux_cv;
CONSTRAIN(octave, -4, 4);
Expand Down
2 changes: 1 addition & 1 deletion software/o_c_REV/APP_H1200.ino
Original file line number Diff line number Diff line change
Expand Up @@ -1163,7 +1163,7 @@ void H1200_screensaver() {

void H1200_debug() {
int cv = OC::ADC::value<ADC_CHANNEL_4>();
int scaled = ((OC::ADC::value<ADC_CHANNEL_4>() + 255) >> 8);
int scaled = ((OC::ADC::value<ADC_CHANNEL_4>() + 127) >> 8);

graphics.setPrintPos(2, 12);
graphics.printf("I: %4d %4d", cv, scaled);
Expand Down
40 changes: 20 additions & 20 deletions software/o_c_REV/APP_QQ.ino
Original file line number Diff line number Diff line change
Expand Up @@ -441,23 +441,23 @@ public:
turing_machine_.set_length(get_turing_length());
int32_t probability = get_turing_prob();
if (get_turing_prob_cv_source()) {
probability += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_turing_prob_cv_source() - 1)) >> 4);
probability += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_turing_prob_cv_source() - 1)) + 7) >> 4;
CONSTRAIN(probability, 0, 255);
}
turing_machine_.set_probability(probability);
if (triggered) {
uint32_t shift_register = turing_machine_.Clock();
uint8_t range = get_turing_range();
if (get_turing_range_cv_source()) {
range += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_turing_range_cv_source() - 1)) >> 5);
range += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_turing_range_cv_source() - 1)) + 15) >> 5;
CONSTRAIN(range, 1, 120);
}

if (quantizer_.enabled()) {

uint8_t modulus = get_turing_modulus();
if (get_turing_modulus_cv_source()) {
modulus += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_turing_modulus_cv_source() - 1)) >> 5);
modulus += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_turing_modulus_cv_source() - 1)) + 15) >> 5;
CONSTRAIN(modulus, 2, 121);
}

Expand Down Expand Up @@ -492,28 +492,28 @@ public:

int32_t bytebeat_eqn = get_bytebeat_equation() << 12;
if (get_bytebeat_equation_cv_source()) {
bytebeat_eqn += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_bytebeat_equation_cv_source() - 1)) << 4);
bytebeat_eqn += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_bytebeat_equation_cv_source() - 1)) + 7) >> 4;
bytebeat_eqn = USAT16(bytebeat_eqn);
}
bytebeat_.set_equation(bytebeat_eqn);

int32_t bytebeat_p0 = get_bytebeat_p0() << 8;
if (get_bytebeat_p0_cv_source()) {
bytebeat_p0 += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_bytebeat_p0_cv_source() - 1)) << 4);
bytebeat_p0 += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_bytebeat_p0_cv_source() - 1)) + 7) >> 4;
bytebeat_p0 = USAT16(bytebeat_p0);
}
bytebeat_.set_p0(bytebeat_p0);

int32_t bytebeat_p1 = get_bytebeat_p1() << 8;
if (get_bytebeat_p1_cv_source()) {
bytebeat_p1 += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_bytebeat_p1_cv_source() - 1)) << 4);
bytebeat_p1 += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_bytebeat_p1_cv_source() - 1)) + 7) >> 4;
bytebeat_p1 = USAT16(bytebeat_p1);
}
bytebeat_.set_p1(bytebeat_p1);

int32_t bytebeat_p2 = get_bytebeat_p2() << 8;
if (get_bytebeat_p2_cv_source()) {
bytebeat_p2 += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_bytebeat_p2_cv_source() - 1)) << 4);
bytebeat_p2 += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_bytebeat_p2_cv_source() - 1)) + 7) >> 4;
bytebeat_p2 = USAT16(bytebeat_p2);
}
bytebeat_.set_p2(bytebeat_p2);
Expand All @@ -522,7 +522,7 @@ public:
uint32_t bb = bytebeat_.Clock();
uint8_t range = get_bytebeat_range();
if (get_bytebeat_range_cv_source()) {
range += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_bytebeat_range_cv_source() - 1)) >> 5);
range += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_bytebeat_range_cv_source() - 1)) + 15) >> 5;
CONSTRAIN(range, 1, 120);
}

Expand Down Expand Up @@ -559,15 +559,15 @@ public:
logistic_map_.set_seed(123);
int32_t logistic_map_r = get_logistic_map_r();
if (get_logistic_map_r_cv_source()) {
logistic_map_r += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_logistic_map_r_cv_source() - 1)) >> 4);
logistic_map_r += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_logistic_map_r_cv_source() - 1)) + 7) >> 4;
CONSTRAIN(logistic_map_r, 0, 255);
}
logistic_map_.set_r(logistic_map_r);
if (triggered) {
int64_t logistic_map_x = logistic_map_.Clock();
uint8_t range = get_logistic_map_range();
if (get_logistic_map_range_cv_source()) {
range += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_logistic_map_range_cv_source() - 1)) >> 5);
range += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_logistic_map_range_cv_source() - 1)) + 15) >> 5;
CONSTRAIN(range, 1, 120);
}

Expand Down Expand Up @@ -601,20 +601,20 @@ public:
int16_t int_seq_stride = get_int_seq_stride();

if (get_int_seq_index_cv_source()) {
int_seq_index += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_int_seq_index_cv_source() - 1)) >> 8);
int_seq_index += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_int_seq_index_cv_source() - 1)) + 127) >> 8;
}
if (int_seq_index < 0) int_seq_index = 0;
if (int_seq_index > 8) int_seq_index = 8;
int_seq_.set_int_seq(int_seq_index);
int16_t int_seq_modulus_ = get_int_seq_modulus();
if (get_int_seq_modulus_cv_source()) {
int_seq_modulus_ += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_int_seq_modulus_cv_source() - 1)) >> 6);
int_seq_modulus_ += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_int_seq_modulus_cv_source() - 1)) + 31) >> 6;
CONSTRAIN(int_seq_modulus_, 2, 121);
}
int_seq_.set_int_seq_modulus(int_seq_modulus_);

if (get_int_seq_stride_cv_source()) {
int_seq_stride += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_int_seq_stride_cv_source() - 1)) >> 6);
int_seq_stride += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_int_seq_stride_cv_source() - 1)) + 31) >> 6;
}
if (int_seq_stride < 1) int_seq_stride = 1;
if (int_seq_stride > 255) int_seq_stride = 255;
Expand Down Expand Up @@ -664,7 +664,7 @@ public:
uint32_t is = int_seq_.Clock();
int16_t range_ = get_int_seq_range();
if (get_int_seq_range_cv_source()) {
range_ += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_int_seq_range_cv_source() - 1)) >> 6);
range_ += (OC::ADC::value(static_cast<ADC_CHANNEL>(get_int_seq_range_cv_source() - 1)) + 31) >> 6;
CONSTRAIN(range_, 1, 120);
}
if (quantizer_.enabled()) {
Expand Down Expand Up @@ -720,13 +720,13 @@ public:
case QQ_DEST_NONE:
break;
case QQ_DEST_TRANSPOSE:
transpose += (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) * 12 + 2047) >> 12;
transpose += (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) + 63) >> 7;
break;
case QQ_DEST_ROOT:
root += (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) * 12 + 2047) >> 12;
root += (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) + 127) >> 8;
break;
case QQ_DEST_OCTAVE:
octave += (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) * 12 + 2047) >> 12;
octave += (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) + 255) >> 9;
break;
case QQ_DEST_MASK:
update_scale(false, (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) + 127) >> 8);
Expand Down Expand Up @@ -759,7 +759,7 @@ public:
case QQ_DEST_NONE:
break;
case QQ_DEST_TRANSPOSE:
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) * 12 + 2047) >> 12;
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) + 63) >> 7;
if (_aux_cv != prev_transpose_cv_) {
transpose = get_transpose() + _aux_cv;
CONSTRAIN(transpose, -12, 12);
Expand All @@ -768,7 +768,7 @@ public:
}
break;
case QQ_DEST_ROOT:
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) * 12 + 2047) >> 12;
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) + 127) >> 8;
if (_aux_cv != prev_root_cv_) {
root = get_root() + _aux_cv;
CONSTRAIN(root, 0, 11);
Expand All @@ -777,7 +777,7 @@ public:
}
break;
case QQ_DEST_OCTAVE:
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) * 12 + 2047) >> 12;
_aux_cv = (OC::ADC::value(static_cast<ADC_CHANNEL>(index)) + 255) >> 9;
if (_aux_cv != prev_octave_cv_) {
octave = get_octave() + _aux_cv;
CONSTRAIN(octave, -4, 4);
Expand Down

0 comments on commit 1cb1869

Please sign in to comment.