Each channel can enable CV 1 or CV 2 as an input source for modulation, which can be applied to any of the user-editable parameters. When editing the parameter, cv mod is not applied in the UI so the user can easily see the base value for editing. When not editing, the UI will display the current cv modded value in the UI for the modded parameter. I had originally intended to provide configuration for attenuating and offsetting the cv input per channel, but that introduced a significant amount of memory needed to store several new ints per channel. I may return to add this feature later, but given it's something that can easily be done with other modules between the modulation source and Gravity cv input, I am deprioritizing this feature. Reviewed-on: https://git.pinkduck.xyz/adam/libGravity/pulls/4 Co-authored-by: Adam Wonak <adam.wonak@gmail.com> Co-committed-by: Adam Wonak <adam.wonak@gmail.com>
45 lines
827 B
C
45 lines
827 B
C
/**
|
|
* @file peripherials.h
|
|
* @author Adam Wonak (https://github.com/awonak)
|
|
* @brief Arduino pin definitions for the Sitka Instruments Gravity module.
|
|
* @version 0.1
|
|
* @date 2025-04-19
|
|
*
|
|
* @copyright Copyright (c) 2025
|
|
*
|
|
*/
|
|
#ifndef PERIPHERIALS_H
|
|
#define PERIPHERIALS_H
|
|
|
|
// OLED Display config
|
|
#define OLED_ADDRESS 0x3C
|
|
#define SCREEN_WIDTH 128
|
|
#define SCREEN_HEIGHT 64
|
|
|
|
// Peripheral input pins
|
|
#define ENCODER_PIN1 17 // A3
|
|
#define ENCODER_PIN2 4
|
|
#define ENCODER_SW_PIN 14 // A0
|
|
|
|
// Clock and CV Inputs
|
|
#define EXT_PIN 2
|
|
#define CV1_PIN A7
|
|
#define CV2_PIN A6
|
|
#define PULSE_OUT_PIN 3
|
|
|
|
// Button pins
|
|
#define SHIFT_BTN_PIN 12
|
|
#define PLAY_BTN_PIN 5
|
|
|
|
// Output Pins
|
|
#define OUT_CH1 7
|
|
#define OUT_CH2 8
|
|
#define OUT_CH3 10
|
|
#define OUT_CH4 6
|
|
#define OUT_CH5 9
|
|
#define OUT_CH6 11
|
|
|
|
const uint8_t OUTPUT_COUNT = 6;
|
|
|
|
#endif
|