element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
FPGA
  • Technologies
  • More
FPGA
Forum Intermediate steps before progressing to fpga.
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join FPGA to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 13 replies
  • Subscribers 553 subscribers
  • Views 1441 views
  • Users 0 members are here
  • audio
  • fpga
  • dsp
  • synthesis
Related

Intermediate steps before progressing to fpga.

ohmgroan
ohmgroan over 7 years ago

Hello everybody.

 

I am a musician who can no longer perform at the level I'm accustomed to due to injury. While this sounds sad, I am very positive and excited about my new direction, as it has provided me with the impetus and the time to work towards a childhood dream: designing and making my own gear. I started off simply by buying the hx-3 board from keyboard partner; a hammond organ on a FPGA. This project meant all the hard work was done for me, leaving just some soldering, resistors,pots, switches and config etc. Following on from this I have experimented with arduino and standalone AVRs to create some midi controllers, and used the asus tinkerboard as a spotify/iplayerradio over SPDIF.

 

Inspired by a couple of individuals on the internet I am currently working on a couple of projects, namely the arduino solina string synth (which I have redisigned to be a standalone atmega device) and the raspberry Pi mellotron, which I am attempting to do my own way without instruction, due to having years of linux experience.

 

The thing is, although these are great projects in their own right, I really see them as baby steps towards my end goal, which I envision will be largely DSP/FPGA based. However I still find these technologies quite intimidating, and I feel if I try to jump straight in, I may quickly kill my enthusiasm and perseverance.

 

Can anybody please recommend any direction that may either provide some intermediate steps, or perhaps some development packages that introduce these technologies in a friendly, logical way. They don't have to be super powerful, as long as they can provide the means to develop my skills.

 

I should mention that my knowledge of the logical topologies of synths and other audio equipment is good, I just need to learn how to use these technologies to implement my ideas.

 

Any advice will be greatly appreciated.

  • Sign in to reply
  • Cancel

