Pitch shift problems

So I should basically just wait for that to happen before I can continue building on my project?
I have been thinking about showing how far I’ve come thus far and see if I get any comments on the code.
I’m really not a very good programmer and I’m sure I’m not using the memory available to me in the best way.

Here is the source code I ended up using for my Guitar Amplifier Project
Daisy Seed code
ESP8266 code
Android phone app

Oh, my impression was that you have an incomplete code with SPI for libDaisy. Looking at current code, you don’t really need the bandwidth that SPI provides. You could use UART at 115200 baud as the simplest protocol available and it would be sufficient.

What I posted are *.ino Arduino files. The Daisy Seed code won’t port to libDaisy because incomplete SPI interface has no code to receive data.

This is what transmit does:

So to use a blocking receive you’d have to make an extra method there (i.e. SpiHandle::BlockingReceive) to call HAL_SPI_Receive function with the same parameters as transmit.

2 Likes

@antisvin thanks for the for the suggestion. I just got the code setup in VS and I’m starting to take advantage of debouncing buttons and other changes to non audio items (like knobs) that don’t work without changes to Arduino code. I’ll give SPI another try when I get to that point when coding. I found this post of yours for sample SPI DMA project and it looks very promising though I would only need the polling version.

I also need to add a looper, reverb, flanger, and a 3 button footswitch so by the time I get back around to SPI it will hopefully coincide with the promised E-S updates.

I also want to thank you for your concern and time spent while helping me. It is very much welcomed and appreciated.

2 Likes

@TGargasz It seems that we’re both working in similar design. Initially I started with Arduino Due but shortly I realized that it hasn’t enough memory nor speed for guitar effects. After giving up with raspberry too, I started with ESP32. It was almost ready but during tests the noise coming from the ADC was stupidly high. I’m still trying to solve it, but I decided to give to Daisy Seed a chance. By the way, I already have codes for looper, reverb and flanger ready to go in ESP32 Arduino, besides pitch shifter, octave, distortion, echo, tremolo, phaser, chorus, 3 band equalizer, wah-wah, delay and compressor. Please let me know if you want some of these codes. As for DS I’m newbie and I’m stuck because I didn’t manage why a simple Serial.println on serial console doesn’t print anything. I’m working on Windows 10, with installed zadig and STM32CubeProg as suggested. What I’m doing wrong?

If you have these settings (specifically the ones related to USB support, and U(S)ART support:

image

then generic Serial.println should be functioning.

If you’re able to program the Daisy properly from Arduino then it seems you have everything installed correctly, and USB is functioning. Are you able to see the Daisy show up in your Device Manager? From arduino it would show up as a "STM32 Virtual ComPort)

With the above settings, this sketch works without issue:

int val;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  val = 0;
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(100);
  val++;
  Serial.println(val);
}

@shensley Thank you for reply. Configuration was ok, except for Optimize. Even after changing to -O3 it didn’t work when using the code above. Serial console is still blank. But there is some issue indeed: in Device Manager the COM3 where Daisy is connected, it shows “Standard Serial over Bluetooth link”. I know that Daisy is on COM3 because the Blink example works fine. Please, how I can correct that?

By the way, Device Manager shows COM3 and COM4 with the same text. I tried uploading the blink code in these two ports and it worked. Seems weird…

When the device is in bootloader mode it doesn’t use the COM port configuration to upload, the STM32CubeProg looks for a DFU device, so the COM3 (and COM4) you have may be another device built into your PC. While in bootloader mode, the Daisy appears under “Unversal Serial Bus Devices” as “DFU in FS Mode”

image

Once one of the serial programs is running on the Daisy Seed, it should show up in the COM Ports section of the Daisy as “STM32 Virtual ComPort”. In my case this is COM73.

You should be able to see that appear and disappear as you plug and unplug the daisy.

image

Once you’re able to identify the COM port you can set that in Arduino to match under the “Port” settings, and the serial monitor should work.

@shensley thank you again. Yes, in Universal Serial Bus Devices I have DFU in FS Mode when in bootloader mode. However, the COM port isn’t being updated with STMicroelectronics… when DS is plug into USB.

With the Daisy Seed plugged in, and running the Serial Program, can you see it inside of Zadig? You may just need to set the driver for it, though I haven’t had to change mine.

Right now, with the sketch I sent you mine shows up there as DAISY_SEED CDC in FS Mode, and has the usbser(v1.0.0.0) driver, though I’m fairly certain I’ve tested it with libusb and winUSB under the same configuration.

Here’s how it looks in Zadig on my machine:
image

I’ve just followed the instructions on git page “Using Zadig to Reset USB Driver (Windows Only)”. Here is mine:dseed. Still not working…

and by the way, I’ve tried to uninstall the COM3 and COM4 ports (both, driver and device) from Windows system, but it comes back to “Standard Serial over Bluetooth link (COM3)” whenever DS is connected to USB port.

@shensley Solved: It finally worked when I changed USB driver on Zadig to USB Serial (CDC). Then a new COM port was created on Device Manager with the correct setting: DAISY_SEED CDC in FS Mode.
Anyway, it should be advised on Git/Zadig configuration that some drivers may not work as expected, and one should try others.
Thank you.

andrewikenberry
19d
@TGargasz Arduino SDRAM support and flushing out the SPI / I2C libDaisy functionality are the very next things on our to do list.
They should be getting handled within the next week or two.

@andrewikenberry Any word on progress?

@TGargasz yes, we are currently working on Arduino SDRAM support and should have it live by end of this week!

We’ll be jumping on the SPI / I2C next week.

@andrewikenberry Fabulous! The timing is spot on my anticipated schedule! My trial version of VisualGDB has expired and being on a disabled income I don’t have a Benjamin to toss at it until I fill the penny jar. I have quickly grown comfortable with Visual Studio 2019 Community Version with the VM Ware extension for Arduino. The VM Ware extension is only $12/yr which is palatable. I know about the free debugger for Visual Code but I’m sour on VC because I could never get Intellisense or code completion to work properly in any environment that I tried it in.

@TGargasz v1.2.0 of DaisyDuino has just been pushed, and adds support for SDRAM.

Not sure how long it usually takes before Arduino Library Manager picks it up, but I think its relatively quick.

To use the SDRAM you can declare any type as a global variable using the DSY_SDRAM_BSS attribute.

For example:

// This creates 1MB of chars
char DSY_SDRAM_BSS my_big_buffer[1024*1024];

void setup() {}

void loop() {}
5 Likes