Shop OBEX P1 Docs P2 Docs Learn Events
New Propeller-based Product — Parallax Forums

New Propeller-based Product

JonnyMacJonnyMac Posts: 9,208
edited 2011-05-26 17:09 in Propeller 1
My friend, John Barrowman (also a former Parallax employee) and I have created our first Propeller-based EFX-TEK product, the AP-16+. This is a stereo WAV player that we target to entertainment-oriented businesses: the Halloween industry, amusement parks, museums, etc. It turns out that playing WAV files cleanly is not as easy as everyone makes out, and Chip assisted with a little object that cleans up the noise created by Duty Cycle mode when not using Cog 0 to drive the output.

Since I cannot attend UPEW we're sending a unit to Ken for show-and-tell. Those interested in how Chip helped clean-up the noise (not a lot, but enough to be noticed through the board's 20W amps) should chat with him. It made sense when he explained it, but I can't remember well enough to explain it myself.

The preliminary docs for the AP-16+ can be found here: www.efx-tek.com/files/ap-16_docs_preliminary.pdf


Now... this isn't our first foray into Propeller-based products; previously we had designed and built the DMX control boards for Ethereal FX (www.etherealfx.com). That product is doing well and they've asked us for more designs (yahoo!). We're also migrating our own products from the SX to the Propeller.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Jon McPhalen
Hollywood, CA

Post Edited (JonnyMac) : 6/19/2010 6:38:06 PM GMT
1173 x 1139 - 389K

