Rainbow synthesizer: polyphonic, multitimbral wavetable synthesis

mparkmpark Posts: 1,146
edited January 2009 in Propeller 1 Vote Up0Vote Down
I've been playing around with the Rainbow sound samples mentioned by Bob Lawrence here: http://forums.parallax.com/showthread.php?p=774541.

Attached is a half-minute demo of my latest music synthesis experiment. It's an mp3; just delete the .dat suffix.

Edit: Attached new version with cleaner ending.

Here's another piece (5 MB, 7 minutes): www.finitesite.com/mpark/propelbel.mp3

Edit: Attached source files.

Post Edited (mpark) : 1/18/2009 9:10:06 AM GMT

Comments

  • 20 Comments sorted by Date Added Votes
  • BaggersBaggers Posts: 2,965
    edited January 2009 Vote Up0Vote Down
    Cool, mpark [noparse]:D[/noparse] some good sounds coming out of the prop [noparse]:D[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • Tim-MTim-M Posts: 520
    edited January 2009 Vote Up0Vote Down
    Wow mpark, nicely done. I recognized your sample right away... you must be a Don Dorsey fan! I have have had several of his albums for a long time and still can't get enough of them! I'll follow your progress closely, thanks for sharing.

    Tim
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,080
    edited January 2009 Vote Up0Vote Down
    Great sample! and I thought I was the only Don Dorsey nut here!

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Check out: Protoboard Introduction , Propeller Cookbook 1.4 & Software Index
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
    <br>
  • mparkmpark Posts: 1,146
    edited January 2009 Vote Up0Vote Down
    I do like the one Dorsey CD I have, but really I'm a Bach fan.
  • Tim-MTim-M Posts: 520
    edited January 2009 Vote Up0Vote Down
    I'm a big Bach fan too. Combine Bach with the talent and arrangements of Don Dorsey, and WOW it goes to new level. Great choice for your Propeller projects...

    Tim
  • mparkmpark Posts: 1,146
    edited January 2009 Vote Up0Vote Down
    I don't know how this became a Don Dorsey appreciation thread, but whatever.

    New piece in first post. Another canon, but not by Bach.
  • Bob Lawrence (VE1RLL)Bob Lawrence (VE1RLL) Posts: 1,451
    edited January 2009 Vote Up0Vote Down
    Wow! sounds great!!! jumpin.gif How many other different sounds are you able to generate? What limitations have you found so far?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Aka: CosmicBob
  • mparkmpark Posts: 1,146
    edited January 2009 Vote Up0Vote Down
    I haven't tried them all, but I should be able to play any of the 18 Rainbow instruments. The main limitation is memory. The samples are 8 bit @ 11kHz, but they can still get pretty big. If you want multiple samples in memory, you have to pick and choose carefully.
    I'm getting 14 voice polyphony out of one cog, which I think is plenty (although I was really hoping for 16!).

    Btw, Bob, thanks a lot for the initial pointer to Rainbow's website. Everyone should go and check out the Easy-Chord(TM). Positively brilliant! www.rainbowelectronics.co.uk

    Post Edited (mpark) : 1/17/2009 5:16:24 PM GMT
  • Bob Lawrence (VE1RLL)Bob Lawrence (VE1RLL) Posts: 1,451
    edited January 2009 Vote Up0Vote Down
    mpark said...
    Btw, Bob, thanks a lot for the initial pointer to Rainbow's website. Everyone should go and check out the Easy-Chord(TM). Positively brilliant! www.rainbowelectronics.co.uk

    Anytime. If you post any code I'll give it a shot with the MIDI kit I have for my Steel Guitar. I am anxious to hear what the steel guitar wave files sound like . It's hard to get an idea from the online wave sample. Maybe I'll record a set of wave files with my steel guitar to learn how to do it. Also, my dad plays Dobro and I can record a set of wave files from it when he gets back from his winter in Florida..

    Re:Easy-Chord

    It's quite the thing. Great to get kids started and learn chord changes before they move up to real strings.

    I first read about it in the EPE Magazine (see reference below) I can't post the article because of copyright protection but I could answer a question if someone had one. Also, you can still order the article or magazine if interested.(see the last reference below)

    From The EPE web site:
    "PIC MIDI Wave Sound Generator — this wave table synthesis music generation source has a MIDI input and provides 18 wave table instruments on a preprogrammed flash memory. Includes pianos, guitars, banjo, trumpets and more. Eight-note polyphony spanning five octaves (C2 to C7). Audio line and headphone output.

    Straightforward PCB based assembly. Powered by a mains adaptor. This projects uses a PIC micro 16F628A, an 18F452 and a flash EEPROM type AM29F040. Source codes for all three devices are available free from our Downloads page. Preprogrammed chips are also available to buy online from the designer Rainbow Electronics."


    Dobro Reference:
    en.wikipedia.org/wiki/Dobro

    EPE Magazine Index reference: go to : Projects in the July 2008 issue
    www.epemag3.com/index.php?option=com_content&task=view&id=173&Itemid=53

    EPE Back issues: 07-July 2008 issue of EPE Online 40000708 $6.00
    www.epemag3.com/index.php?option=com_virtuemart&page=shop.browse&category_id=32&Itemid=26

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Aka: CosmicBob

    Post Edited (Bob Lawrence (VE1RLL)) : 1/17/2009 6:18:51 PM GMT
  • BaggersBaggers Posts: 2,965
    edited January 2009 Vote Up0Vote Down
    That's cool mpark sounds great [noparse];)[/noparse]
    and thanks for the link that's cool to [noparse]:D[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,080
    edited January 2009 Vote Up0Vote Down
    @mpark

    Regarding your latest MP3 post.. post some .spin or that didn't come out of a Propeller. <SMIRK>

    .. all kidding aside.. Incredible!

    Honestly, that is truly FANTASTIC! Any chance we can talk you into sharing your code?

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Check out: Protoboard Introduction , Propeller Cookbook 1.4 & Software Index
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS

    Post Edited (Oldbitcollector) : 1/18/2009 1:16:13 AM GMT
    <br>
  • mparkmpark Posts: 1,146
    edited January 2009 Vote Up0Vote Down
    Be careful what you wish for, OBC. Spin source in first post.

    You'll have to download the instrument samples file and run a program to extract the individual instrument samples into separate smaller files.

    The samples file was created by Mike Rainbow for his "PIC MIDI Wave Sound Generator" published in Everyday Practical Electronics, July 2008. The EPE website has the project files available for download (www.epemag.com; click Library). Get the zip file for July 2008 and extract PMWSG-29F040.bin. Run the program attached to this post (Windows/Mono executable, C# source) in the same directory as the .bin file. It will generate 34 smaller .bin files.

    Btw, I've been in contact with Mr. Rainbow and he doesn't mind us using his samples for non-commercial use. (I also convinced him to give the Propeller a try!)

    It might also be worth your while to buy the EPE back issue as Bob Lawrence posted yesterday. Mr. Rainbow goes into detail about how the samples were created, the file format, his dual-PIC-based design (hey, it's like a quarter-Prop), etc.

    Anyhoo, once you get the little .bin files, you should be able to run the programs at the top of this thread. Change SNDPIN to the appropriate value for your system. The tutorial program demonstrates the basics of using my sound driver. It's not pretty, but hopefully you'll be able to figure out how to play music in your own programs.

    Bwv1087 and Propelbel generated the demo songs.

    The usual caveats and disclaimers apply.

    Post Edited (mpark) : 1/18/2009 9:49:50 AM GMT
  • Bob Lawrence (VE1RLL)Bob Lawrence (VE1RLL) Posts: 1,451
    edited January 2009 Vote Up0Vote Down
    @mpark

    You made my day! Thanks!
    mpark said...
    You'll have to download the instrument samples file and run a program to extract the individual instrument samples into separate smaller files.

    So far so good. I was able to extract the individual instrument samples into separate smaller files cool.gif About 34 bin files ranging from 2kB to 13kB.



    Now for step 2......... turn.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Aka: CosmicBob

    Post Edited (Bob Lawrence (VE1RLL)) : 1/18/2009 2:35:48 PM GMT
  • BaggersBaggers Posts: 2,965
    edited January 2009 Vote Up0Vote Down
    Sounds really great mpark[noparse]:)[/noparse] as for 16 channels, try a Hybrid [noparse]:D[/noparse] 96Mhz = 20% more speed, = 20% more channels = 16.8 so you'd get 16 easy.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,080
    edited January 2009 Vote Up0Vote Down
    Very nice indeed.

    BST doesn't appear to support one of the commands you are using, so I've made the
    following adjustments.

    'byte JUMP, word @bassline
    byte JUMP, @bassline

    'byte JUMP, word @arpeggio
    byte JUMP, @arpeggio

    Not sure if this is critically changing the quality of the output, perhaps someone
    will cross-check this with Propeller tool, I'm in Ubuntu.

    Also, I didn't get a "synstrings_hi.bin" in my extraction, so I've shortened to "strings_hi.bin"

    When I started playing with the "Mellotron" stuff, I *KNEW* the Propeller could do this, but
    I had no idea it could be done with samples this small! wow.

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Check out: Protoboard Introduction , Propeller Cookbook 1.4 & Software Index
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
    <br>
  • Bob Lawrence (VE1RLL)Bob Lawrence (VE1RLL) Posts: 1,451
    edited January 2009 Vote Up0Vote Down
    Oldbitcollector said...
    Also, I didn't get a "synstrings_hi.bin" in my extraction, so I've shortened to "strings_hi.bin"

    I attached a copy for you.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Aka: CosmicBob


  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,080
    edited January 2009 Vote Up0Vote Down
    Thanks Bob! For some reason I didn't get either of the SynStrings.. I'm using Mono over here so maybe it changed something. Are you using Propeller Tool there? Mind trying my change and reporting back?

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Check out: Protoboard Introduction , Propeller Cookbook 1.4 & Software Index
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
    <br>
  • mparkmpark Posts: 1,146
    edited January 2009 Vote Up0Vote Down
    That's weird about synstring. Sorry I can't help, being OS-challenged here.

    Btw, let's not get into the habit of posting individual sample files, please. Let synstring be the exception, not the rule (as I'm sure it is; I'm just sayin'). EPE is being good enough to provide the file for free; the least we can do is visit their website and look at their ads.

    Along those lines, visit www.rainbowelectronics.co.uk and drop Mike Rainbow a note to let him know his work is appreciated.


    OBC, I think you should report that "word @bassline" bug to Brad. It comes in handy sometimes.

    Baggers -- good point [noparse]:)[/noparse]
  • Bob Lawrence (VE1RLL)Bob Lawrence (VE1RLL) Posts: 1,451
    edited January 2009 Vote Up0Vote Down
    Baggers said...
    try a Hybrid :

    I did a quick test with the Hybrid and it seemed to work fine. If someone wants to make some changes to maximize the Hybrid's additional speed I can try it.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Aka: CosmicBob
Sign In or Register to comment.