I'd like to draw your attention to an interesting project about an FPGA-based music synthesizer.
A remarkable feature is that the designer (George Pantazopoulos) is using Python for all front-end development work. In particular, all FPGA hardware is designed using MyHDL, a Python-based hardware description language. This project demonstrates that this technology is real and practical.
The project page, including photos and synthesized sound samples, is here:
Not really, I know a guy that built a SID clone using mostly 74xxx parts. I also know another guy that wrote his own schematic capture in order to design, thats right, a SID clone. Does this demonstrates that their technology was real and practical?
That page has been there for a long while. And I am still waiting for the source code so I can form my own opinion. George, are you listening?
Jan is talking about MyHDL itself, not PhoenixSID per se. Perhaps he could have been clearer.
That said, rest assured my project is real; I even took it on the road and did a live demonstration of it at UMass Lowell (and got paid for it to boot). I'm still working on the practical part ;-) And I know I'll get there!
Even a basic glance at the project page would show that I've been putting in steady effort over many months of my spare time, following through on my idea, which also has consistently been demo-ready even while under development.
1) I have no idea who you are. Someone did ask me for it, but it surely was a different person. They were quite polite and respectful.
2) Who said you had to wait for the PhoenixSID source code to get a feel for MyHDL?
It's not that hard to try it yourself. Hell, all the tools are free: Python, MyHDL, even Xilinx WebPACK ISE The Digilent Spartan3 board can be had for as little as $99.
The MyHDL cookbook (easily accessible from the front page of the Wiki) contains examples that range from simple D-flip flops all the way to a Cordic Sine Computer and a recursive Bitonic Sorter.
The tutorials are rich in detail and insight. The knowledge they contain can readily be used to make your own, more complex designs. Often, the full design flow from MyHDL->Verilog->FPGA (including unit tests) is shown.
Try starting off with a blinking LED demo. That's what worked for me.
3) I spent months of my free time working hard and continually learning to create PhoenixSID, and I had tons of fun in the process.
I learned far, far more than how to build a "SID clone". Among the things I've learned are serious Python skills, digital hardware design, analog hardware design, synthesizer design, widely applicable engineering skills, problem solving, stress management, how to stay motivated and follow through on a long-term, difficult goal, people and presentation skills, how to combine my love of music with my love of electronics and engineering in a productive way and I even had some valuable insights about life in general along the way.
Why do you feel entitled to my source code? What have you contributed?
Even though I'm still considering my license options I still want to share my knowledge somehow. So, in the meantime, I'd like to write some tutorials for the website. Also, I'm working on the MyHDL Booster package (see below), which will be open and free. I'm a busy person so that may be a little while still.
Also, I'm planning a huge improvement to PhoenixSID that requires significantly more complexity in the hardware invloved. Rather than blindly jump into that, I've been experimenting with techniques to simplify and streamline the process and make it much more fun.
To make sure MyHDL Booster will be applicable to a real project and not just an academic exercise, I'm working on it in tandem with real, synthesizable, working examples, (including the next upgrade to PhoenixSID) and using the feedback to improve MyHDL Booster. This takes time, effort, imagination, insight, patience and persistence.
George, are you
Besides all the work mentioned above, I've been holding down a full-time engineering job with a major company, practicing guitar, taking voice lessons, playing in a band and keeping up an active social life.
I don't have time for people who troll newsgroups instead of offering constructive feedback.
Be clear, respectful and specific with your questions and feedback, do your homework and have something to offer.
Hey I must congratulate you. The SID was one of the best sounding synthesizer chips during the early 80s. Though I must say that it is no match for the FM synthesizers though. The fidelity on FM synthesizers was unmatched by the sampled crap in the SNES and other systems.
I seem to remember the original SID chip had somewhat of a bug in which many composers exploited to produce the drum sound. Something to do with changing an amplitude register?
Envelope Control (unheard of in other PSG's) and Pulse Width Modultion (Makes some interesting sounds).
May I ask, have you tried some tunes in your simulator? All you need is a 6502 CPU emulator to run the C64 code for the synth control. You can find many free emulators or you can make your own in Python. The 6502 core is quite simplistic.
Also how did you make the DAC? I still dont understand how to do that with an FPGA, gotta read up on it. Or did you just generate the waveforms for each channel seperately and summed them up w/ analog circuity?
Sorry if it sounded that way, I wasn't out to troll or offend anyone. And I don't have had any "homework" to do the past 10 years, and even if I did, I am not sure how the PhoenixSID could help me cheating.
Jan used your project to promote MyHDL. We have all tested the led-blink stuff in MyHDL, what we would like to see more of is a real-world project that shows us how MyHDL scales and deals with real-world problems.
For your information, there are many SID clones out there, some public but many more private. I even know a musician who while working as a VLSI engineer "smuggled" a _very_ authentic SID and a simplified 6502 into an ASIC/FPGA project (when they only needed a "beeping" sound). I know it is hard to believe, but I have the prototype board running on my desk, playing old C64 songs.
Now, I understand that PhoenixSID is important to you. And I am not underestimating the amount of work you had to put on it. However, if I express my wish to see the code, it does not automatically mean I am trolling or trying to "steal" your code.
hope I didn't offend you again, -burns (who writes HDL for living and have multiple open source projects on SourceForge and soon also on OpenCores.org).