Comments

  • Bill HenningBill Henning Posts: 6,445
    edited 2010-06-19 19:05
    Nice work guys! I will take a look at UPEW... nice to see an audio app for the prop.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
  • JonnyMacJonnyMac Posts: 9,208
    edited 2010-06-19 19:12
    Thanks, Bill. The AP-16+ has your 6.25MHz crystal driving it.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Jon McPhalen
    Hollywood, CA
  • Bill HenningBill Henning Posts: 6,445
    edited 2010-06-19 19:24
    Thanks Jon! I am glad you find my crystals useful [noparse]:)[/noparse]
    JonnyMac said...
    Thanks, Bill. The AP-16+ has your 6.25MHz crystal driving it.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com
    My products: Morpheus / Mem+ / PropCade / FlexMem / VMCOG / Propteus / Proteus / SerPlug
    and 6.250MHz Crystals to run Propellers at 100MHz & 5.0" OEM TFT VGA LCD modules
    Las - Large model assembler Largos - upcoming nano operating system
  • Cluso99Cluso99 Posts: 18,069
    edited 2010-06-21 03:58
    Congratulations!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
    · Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2010-06-21 04:23
    Cool. How does this device compare in performance, price and capability to say a Gilderfluke SD-25 or the MP3 player device that I think is available through SparkFun?

    The object for wav playing, will that be made public?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Timothy D. Swieter, P.E.
    www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, 3.0" 16:9 LCD Composite video display, eProto for SunSPOT, PropNET, PolkaDOT-51
    www.tdswieter.com
  • NarguleNargule Posts: 8
    edited 2010-06-21 09:27
    Looks like a great product!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Tom Corwine
  • JonnyMacJonnyMac Posts: 9,208
    edited 2010-06-21 15:22
    Timothy D. Swieter said...
    Cool. How does this device compare in performance, price and capability to say a Gilderfluke SD-25 or the MP3 player device that I think is available through SparkFun?

    The object for wav playing, will that be made public?

    I can tell you, we work with a lot of OEM prop builders that use/have used the SD-25 and all agree:

    1) It's louder given the same file (the only change was format via Audacity) through the same set of speakers
    2) Using WAVs, there is no start-up delay as is often the case using MP3s

    The latter issue is really important. One prop builder in Ohio (who creates very cool, high-end collectible items) loves that he can tie outputs from the show controller of his choice to the AUX input connections an *instantly* switch from one file to another -- no delay.

    Also, there is a price thing. The SD-25 is about $300; the AP-16 is $130 (1x; we give discounts at 5x and 10x). The AP-16+ includes many stand-alone features (trigger input, randomizing of files, relay output while playing, pre- and post-play delays, etc.) that are not found in other audio players. The fact is we scrapped our original AP-16 design (mono, ISD based) and went right to our biggest OEMs and asked what they wanted -- the AP-16+ is the result. And, finally, it uses a Propeller and we solder in the programming header so advanced users (like you!) can do anything they want. Ask Gilderfluke to do that for you.... (they'll laugh).

    My WAV player is just a variant of that originally created by Ray Allen; I cleaned it up, modified the buffering a bit, and added volume control. The big difference, as I hinted to earlier, is that my WAV object does not drive the outputs; it writes the volume-modified samples to the hub so that another object, loaded into Cog 1, can do that. The driver cog was created by Chip to reduce noise introduced by the way the way the hardware works with Duty Cycle mode and the distance between the cog doing the work (duty cycle output) and the physical pins used for output. Yes, that really matters. When I originally had my WAV driver (like Ray's) in Cog 5 you could hear significant noise through the 20W amps. Moving it to Cog 1 (hint for you WAV player programmers) made a big difference. Adding Chip's StereoDuty object took care of the rest; any noise now is lower than normal system noise.

    What Chip's object does is constantly update the outputs (as opposed to on the sample-rate timing interval) AND adds a bit of dither each time to counteract the noise. It works. We were just at a show last weekend and were thrilled to hear customers say that it sounded "amazing."

    I've attached a demo that uses my WAV player and Chip's StereoDuty object.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Jon McPhalen
    Hollywood, CA
  • Lord SteveLord Steve Posts: 206
    edited 2010-11-29 19:14
    Jon,

    Would you be willing to share your audio circuit for this project? I want to use the Propeller without a DAC IC but am having problems with noise on my project, linked below. I tried using Stereo Duty, but so far no success with the noise. Having another audio schematic to compare with would help, or if you can see any glaring problems with the schemetic or have any PCB layout tips for me, I would appreciate it.

    Thanks.
    --Steve

    My project:
    http://forums.parallax.com/showthread.php?t=121424&highlight=Raindrop
  • JonnyMacJonnyMac Posts: 9,208
    edited 2010-11-29 19:37
    We're using the circuit right off the demo board. That drives the line out (RCA) connections and feeds the power amps. No magic. The StereoDuty code is what did the clean-up.

    There is a setting inside StereoDuty that you may need to work with depending on the IO pins used in your project. See Chip's notes at the top of the file.
  • Lord SteveLord Steve Posts: 206
    edited 2010-11-30 19:05
    Jon,

    Did you have any trouble soldering the MAX4411 by hand for prototyping (or how did that work)?

    Thanks for the info.
    --Steve
  • lonesocklonesock Posts: 917
    edited 2010-11-30 23:54
    Jon, out of curiosity, is there any benefit to using cog 0 instead of cog 1? Something like the following as your starting PUB function:
    PUB load_cog_0
      cognew( Continue_Initialization, @Stack_For_Init )
      coginit( 0, @StereoDuty_pasm, @AudioSamples )
    
    Jonathan
  • JonnyMacJonnyMac Posts: 9,208
    edited 2010-12-01 12:00
    There can be, depending on the relationship between you IO pins for the DACs and the cog location on the die (I got this from Chip). I was able to write a little demo program that did that but couldn't get my AP-16+ code to do it (probably having to do with stack stuff that I could never sort out).
  • JonnyMacJonnyMac Posts: 9,208
    edited 2010-12-01 12:01
    Lord Steve wrote: »
    Jon,

    Did you have any trouble soldering the MAX4411 by hand for prototyping (or how did that work)?

    Thanks for the info.
    --Steve

    No -- because I didn't do it! My partner, John Barrowman (another former Parallaxian) is a master at soldering under a microscope. He also created pattern on the board that facilitated hand soldering that part.
  • TappermanTapperman Posts: 319
    edited 2011-05-26 07:06
    JonnyMac wrote: »
    My WAV player is just a variant of that originally created by Ray Allen; I cleaned it up, modified the buffering a bit, and added volume control. The big difference, as I hinted to earlier, is that my WAV object does not drive the outputs; it writes the volume-modified samples to the hub so that another object, loaded into Cog 1, can do that.

    Is the noise because of the delay in the HUB when its in Cog 5? I finally got around to playing with audio (struggling with RIFF structure at the moment) and it's tough!

    BTW, congradulations on your product!

    ... Tim
  • JonnyMacJonnyMac Posts: 9,208
    edited 2011-05-26 11:32
    It has to do with cog distance from the pin and pin updating. Chip solved this problem (for all of us) by creating an object called StereoDuty that constantly updates the outputs and adds noise (you can control how much based on which cog is being used) which is filtered out by the LP filter on the output. I know, it seems counter-intuitive, but it does in fact work. The AP-16+ has become a tremendously popular product and our customers are now asking for a 5.1 player in a similar format (we're going to wait on the Propeller II for that).
  • TappermanTapperman Posts: 319
    edited 2011-05-26 15:30
    JonnyMac wrote: »
    It has to do with cog distance from the pin and pin updating. Chip solved this problem (for all of us) by creating an object called StereoDuty that constantly updates the outputs and adds noise (you can control how much based on which cog is being used) which is filtered out by the LP filter on the output. I know, it seems counter-intuitive, but it does in fact work.
    src=[I][U]mb_rawb_spi.spin[/U][/I] DAT section
    496 longs is my total available space in the cog,
    and I want 128 longs for eventual use as one 512-
    byte buffer. This gives me a total of 368 longs
    to use for umount, and a readblock and writeblock
    for both Hub RAM and Cog buffers.
    

    Boy ... That's not at all what I thought the reason was! I read the comment above and had visions of the Hub taking to long to get from Cog0 to Cog5, with a queue of only 512 bytes.

    Is it even worse on the geography of the 40pin dip?

    ... Tim

    PS - Where does this product get used? In radio stations or something? (a Bit Naive)
  • JonnyMacJonnyMac Posts: 9,208
    edited 2011-05-26 17:09
    It gets used in live displays and and attractions. There are a bunch used in museums, they're very popular in haunted houses and Halloween props, a very famous rodent-friendly amusement park uses a few, there are industrial apps, etc. One friend of mine from the movie industry uses it in his full-scale R2D2 robot (he built a replica, it's not one of the bots from the actual movies).

    John (Barrowman) and I are very close to our customers and have been willing to design new products and updates to their desires. This simple strategy (build it and they will buy) has paid off. We have many more Propeller based products in development now.
Sign In or Register to comment.