WTPA 2.0 date

1111214161721

Comments

  • Keeping the hope up here....
  • Party People,
    So it's October.
    I basically fucked off for the month of September, nursing the burnout after the CK job and then the weird what-am-I-doing-my-life kind of postpartum depression you always get after a really big job.
    I have a small contract or two to finish (a couple days worth of hours) and then I'm back on WTPA2. I'll keep you posted.
    Holler,
    TB
  • we'll be here, faithfully and eager :)
  • yup. faithfully and eager
  • Oct. 16th Any update @ToddBailey ?

    Thanks
  • Hey! So I dragged out the code for WTPA2 a while back. It's interesting to look at code I wrote 4-5 years ago and it's all I can do not to re-write all of it sometimes.
    WTPA2 in addition to being a product is also a fun programming challenge for me. For instance, if you look here or on the site I get really into the maximum audio rate or time spent in interrupts. Looking at the code again now, I got really excited about that again because I know I can do better.

    This isn't entirely a good thing for the product :-)
    It was "basically fine" a long time ago. Most of the code that really NEEDS to be done has to do with the new user interface (dealing with 8 buttons vs 6) and the best way to think about how to use a sampler with a goofy control surface.

    TB
  • great to hear you are working on it... really looking forward to it :)
  • Damn the torpedos; full speed ahead!
  • Ummm...
    Phase. Lock and Loop!!!
  • Badass, the world needs more WTPAs
  • Hi guys,
    So I spent the day today re-writing the UI on WTPA2.
    WTPA1 needed lots of "modes" to get it to do all the things you wanted it to do, as well as some multi-key combinations.

    WTPA2 has 8 switches on the control surface instead of 6, so I was able to get rid of some of this goofiness and make a faster user interface and, I think, a more intuitive one.
    That was the biggest thing on the TODO list with the WTPA2 code and it's more or less finished.

    I still need to write a menu for loading and saving samples to the SD card, and there are still a couple weird bugs, but it's coming along.
    TB
  • music in my ears, sampled music
  • yaaaay!
  • Fixed some latent SD card issues, made the Makefiles easier to use. Found a slowdown when all three banks are playing that I'll want to fix.
  • sounds like a lot of progress :)
  • Get at me dog! ;)
  • edited November 2013
    Loading and saving SD card samples now has a menu which makes sense. Audio interrupts are 70% faster than they were before (meaning yesterday) which means snappy response and the ability for both banks and the SD card stream to do all the things they need to without stepping on each others' toes (if there was one bank, it could sample significantly over 100kHz!) I also started porting Andrew Reitano's Nintendo sample playing program to the mainline WTPA2 code.

    And just so I have it written down somewhere, the amount of time spent in ISRs was:
    11.45uS -- Recording
    13.13uS -- Playing back

    They're now:
    6.50uS -- Recording
    7.80uS -- Playing back

    The last time it was this fast was pre-WTPA1 release, when there was only one bank, there was no MIDI, the sample only played forward, there wasn't any granular synthesis, etc.
    Adding all that stuff significantly complicated the code. The last couple days I've spent getting it down to "simple" again.

    Also I don't suck as much at programming as I did in 2009.

    Onward,
    TB
  • You are awesome. If I win the lottery will you come and work for me?

    I had a dream the other night in which lou reed showed me this awesome keyboard thing. It was a little bit like a stylophone. I wrote it down and have called the design a luophone. I need help making my dreams come true! Unfortunately I am not an electrical engineer. I am however a printer, so I could handle the etching and silkscreening of circuit boards in-house.

    *sigh* lottery dreams.
  • gonna need a manual?
  • attack ramp or programable lfo? Modulation /fade between streams manually? That LVX drum thing has an interesting morph between kits mod, so a morph on a dial would be fun for dual sources.
  • getting to gimmie gimmie I know.
  • :-)
    Never hurts to ask, although the features are pretty fixed now.

    However, the two main sample banks can be combined in other ways besides addition. With most multichannel audio devices, the output equals channel A plus channel B.
    On WTPA2, you can choose whether you want to add the samples (the normal thing) or multiply them, subtract B from A, bitwise AND them or bitwise XOR them. So it _does_ allow you to mess with how you combine the two samples but it does not crossfade (or morph). It definitely makes for odd sounding results.

    Best,
    TB
  • XOR!?!?!? YOU NASTAYYY BOYYYEEE!
  • Is there anything else, like a bitwise OR? Or a bitwise NOT for playing back from one channel?
  • please don't pester The Wiz now, he's almost there :|
  • There isn't a bitwise OR, but there could be easily. Betcha a beer it would sound a lot like the bitwise AND. In either case three out of four possible combinations of bits result in the same output -- with the AND you need both bits to be 1 to get a 1 out, and with an OR you'd need them both to be 0 to get a 0 out. I bet those would sound similar. I'll try it if putting an extra jump in that jump table doesn't slow down the ISR (ISR speed has been my thing lately).

    Bitwise NOT -- not sure that makes sense. The function in question combines the two channels, so a NOT doesn't apply. Plus, with only one channel (with an unsigned number) you'd just flip the polarity of the signal 180 deg, and that wouldn't sound like anything.

    Thanks for keeping up with this!
    TB
  • Do you know any decent resources for learning assembly for an amateur? And any chips worth beginning with?
  • Learning assembly is not so bad once you have a working environment to program in and program the chip with. That will depend on the kind of computer you're using.
    You can do it hardc0re and use GCC and/or the GNU assembler, or you can make it easy on yourself and use the chip vendor's software. For AVRs this would be AVRStudio and for PICs it would be MPLAB.

    AVR is a good place to learn because its assembly instruction set is a lot more like that of other processors. PICs are OK too -- they have a small instruction set and a weird internal architecture but are very easy to learn. Get a chip with 16-28 pins -- it'll be big enough that it's easy to handle and you won't have to mux programming (ISP) pins with other stuff.

    If you go with AVR, try these tutorials:
    http://jaxcoder.com/Projects.aspx?id=912541054
    http://www.avr-tutorials.com/assembly/basics-assembly-language
    https://sites.google.com/site/avrasmintro/

    Start with a very easy goal. Get a pin to go from low to high on your chip. Then see if you can make it toggle or blink a light with it.

    NOTE -- with MCU programming in general but ESPECIALLY with assembly, you HAVE to know how the hardware on the chip works. Download the datasheet for the chip, and any programming guides or Technical Reference Manuals available.
    Lastly, if you DO go with an AVR, sign up at AVRFreaks.net. They're ornery but they'll help you if you ask your questions right. Be prepared to have thick skin about it though.

    Good luck! Feel free to ask back here if you have specific questions once you get started.
    TB
Sign In or Register to comment.