Forum Rule: Always post complete source code & details to reproduce any issue!

Search:

Type: Posts; User: wcalvert

Page 1 of 3 1 2 3

Search: Search took 0.00 seconds.

  1. No problem, just beware that if you're using the...

    No problem, just beware that if you're using the audio shield, there is a different version for T3 and T4. So you will need to either buy the latest revision for the T4, or hook up a bunch of jumper...
  2. Ah, well, each reverb takes 22k of RAM, and...

    Ah, well, each reverb takes 22k of RAM, and you've got two of them. Teensy 3.2 only has 64k to start with, minus whatever is needed for the USB stack, etc. I just noticed two delays as well... hmm. I...
  3. Replies
    9
    Views
    101

    Oh that's right, I forgot it is AM. Additive...

    Oh that's right, I forgot it is AM. Additive synthesis is just not my thing.
  4. Replies
    9
    Views
    101

    Why not use the multiply block to modulate the...

    Why not use the multiply block to modulate the wavetable waveform with some other waveform?
  5. You could dynamically build the effect...

    You could dynamically build the effect configuration during runtime with new and delete, but this is not a task for the faint of heart.

    Could you tell us how you know your'e out of memory, just so...
  6. clear() releases all blocks (either 53 or 209...

    clear() releases all blocks (either 53 or 209 depending on the #define), you probably don't want to use that as a part of your normal recording cycle. freeBuffer() releases the "userblock" which is a...
  7. When the sample blocks get filled up, the head...

    When the sample blocks get filled up, the head resets to zero, which means the old sample data will start being overwritten. You can see the resetting happening on line 90:

    if (h >= max_buffers) h...
  8. Replies
    23
    Views
    526

    This looks really great, I will be keeping tabs...

    This looks really great, I will be keeping tabs on development. It seems like everything hinges on bootloader support to make it viable for production use.
  9. Replies
    7
    Views
    211

    Well, neither of those look correct to me. Try...

    Well, neither of those look correct to me. Try something like this:


    #include <Audio.h>
    #include <Wire.h>
    #include <SPI.h>
    #include <SD.h>
    #include <SerialFlash.h>

    // GUItool: begin...
  10. Replies
    6
    Views
    190

    If I were going to tackle this problem, I would...

    If I were going to tackle this problem, I would try to get a better understanding of how the file allocation table (the "FAT" in FAT32) could impact performance. If you hold let's say, several...
  11. Replies
    115
    Views
    7,983

    Just my two cents: point 2 can be accomplished...

    Just my two cents: point 2 can be accomplished with an RTOS, point 3 is a toolchain thing. There are many, many ways to skin both of those cats, but it would be best to make a dedicated thread and...
  12. Are you referring to ADAT or other features? The...

    Are you referring to ADAT or other features? The community can help if you provide some more info.
  13. Replies
    87
    Views
    1,139

    Hey, well I can explain the voice stealing part...

    Hey, well I can explain the voice stealing part pretty quickly. Millis() returns the time in milliseconds since power on. So to find the voice that has been on the longest (so we can steal it), we...
  14. Replies
    87
    Views
    1,139

    The benefit of wavetables, at least as I...

    The benefit of wavetables, at least as I understand it, is that you get to have samples recorded at different pitches. This helps make things more realistic because, for example, resonance effects...
  15. Replies
    88
    Views
    3,267

    Clever implementation, great job Frank.

    Clever implementation, great job Frank.
  16. Replies
    13
    Views
    415

    Sorry, I didn't mean to sound pedantic or try to...

    Sorry, I didn't mean to sound pedantic or try to take away from your accomplishment. I think it's awesome, great job :)
  17. Replies
    87
    Views
    1,139

    Actually I don't know, haha. I've only really...

    Actually I don't know, haha. I've only really heard the old "super saw" oscillators which had like 6 oscillators per voice, it makes such a wall of sound it was hard for me to tell. I'll have to...
  18. Replies
    87
    Views
    1,139

    Oh like, instead of the B oscillator being...

    Oh like, instead of the B oscillator being detuned to a higher frequency, you want it detuned to a lower frequency? You could do:

    oscsB[i]->frequency((1.0f / detune) * noteFreqs[voiceToNote[i]]);...
  19. Replies
    87
    Views
    1,139

    I screwed up again, it should be: ...

    I screwed up again, it should be:

    oscsB[i]->frequency(detune * noteFreqs[voiceToNote[i]]);
  20. Replies
    87
    Views
    1,139

    Oh, nice catch, pow() needs both arguments to be...

    Oh, nice catch, pow() needs both arguments to be double or float, that's why it wasn't working.

    Making it continuously sweepable... Hmm, that's a cool idea, I hadn't thought of that. You could...
  21. Replies
    13
    Views
    415

    As a proof of concept, I think this is really...

    As a proof of concept, I think this is really cool! It would be awesome if there was an established file format for this that worked well for embedded use. I mean I guess you could parse the sf2 file...
  22. Replies
    87
    Views
    1,139

    Glad you got it working. I don't have time to...

    Glad you got it working.

    I don't have time to integrate this into the code right now, but it would go something like this. First define a global variable called detune:

    float detune=1.0f;
    ...
  23. Echoing the others about encoders... Very few...

    Echoing the others about encoders...

    Very few midi controllers that I have seen have encoders. When you turn the controller on, what value should each be encoder be set to? 0, mid, max? If each...
  24. Replies
    88
    Views
    3,267

    The licensing concerns means that someone would...

    The licensing concerns means that someone would need to do the port and maintain it in a separate codebase from the core Teensy / Arduino implementation, while respecting the original license. That's...
  25. Replies
    88
    Views
    3,267

    The following is just my humble opinion if you...

    The following is just my humble opinion if you wanted to pursue porting the code to any embedded platform, Teensy or otherwise.

    There is some usage of calloc and free...
  26. Replies
    87
    Views
    1,139

    You can do that, sure. If you look here near the...

    You can do that, sure. If you look here near the top of the file: https://github.com/PaulStoffregen/Audio/blob/master/synth_waveform.h

    The waveforms have been #define'd, that's how the compiler...
  27. Replies
    87
    Views
    1,139

    That's how it's setup to work now. Just uncomment...

    That's how it's setup to work now. Just uncomment the lines "Serial.printf("Knob 1: %d\n", wave1);" and "Serial.printf("Knob 2: %d\n", wave2);" You should see each changing between 0, 1, 2, and 3. 0...
  28. Replies
    87
    Views
    1,139

    Just clone or download the Audio library, open a...

    Just clone or download the Audio library, open a command prompt, change into the directory where you downloaded it, type "python -m SimpleHTTPServer" and then go to localhost:8000 in your browser,...
  29. Replies
    87
    Views
    1,139

    I just edited the mixer class to have 8 inputs,...

    I just edited the mixer class to have 8 inputs, it's a simple change. Most of my instruments have only 6 voices, and one has only 3 voices due to how CPU hungry they are.

    Oh, and it's really easy...
  30. Replies
    87
    Views
    1,139

    Oh I misunderstood what you were asking when you...

    Oh I misunderstood what you were asking when you posted that originally.

    What's happening is the map function is converting the pot reading to four distinct values, 0 - 3. Sine and triangle are...
  31. Replies
    87
    Views
    1,139

    For a larger synth, yeah it is needed. I have an...

    For a larger synth, yeah it is needed. I have an instrument class, and 8 derived classes to encapsulate each instrument type. The derived classes hold the oscillators, envelopes, filters, NoteOn,...
  32. Replies
    87
    Views
    1,139

    That just reminds the compiler that it's a...

    That just reminds the compiler that it's a floating point number rather than a double. It's just one of those little hand optimizations that I always do whether it's really needed or not.
  33. Replies
    87
    Views
    1,139

    For number of voices.. I think most polyphonic...

    For number of voices.. I think most polyphonic synths these days are in the range of 4 - 16. Minilogue is 4, Deepmind comes in 6 and 12, Prophet is 16. The voice stealing really makes a huge...
  34. Replies
    87
    Views
    1,139

    Here's my tested code, 2 oscillators per voice,...

    Here's my tested code, 2 oscillators per voice, only 4 voices to get going. I'm using USB device rather than USB host, so you'll want to change that, and alter the analog pins to match what you are...
  35. Replies
    87
    Views
    1,139

    I have one oscillator per voice right now, but...

    I have one oscillator per voice right now, but I'm not using the stock Teensy oscillators ;). My synth is about the size of an OP-1, and it kinda works in the same way. Depending on what screen...
  36. Replies
    87
    Views
    1,139

    Hmm... well, "voiceToUse + 8" certainly looks...

    Hmm... well, "voiceToUse + 8" certainly looks suspect.

    If voiceToUse + 8 goes beyond the size of the array, it will probably lock the Teensy up. I'm amazed it's not locking up as is.

    I loaded...
  37. Replies
    87
    Views
    1,139

    All of the waveform definition and selection...

    All of the waveform definition and selection stuff needs to be moved out of the NoteOn function. The idea is you want to read your pots inside loop(), and if the selected waveform has changed, apply...
  38. Replies
    87
    Views
    1,139

    Hey no worries, to be honest I am learning a ton...

    Hey no worries, to be honest I am learning a ton hearing a musician's perspective, and voice stealing is something I really needed to address on my synth.

    The way I showed above is very naive...
  39. Replies
    87
    Views
    1,139

    Well, one thing first, I see your max release...

    Well, one thing first, I see your max release time is nearly 12 seconds which seems pretty high to me, but then again I don't know what's considered normal.

    The other thing, these oscillators...
  40. Replies
    87
    Views
    1,139

    That looks better. Yes, that would be a scope...

    That looks better.

    Yes, that would be a scope problem. The variables defined inside setup() are only in scope for that method, and once that method is finished executing, they're no longer in...
  41. Replies
    87
    Views
    1,139

    One minor thing, you might want to move the...

    One minor thing, you might want to move the declarations "Bounce *mybutton[]" and "AudioFilterStateVariable *myfilter[]" outside of your loop() method.
  42. Replies
    87
    Views
    1,139

    Glad I could help!

    Glad I could help!
  43. Replies
    87
    Views
    1,139

    Looking good... The next level is multiple...

    Looking good...

    The next level is multiple detuned oscillators per voice... that's on my todo list for my synth at some point.
  44. Replies
    87
    Views
    1,139

    idleVoices is an array of bools, so it's...

    idleVoices is an array of bools, so it's perfectly valid syntax. You don't need to explicitly type "if(idleVoices[i] == true)", the compiler knows what you mean.
  45. Replies
    87
    Views
    1,139

    Scroll down in my code, IdleCheck is listed...

    Scroll down in my code, IdleCheck is listed there. It deactivates the oscillators (sets the amplitude to 0) once the corresponding envelope has finished. Setting the oscillator amplitude to 0 saves...
  46. Replies
    87
    Views
    1,139

    bool idleVoices[12] = {1, 1, 1, 1, 1, 1, 1, 1, 1,...

    bool idleVoices[12] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
    The "1" is very sloppy of me there. It should be "true" but I was just being lazy and my compiler doesn't seem to care.


    byte...
  47. Replies
    87
    Views
    1,139

    This is basically the system that I am using. It...

    This is basically the system that I am using. It does not allow note stealing. This code is edited a bit for clarity so there may be errors.


    bool idleVoices[12] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
  48. Mutable Instruments has also open sourced their...

    Mutable Instruments has also open sourced their Yarns midi interface: https://github.com/pichenettes/eurorack/tree/master/yarns

    I haven't poked around the design yet but it could provide some...
  49. Kind of hard to parse your question, but if you...

    Kind of hard to parse your question, but if you trying to play .wav or .raw files with a Teensy, the answer is "yes, you can". See here for an example:...
  50. Replies
    3
    Views
    198

    The first thing to know is that audio is...

    The first thing to know is that audio is processed in blocks of 128 samples. So if a phase reset needs to occur in the middle of a block, let's say, it won't be possible to reset the phase until the...
Results 1 to 50 of 141
Page 1 of 3 1 2 3