Top Replies

  • johnbeetem
    johnbeetem over 7 years ago +9
    Great projects! I'm actually planning to do something similar over the next few years. I've been totally swamped with family obligations over the last few years which has minimized the time I've been able…
  • Jan Cumps
    Jan Cumps over 7 years ago in reply to johnbeetem +8
    Sounds great. Where I think the Pi will as difficult as an FPGA is with the timing. Deterministic timings over linux are in the same cliff of madness league as the one you mention in your post. Everything…
  • ohmgroan
    ohmgroan over 7 years ago in reply to Jan Cumps +7
    I'm hoping that works to my advantage, as I can't really claim to be software-inclined. I find hardware to be the easy part, that said, because my electronics projects are all music/audio/midi based, I…
  • johnbeetem
    johnbeetem over 7 years ago

    Great projects!  I'm actually planning to do something similar over the next few years.  I've been totally swamped with family obligations over the last few years which has minimized the time I've been able to invest in FPGAs and single-board computers, but those obligations should be almost over.  I played clarinet and keyboards when I was a kid, but my life's work and other things minimized the time I could spend with music.  I'm hoping that will change very soon.

     

    Modern technology allows one to do keyboard scanning and music synthesis at amazingly low cost.  There's tons of free resources on the 'net, including samples of antique instruments that can be brought to life with a modern keyboard and cheap computing.  My first projects include:

     

    1.  Get a modern 76-key keyboard -- e.g., a used Yamaha YPG-235 -- and use it as is to get my keyboard skills back, but also use it as a MIDI controller for a home-brew synthesizer, probably based on a Raspberry Pi 2.  I want to be able to do things like historic tunings, which you can't do with an inexpensive synth like the YPG-235, but a home-brew synth can do anything.

     

    2.  Get an old organ console with 2 manuals and full 32-note AGO pedalboard.  You see those on Craig's List from time to time for free or next-to-nothing.  The electronics don't need to function: I want to convert the keyboards and stop switches into a MIDI controller, and then use a RasPi 2 as a synthesizer.  I'll pipe the audio back into the organ's audio amplifier (which may or may not need to be replaced).  Great way to revive an old organ that would otherwise end up in a landfill.  There's something mind-boggling about replacing hundreds of discrete transistors (or even vacuum tubes) with a dinky little RasPi (with billions of transistors).

     

    So to your original question:  I'm an FPGA guy but I'm not planning to use FPGAs for these projects. Instead I want to use the DSP capabilities built into RasPi's SoC, which include (I think) vector capability on the ARM's floating-point unit and (with a bit more work) supercomputer capability with the VideoCore GPU.  I think there's way more processing power available than I need.  A sampling synthesizer needs lots of memory for samples, so I'll be using most of the 1 GB just for samples.  (One could use Flash, but flash wears out if it's re-read too many times.)

     

    FPGAs are a fun alternative.  First, go through the usual FPGA learning process --it's the same for all applications.  FPGAs have a steep learning curve, also known as "The Cliffs of Insanity".  Once you're experienced with generic FPGA applications, it should be fairly clear how to use them as a platform for music synthesis.  It's just a bunch of multiplies and adds, so if you're using an FPGA family that has hard multiply/accumulate macros it's pretty straightforward.  But it's probably easier to do those same multiplies and adds with RasPi's DSP instructions and its GPU.

    • Cancel
    • Vote Up +9 Vote Down
    • Sign in to reply
    • Cancel
  • dougw
    dougw over 7 years ago

    It sounds like you guys should collaborate on a project like this one:

    https://www.crowdsupply.com/benti/democracy-dev

     

    Here are couple of other platforms that might be useful to get started:

    https://embeddedmicro.com/products/mojo-v3

    Papilio FPGA Platform

    https://rocketboards.org/foswiki/Documentation/NetworkedProAudioFPGASoCDevelopmentKitByCoveloz

    • Cancel
    • Vote Up +6 Vote Down
    • Sign in to reply
    • Cancel
  • Jan Cumps
    Jan Cumps over 7 years ago in reply to johnbeetem

    Sounds great. Where I think the Pi will as difficult as an FPGA is with the timing. Deterministic timings over linux are in the same cliff of madness league as the one you mention in your post. Everything else is most likely simpler on the Pi for a software-inclined person ...

    • Cancel
    • Vote Up +8 Vote Down
    • Sign in to reply
    • Cancel
  • ohmgroan
    ohmgroan over 7 years ago

    Thank you for such a considered response John.

     

    It seems you have some similar ideas to my own, I certainly intend to use organ parts for the atmel solina and raspi mellotron, as there is no need for velocity, channel pressure or aftertouch.

    I have been prototyping a control panel that does for those paddle type pots found on early yamaha organs what rotary encoders do in place of regular pots.

    My main motivation for this is to make a modern equivalent of the control surface of early Yamaha's like the GX-1; I'm just a little obsessed by this instrument, in particular the inclusion of manual couplers that can be blended as opposed to simply on/off. I've also built a knee lever, but lets be honest, that's just an expression pedal in different clothing.

    A good size pedalboard is also something I'm keen to build, although I have absolutely no experience of playing them, and I'm not much of a dancer, so it would be interesting.

     

    From your input, I think I should just go right ahead and dip my toe into the FPGA domain, this leaves just one question:

     

    Of the FPGA boards available, which are best supported by the community, with plenty of clear examples?

     

    Thanks in advance.

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
  • ohmgroan
    ohmgroan over 7 years ago in reply to dougw

    Thank you Douglas.

    While I was typing my last response you preempted my next question, and offer some great selections.

    I've been aware of Papillo and mojo for some time, and those other two certainly look worthy of further reading.

    Thanks again.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • ohmgroan
    ohmgroan over 7 years ago in reply to Jan Cumps

    I'm hoping that works to my advantage, as I can't really claim to be software-inclined. I find hardware to be the easy part, that said, because my electronics projects are all music/audio/midi based, I am finding myself making the same elemental circuits over and over, making them easy to remember. Whereas on the software side I often have to carefully consider or research every step. I have heard it said, that you have to un-think previous programming knowledge when migrating to FPGA, and fortunately, there is little for me to unthink.

     

    Thanks Jan.

    • Cancel
    • Vote Up +7 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 7 years ago in reply to ohmgroan

    ohmgroan  wrote:

     

    Of the FPGA boards available, which are best supported by the community, with plenty of clear examples?

     

    I'm not the best one to ask: my FPGA use goes back decades so I haven't needed new user resources for a long time.  I am impressed with the Papilio (Gadget Factory) resources from skimming them quickly.  I have three Papilio boards and I love the way they bring out so many I/Os.  Not long ago Papilio's creator had to take a day job so he's not able to devote as much time to Papilio as he used to, but I think there's a lot of resources accumulated over time.

     

    Lucie Tozer's DEO-NANO blog is excellent for showing how to climb the learning curve as a new user.

     

    There have been some great discussions over the years at the element14 FPGA group:

     

    Barriers to designing with FPGAs?

    Some FPGA Beginner Questions

    Not-as-expensive FPGA Boards

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 7 years ago in reply to Jan Cumps

    Jan Cumps  wrote:

     

    Sounds great. Where I think the Pi will as difficult as an FPGA is with the timing. Deterministic timings over linux are in the same cliff of madness league as the one you mention in your post. Everything else is most likely simpler on the Pi for a software-inclined person ...

    Thank you for the warning.  I'm hoping that the audio output device will do a good job of deterministic timing, so all my user space software needs to do is buffer up output samples.  The nice thing about an organ is that you expect some latency between pressing a key and hearing the sound, especially if it's a pipe organ where the pipes are a significant distance from the console.  That gives you some buffering time to play with.  You don't have that luxury with a harpsichord or fortepiano.  I wish it were practical to program RasPi at the bare metal so that I wouldn't have to fight with the operating system.  It may be that using the GPU as a DSP engine will make the timing easier.  In this case RasPi would be running headless so virtually all of the GPU can be devoted to DSP.  Also, the fact that RasPi 2 has four ARM cores ought to make this easier since one or two cores can be dedicated to music-making, leaving two cores for management functions.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • genebren
    genebren over 7 years ago in reply to Jan Cumps

    The timing aspects of linux and windows is problematic.  To deal with the non-deterministic timing, I have used small co-processors (either CPLD, FPGA or tight real-time microprocessor) to sample and/or update on a more periodic interval.  I stream data to/from the co-processor which then processes in real-time and if necessary replies to the main processor.  This has worked well in most cases, but long latency in windows caused challenges.

     

    Good luck,

    Gene

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • ohmgroan
    ohmgroan over 7 years ago in reply to johnbeetem

    Thanks again for your input, John.

     

    The links you've provided not only point directly to some good reading, but also the links on those pages open up a whole fractal of recursive links. I swear, if I click on them all I will have read the entire internet. image

     

    Above all, the feedback on this page as convinced me it's time to quit stalling. It's official my next dev board will be FPGA; I'm still deciding which one, and I have a lot of good information to help me decide.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube