Skip to content

Instantly share code, notes, and snippets.

@dromer
Created November 12, 2021 21:06
Show Gist options
  • Save dromer/3235943b526c7d460088368c3e5ea953 to your computer and use it in GitHub Desktop.
Save dromer/3235943b526c7d460088368c3e5ea953 to your computer and use it in GitHub Desktop.
field_through.pd
#include "HeavyDaisy_heavy.hpp"
#define SAMPLE_RATE 48000.f
using namespace daisy;
Daisy hardware;
Heavy_heavy hv(SAMPLE_RATE);
void ProcessControls();
void audiocallback(daisy::AudioHandle::InputBuffer in, daisy::AudioHandle::OutputBuffer out, size_t size)
{
hv.process((float**)in, (float**)out, size);
hardware.PostProcess();
}
static void sendHook(HeavyContextInterface *c, const char *receiverName, uint32_t receiverHash, const HvMessage * m)
{
}
int main(void)
{
hardware.Init(true);
hardware.driver.StartAudio(audiocallback);
hv.setSendHook(sendHook);
for(;;)
{
hardware.Display();
}
}
void ProcessControls()
{
hardware.ProcessAllControls();
hardware.CallbackWriteIn(hv);
}
#ifndef _HEAVY_DAISY_HEAVY_
#define _HEAVY_DAISY_HEAVY_
// #include <string>
#include "Heavy_heavy.hpp"
#define ANALOG_COUNT 1
#include "daisy_seed.h"
#include "dev/codec_ak4556.h"
using namespace daisy;
uint8_t pad_shift_debounced[8*2];
LedDriverPca9685<2, true>::DmaBuffer DMA_BUFFER_MEM_SECTION led_driver_dma_buffer_a, led_driver_dma_buffer_b;
#include "dev/oled_ssd130x.h"
// name: field
struct Daisy {
void Init(bool boost = false) {
driver.Configure();
driver.Init(boost);
i2c.Init({daisy::I2CHandle::Config::Peripheral::I2C_1, {driver.GetPin(11), driver.GetPin(12)}, daisy::I2CHandle::Config::Speed::I2C_1MHZ});
led_driver.Init(i2c, {0x00, 0x02}, led_driver_dma_buffer_a, led_driver_dma_buffer_b);
pad_shift.Init({ driver.GetPin(28), driver.GetPin(27), { driver.GetPin(26) } });
size_t pot_mux_index = 0;
cfg[pot_mux_index].InitMux(driver.GetPin(16), 8, driver.GetPin(21), driver.GetPin(20), driver.GetPin(19));
driver.adc.Init(cfg, ANALOG_COUNT);
daisy::OledDisplay<daisy::SSD130x4WireSpi128x64Driver>::Config display_config;
display_config.driver_config.transport_config.Defaults();
display.Init(display_config);
driver.adc.Start();
}
void ProcessAllControls() {
}
void PostProcess() {
pad_shift.Update();
// led_driver.SwapBuffersAndTransmit();
}
void Display() {
}
void LoopWriteOut() {
}
void CallbackWriteOut() {
}
void CallbackWriteIn(Heavy_heavy& hv) {
}
void SetAudioSampleRate(daisy::SaiHandle::Config::SampleRate samplerate) {
driver.SetAudioSampleRate(samplerate);
SetHidUpdateRates();
}
void SetAudioBlockSize(size_t size) {
driver.SetAudioBlockSize(size);
SetHidUpdateRates();
}
void SetHidUpdateRates() {
}
daisy::DaisySeed driver;
daisy::AdcChannelConfig cfg[ANALOG_COUNT];
ShiftRegister4021<2> pad_shift;
LedDriverPca9685<2, true> led_driver;
I2CHandle i2c;
daisy::OledDisplay<daisy::SSD130x4WireSpi128x64Driver> display;
int menu_click = 0, menu_hold = 0, menu_rotate = 0;
};
extern Daisy hardware;
#endif // _HEAVY_DAISY_HEAVY_
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment