Main.YM2149MIDISynthesizer History

Hide minor edits - Show changes to output

April 20, 2012, at 12:30 PM by Jack Gassett -
Changed line 7 from:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 soft processor]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the [[http://en.wikipedia.org/wiki/MOS_Technology_SID|C64 SID]], [[http://en.wikipedia.org/wiki/Atari_POKEY|Atari POKEY]], and [[http://en.wikipedia.org/wiki/YM2149|YM2149]] into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. Fortunately, Alvaro had already done the heavy lifting of converting the YM2149 into a wishbone core and integrating it into his amazing ZPUino Soft Processor. So it only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
to:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 soft processor]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the [[http://en.wikipedia.org/wiki/MOS_Technology_SID|C64 SID]], [[http://en.wikipedia.org/wiki/Atari_POKEY|Atari POKEY]], and [[http://en.wikipedia.org/wiki/YM2149|YM2149]] into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. Fortunately, Alvaro had already done the heavy lifting of converting the YM2149 into a wishbone core and integrating it into his amazing [[http://www.alvie.com/zpuino/index.html|ZPUino Soft Processor]]. So it only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
April 20, 2012, at 12:28 PM by Jack Gassett -
Changed line 7 from:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 soft processor]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the [[http://en.wikipedia.org/wiki/MOS_Technology_SID|C64 SID]], [[http://en.wikipedia.org/wiki/Atari_POKEY|Atari POKEY]], and [[http://en.wikipedia.org/wiki/YM2149|YM2149]] into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. Lucky for us Alvaro had already done the heavy lifting of converting the YM2149 into a wishbone core and integrating it into his amazing ZPUino Soft Processor. So it only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
to:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 soft processor]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the [[http://en.wikipedia.org/wiki/MOS_Technology_SID|C64 SID]], [[http://en.wikipedia.org/wiki/Atari_POKEY|Atari POKEY]], and [[http://en.wikipedia.org/wiki/YM2149|YM2149]] into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. Fortunately, Alvaro had already done the heavy lifting of converting the YM2149 into a wishbone core and integrating it into his amazing ZPUino Soft Processor. So it only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
April 20, 2012, at 12:28 PM by Jack Gassett -
Changed line 7 from:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 soft processor]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the [[http://en.wikipedia.org/wiki/MOS_Technology_SID|C64 SID]], [[http://en.wikipedia.org/wiki/Atari_POKEY|Atari POKEY]], and [[http://en.wikipedia.org/wiki/YM2149|YM2149]] into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
to:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 soft processor]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the [[http://en.wikipedia.org/wiki/MOS_Technology_SID|C64 SID]], [[http://en.wikipedia.org/wiki/Atari_POKEY|Atari POKEY]], and [[http://en.wikipedia.org/wiki/YM2149|YM2149]] into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. Lucky for us Alvaro had already done the heavy lifting of converting the YM2149 into a wishbone core and integrating it into his amazing ZPUino Soft Processor. So it only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
April 20, 2012, at 12:19 PM by Jack Gassett -
Changed line 1 from:
!!YM2149 MIDI Synthesizer
to:
!!YM2149 MIDI Synthesizer on ZPUino Soft Processor
April 17, 2012, at 12:18 PM by Dhia Khaladi -
Changed lines 5-6 from:
%width=300% [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]] [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]]
to:
%width=300 center% [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]] [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]]
Changed line 9 from:
(:youtube sbCybapnKTw width=560 height=349:)
to:
%center%(:youtube sbCybapnKTw width=560 height=349:)
April 12, 2012, at 05:56 PM by Jack Gassett -
Changed line 85 from:
The example code and documentation is released under a Creative Commons Attribution license. Please use the code any way you want but do the right thing and mention the ZPUino, Papilio, and FPGAArcade if you are porting this project to other hardware. (Yes, we are looking at you Cyber Cortex.)
to:
The example code and documentation is released under a Creative Commons Attribution license. Please use the code any way you want but do the right thing and mention the Papilio if you are porting this project to other hardware. Especially if it is a closed source FPGA board like the Cyber Cortex.
April 12, 2012, at 11:12 AM by Jack Gassett -
Changed line 19 from:
* [[http://www.gadgetfactory.net/papilio/|Papilio One 500]] with:
to:
* [[http://www.gadgetfactory.net/papilio/|Papilio One 500K]] or [[http://www.gadgetfactory.net/papilio/|Papilio One 250K]]with:
Changed lines 27-28 from:
* [[https://github.com/alvieboy/ZPUino-HDL/raw/master/zpu/hdl/zpuino/boards/papilio_one/s3e500/variants/apollo/releases/latest/bitfiles/zpuino-1.0-papilioone-500-apollo.bit|ZPUino "Apollo" variant bit file.]]
to:
* [[https://github.com/alvieboy/ZPUino-HDL/raw/master/zpu/hdl/zpuino/boards/papilio_one/s3e500/variants/apollo/releases/latest/bitfiles/zpuino-1.0-papilioone-500-apollo.bit|ZPUino "Apollo" variant bit file for Papilio One 500K.]]
* [[https://github.com/alvieboy/ZPUino-HDL/raw/master/zpu/hdl/zpuino/boards/papilio_one/s3e250/variants/apollo/releases/latest/bitfiles/zpuino-1.0-papilioone-250-apollo.bit|ZPUino "Apollo" variant bit file for Papilio One 250K
.]]
Changed line 37 from:
* Ensure that you have the [[https://github.com/alvieboy/ZPUino-HDL/raw/master/zpu/hdl/zpuino/boards/papilio_one/s3e500/variants/apollo/releases/latest/bitfiles/zpuino-1.0-papilioone-500-apollo.bit|ZPUino "Apollo" variant]] that includes the YM2149 audio chip loaded to the SPI Flash of your Papilio.
to:
* Ensure that you have the ZPUino "Apollo" variant bit file (see download section) that includes the YM2149 audio chip loaded to your Papilio. (We recommend loading it to SPI Flash.)
April 12, 2012, at 10:59 AM by Jack Gassett -
Changed line 7 from:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 release]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the [[http://en.wikipedia.org/wiki/MOS_Technology_SID|C64 SID]], [[http://en.wikipedia.org/wiki/Atari_POKEY|Atari POKEY]], and [[http://en.wikipedia.org/wiki/YM2149|YM2149]] into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
to:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 soft processor]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the [[http://en.wikipedia.org/wiki/MOS_Technology_SID|C64 SID]], [[http://en.wikipedia.org/wiki/Atari_POKEY|Atari POKEY]], and [[http://en.wikipedia.org/wiki/YM2149|YM2149]] into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
April 12, 2012, at 10:51 AM by Jack Gassett -
Added line 44:
* Once you are done playing check out the [[http://audio.gadgetfactory.net/index.php?n=Main.YM2149Flash|sketch to play YM files]].
April 12, 2012, at 10:50 AM by Jack Gassett -
April 12, 2012, at 10:44 AM by Jack Gassett -
Changed lines 11-12 from:
'''Whats next?'''
to:
'''Whats next?'''\\
Changed lines 20-22 from:
** Arcade MegaWing
** MIDI-Audio
Wing
** Audio Wing
to:
** [[http://papilio.gadgetfactory.net/index.php?n=Papilio.MIDIAudioWing|MIDI-Audio Wing]]
Changed line 25 from:
* [[https://github.com/GadgetFactory/Sketches/tree/master/Audio/YM2149_SPI_Flash|Source code]]
to:
* [[https://github.com/GadgetFactory/Sketches/tree/master/Audio/YM2149_Synth|Source code]]
April 12, 2012, at 10:40 AM by Jack Gassett -
Deleted lines 48-56:
!!!Links to existing projects
||width=110% cellspacing=40
||%width=150%[[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:Ym2149_1.png]]||[[YM2149 Gets New Life]]||
* http://hackaday.com/2010/08/15/ym2149-gets-new-life/
* http://hackaday.com/2011/07/20/followup-portable-sid-player-is-now-pc-output/
* http://hackaday.com/2011/06/03/portable-sid-plays-chiptunes/
* http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/
* http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294
Added lines 57-65:
!!!Links to related projects
>>lrindent round<<
* http://hackaday.com/2010/08/15/ym2149-gets-new-life/
* http://hackaday.com/2011/07/20/followup-portable-sid-player-is-now-pc-output/
* http://hackaday.com/2011/06/03/portable-sid-plays-chiptunes/
* http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/
* http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294
>><<
Added line 72:
>>lrindent round<<
Added line 81:
>><<
April 12, 2012, at 10:38 AM by Jack Gassett -
Changed lines 7-8 from:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 release]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the C64 SID, Atari POKEY, and YM2149 into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
to:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 release]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the [[http://en.wikipedia.org/wiki/MOS_Technology_SID|C64 SID]], [[http://en.wikipedia.org/wiki/Atari_POKEY|Atari POKEY]], and [[http://en.wikipedia.org/wiki/YM2149|YM2149]] into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
Changed line 20 from:
* Papilio One 500 with:
to:
* [[http://www.gadgetfactory.net/papilio/|Papilio One 500]] with:
April 12, 2012, at 10:17 AM by Jack Gassett -
Changed lines 3-4 from:
While browsing through past HackaDay articles looking for projects to spark the imagination we noticed a trend. It seems that people are keen on connecting the audio chips from old computer and arcade games to their Arduino! Heck, while we were writing this wiki page a [[http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/|new project showed up on hackaday]]!
to:
While browsing through past [[http://hackaday.com|HackaDay articles]] looking for projects to spark the imagination we noticed a trend. It seems that people are keen on connecting the audio chips from old computer and arcade games to their Arduino! Heck, while we were writing this wiki page a [[http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/|new project showed up on hackaday]]!
Changed lines 7-8 from:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new ZPUino 1.0 release to take this type of project to the next level on the Papilio! By using the Open Source VHDL files for popular audio chips from places like FPGAArcade.com and Opencores.com we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the C64 SID, Atari POKEY, and YM2149 into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
to:
Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 release]] to take this type of project to the next level on the Papilio FPGA! By using the Open Source VHDL files for popular audio chips from places like [[http://fpgaarcade.com|FPGAArcade.com]] and [[http://opencores.com|Opencores.com]] we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the C64 SID, Atari POKEY, and YM2149 into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
Changed lines 13-16 from:
The ZPUino 1.0 release has a C64 SID, POKEY, and YM2149 cores integrated into the codebase. So the next step is to make a MIDI synthesizer with the C64 SID core. The C64 SID has built in support for ADSR envelopes so we can define instruments such as a trumpet, drum, piano, or organ. If we can get the SID, POKEY, and YM2149 cores all running at the same time and can define instruments with the SID then we can use buttons to switch between which chip or instruments we are playing.

The ultimate goal is to get as many audio cores
as we can find converted to work with the ZPUino. There is open source VHDL for NES, Atari 2600, SoundBlaster FM synth, and other sound chips that are available. It would be fun to be able to play all of them individually, together, or create a hybrid that uses 3 SID voices, 3 YM2149 voices, and 3 POKEY voices. Or we could make a SUPER SID that implements 20 SID voices instead of just 3. The FPGA gives us the ability to create things that have never existed in hardware before.
to:
The [[http://www.gadgetfactory.net/2012/04/zpuino-1-0-version-is-now-officially-released/|ZPUino 1.0 release]] has C64 SID, POKEY, and YM2149 audio cores integrated into the codebase. So the next step is to make a MIDI synthesizer with the C64 SID core. The C64 SID has built in support for ADSR envelopes so we can define instruments such as a trumpet, drum, piano, or organ very easily in our sketch. If we can get the SID, POKEY, and YM2149 cores all running at the same time and can define instruments with the SID then we can use buttons to switch between which chip or instruments we are playing.

The ultimate goal is to get
as many audio cores as we can find converted to work with the ZPUino. There is open source VHDL for NES, Atari 2600, SoundBlaster FM synth, and other sound chips that is available. It would be fun to be able to play all of them individually, together, or create a hybrid that uses 3 SID voices, 3 YM2149 voices, and 3 POKEY voices. Or we could make a SUPER SID that implements 20 SID voices instead of just 3. The FPGA gives us the ability to create things that have never existed in hardware before.
April 12, 2012, at 10:11 AM by Jack Gassett -
Changed line 2 from:
>>lrindent round<<
to:
>>indent round<<
Changed line 5 from:
%width=300% [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]] [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]]
to:
%width=300% [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]] [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]]
April 12, 2012, at 10:10 AM by Jack Gassett -
Changed lines 5-6 from:
%width=200% [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]] [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]]
to:
%width=300% [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]] [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]]
Added lines 9-10:
(:youtube sbCybapnKTw width=560 height=349:)
Added line 12:
April 12, 2012, at 10:08 AM by Jack Gassett -
Changed line 5 from:
%width=400% [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]] [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]]
to:
%width=200% [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]] [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]]
April 12, 2012, at 10:08 AM by Jack Gassett -
Added line 1:
!!YM2149 MIDI Synthesizer
Changed lines 5-7 from:
%width=300% [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]] [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]]
to:
%width=400% [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]] [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]]
Changed lines 9-12 from:
!!!Whats next?
to:
'''Whats next?'''
The ZPUino 1.0 release has a C64 SID, POKEY, and YM2149 cores integrated into the codebase. So the next step is to make a MIDI synthesizer with the C64 SID core. The C64 SID has built in support for ADSR envelopes so we can define instruments such as a trumpet, drum, piano, or organ. If we can get the SID, POKEY, and YM2149 cores all running at the same time and can define instruments with the SID then we can use buttons to switch between which chip or instruments we are playing.

The ultimate goal is to get as many audio cores as we can find converted to work with the ZPUino. There is open source VHDL for NES, Atari 2600, SoundBlaster FM synth, and other sound chips that are available. It would be fun to be able to play all of them individually, together, or create a hybrid that uses 3 SID voices, 3 YM2149 voices, and 3 POKEY voices. Or we could make a SUPER SID that implements 20 SID voices instead of just 3. The FPGA gives us the ability to create things that have never existed in hardware before.
April 12, 2012, at 09:57 AM by Jack Gassett -
Added line 1:
>>lrindent round<<
Changed lines 11-27 from:
[[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Kalshagar project]]
%width=300% Attach:Ym2149_1.png
[[http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/|Oryx project]]
Attach:ym2149_6.jpg
Attach:ym2149_4.jpg
Attach:ym2149_5.jpg

!!!Links to existing projects
||width=110% cellspacing=40
||%width=150%[[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:Ym2149_1.png]]||[[YM2149 Gets New Life]]||
* http://hackaday.com/2010/08/15/ym2149-gets-new-life/
* http://hackaday.com/2011/07/20/followup-portable-sid-player-is-now-pc-output/
* http://hackaday.com/2011/06/03/portable-sid-plays-chiptunes/
* http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/
* http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294
to:
>><<
Added lines 43-51:

!!!Links to existing projects
||width=110% cellspacing=40
||%width=150%[[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:Ym2149_1.png]]||[[YM2149 Gets New Life]]||
* http://hackaday.com/2010/08/15/ym2149-gets-new-life/
* http://hackaday.com/2011/07/20/followup-portable-sid-player-is-now-pc-output/
* http://hackaday.com/2011/06/03/portable-sid-plays-chiptunes/
* http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/
* http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294
April 12, 2012, at 09:56 AM by Jack Gassett -
Changed line 3 from:
%width=300% [[[[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]] Attach:ym2149_4.jpg
to:
%width=300% [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]] [[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:ym2149_4.jpg]]
April 12, 2012, at 09:55 AM by Jack Gassett -
Changed line 3 from:
%width=300% Attach:Ym2149_1.png Attach:ym2149_6.jpg
to:
%width=300% [[[[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Attach:Ym2149_1.png]] Attach:ym2149_4.jpg
April 12, 2012, at 09:54 AM by Jack Gassett -
Added lines 3-5:
%width=300% Attach:Ym2149_1.png Attach:ym2149_6.jpg
Changed line 11 from:
Attach:Ym2149_1.png
to:
%width=300% Attach:Ym2149_1.png
April 12, 2012, at 09:50 AM by Jack Gassett -
Added lines 15-16:
||width=110% cellspacing=40
||%width=150%[[http://hackaday.com/2010/08/15/ym2149-gets-new-life/|Attach:Ym2149_1.png]]||[[YM2149 Gets New Life]]||
April 12, 2012, at 09:44 AM by Jack Gassett -
Added line 35:
* [[https://github.com/GadgetFactory/Sketches/zipball/Papilio_Sketches_latest|Papilio Sketch download]]
Changed lines 41-44 from:
* Download the latest version of the [[Papilio Sketches and extract them to a folder of your choice.
* Open the ZPUino IDE and then select the sketch from File/Examples/Audio/YM2149_SPI_Flash.
* Ensure that you have the ZPUino variant that includes the YM2149 audio chip loaded to the SPI Flash of your Papilio.
* Ensure your audio Wing or MegaWing is connected to the Papilio.
to:
* Download the latest version of the [[https://github.com/GadgetFactory/Sketches/zipball/Papilio_Sketches_latest|Papilio Sketches]] and extract them to a folder of your choice.
* Open the ZPUino IDE and then select the sketch from the sketch directory Audio/YM2149_Synth.
* Ensure that you have the [[https://github.com/alvieboy/ZPUino-HDL/raw/master/zpu/hdl/zpuino/boards/papilio_one/s3e500/variants/apollo/releases/latest/bitfiles/zpuino-1.0-papilioone-500-apollo.bit|ZPUino "Apollo" variant]] that includes the YM2149 audio chip loaded to the SPI Flash of your Papilio.
* Ensure your MIDI Audio Wing is connected to the Papilio.
Changed lines 50-56 from:
(Optional)
If you want to convert and load your own ym files:
* Navigate to the examples/ZPUino/Audio/YM2149_SPI_Flash folder.
* Use the ym files from the ym_files folder or your own ym files.
* Drag and drop a ym file onto the convert_ym.bat file. (Sorry Linux users, no script file yet.)
* This will convert the ym file into an audio.dat file in the smallfs directory. Depending on how big your SPI Flash chip is you may need to edit this the audio.dat file to be less then 128KB. If the file is too big you will see an error in the ZPUino IDE when you try to load the sketch.
* Press upload in the ZPUino IDE to load the new ym file to flash and start playing it
.
to:
* Make sure your MIDI instrument is plugged in, and start playing.
April 12, 2012, at 09:41 AM by Jack Gassett -
Added line 34:
* [[https://github.com/alvieboy/ZPUino-HDL/raw/master/zpu/hdl/zpuino/boards/papilio_one/s3e500/variants/apollo/releases/latest/bitfiles/zpuino-1.0-papilioone-500-apollo.bit|ZPUino "Apollo" variant bit file.]]
Changed lines 39-40 from:
* Download the latest version of the ZPUino IDE.
*
Download the latest version of the Papilio Sketches and extract them to your ZPUino IDE folder.
to:
* Download the latest version of the [[http://www.alvie.com/zpuino/download.html|ZPUino IDE]].
*
Download the latest version of the [[Papilio Sketches and extract them to a folder of your choice.
April 11, 2012, at 08:19 PM by Jack Gassett -
Added lines 4-5:

!!!Whats next?
April 11, 2012, at 07:40 PM by Jack Gassett -
Changed lines 1-3 from:
While browsing through past HackaDay articles looking for projects to spark the imagination we noticed a trend. It seems that people are keen on connecting the audio chips from old computer and arcade games to their Arduino! Heck, even while we were writing this page a [[http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/|new project project showed up on hackaday]]!

Seeing all these cool projects lead us to a moment of inspiration. We could use the features of the new ZPUino 1.0 release to take this type of project to the next level on the Papilio! By using the Open Source VHDL files for popular audio chips from places like FPGAArcade.com and Opencores.com we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the C64 SID, Atari POKEY, and YM2149 into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, cobble together Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
to:
While browsing through past HackaDay articles looking for projects to spark the imagination we noticed a trend. It seems that people are keen on connecting the audio chips from old computer and arcade games to their Arduino! Heck, while we were writing this wiki page a [[http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/|new project showed up on hackaday]]!

Seeing all these cool projects led us to a moment of inspiration. We could use the features of the new ZPUino 1.0 release to take this type of project to the next level on the Papilio! By using the Open Source VHDL files for popular audio chips from places like FPGAArcade.com and Opencores.com we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the C64 SID, Atari POKEY, and YM2149 into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, splice in Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
April 11, 2012, at 06:10 PM by Jack Gassett -
Changed line 8 from:
Attach:ym2149_3.jpg
to:
Attach:ym2149_6.jpg
April 11, 2012, at 06:09 PM by Jack Gassett -
Changed lines 8-10 from:
Attach:ym2149_2.jpg
to:
Attach:ym2149_3.jpg
Attach:ym2149_4.jpg
Attach:ym2149_5
.jpg
April 11, 2012, at 06:05 PM by Jack Gassett -
Changed lines 15-85 from:
* http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294
to:
* http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294


!!!Supported Hardware
>>lrindent round<<
* Papilio One 500 with:
** Arcade MegaWing
** MIDI-Audio Wing
** Audio Wing
>><<

!!!Downloads
>>lrindent round<<
* [[https://github.com/GadgetFactory/Sketches/tree/master/Audio/YM2149_SPI_Flash|Source code]]
* [[http://www.alvie.com/zpuino/download.html|ZPUino IDE and bit files.]]
>><<

!!! Usage
>>lrindent round frame bgcolor=#f7f7f7 border='1px solid #429ae0'<<
* Download the latest version of the ZPUino IDE.
* Download the latest version of the Papilio Sketches and extract them to your ZPUino IDE folder.
* Open the ZPUino IDE and then select the sketch from File/Examples/Audio/YM2149_SPI_Flash.
* Ensure that you have the ZPUino variant that includes the YM2149 audio chip loaded to the SPI Flash of your Papilio.
* Ensure your audio Wing or MegaWing is connected to the Papilio.
* Plug your Papilio into a USB port.
* Set the Board Type to either ZPUino on Papilio One 500 or 250 depending on which board you have.
* Select the Serial Port in the ZPUino IDE.
* Modify the #define section to uncomment out what type of hardware you are using.
* Press the Upload Icon (this will load an already converted ym file).
(Optional)
If you want to convert and load your own ym files:
* Navigate to the examples/ZPUino/Audio/YM2149_SPI_Flash folder.
* Use the ym files from the ym_files folder or your own ym files.
* Drag and drop a ym file onto the convert_ym.bat file. (Sorry Linux users, no script file yet.)
* This will convert the ym file into an audio.dat file in the smallfs directory. Depending on how big your SPI Flash chip is you may need to edit this the audio.dat file to be less then 128KB. If the file is too big you will see an error in the ZPUino IDE when you try to load the sketch.
* Press upload in the ZPUino IDE to load the new ym file to flash and start playing it.
>><<

!!! Reference
>>lrindent round<<
* [[http://en.wikipedia.org/wiki/YM2149|YM2149 Wikipedia Page]]
* [[http://kalshagar.wikispaces.com/file/view/ym2149.pdf|YM2149 Datasheet]]
* [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Arduino and YMZ249 (a variant)]]
* [[http://kalshagar.wikispaces.com/MIDI%2C+CSharp+and+Yamaha+chips|Transform MIDI files to sketches.]]
>><<

!!! Technical Details
>>lrindent round frame bgcolor=#f7f7f7 border='1px solid #429ae0'<<
The YM2149 vhdl file is an open source recreation of the original YM2149 that was created by the good people at FPGAArcade.com by studying the datasheets and characteristics of actual hardware. Originally used for the VHDL recreations of games like Frogger. Inspired by [[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|projects like this one]] where people physically connected YM2149 chips to the Arduino we decided to make a streamlined ZPUino solution that does not require soldering or use up GPIO pins. Shaz and Alvie ported the chip to a wishbone compatible core that can plug into the ZPUino architecture, providing direct register access without using any of the ZPUino GPIO pins. The power of the ZPUino and the large code base of the Arduino allowed cool applications like this player, a streamer, and a MIDI controlled YM2149 synth to be easily and quickly realized!
>><<

!!! Attribution
* ZPU team for Soft Processor that is the base for the ZPUino.
* Arduino team for the IDE and Open Source example to learn from.
* Alvaro Lopes for his amazing work with the ZPUino.
* MikeJ at FPGAArcade.com for making the YM2149 VHDL files Open Source.
* Shaz for providing the momentum to port the YM2149 to a wishbone core.
* Jack Gassett and the Papilio team for the Open Source FPGA hardware and examples.
* [[http://leonard.oxg.free.fr|Leonard for the ymtool application used to convert ym files.]]
* Sergey Bulba for Delphi source for YMDump tool.

!!! License
(:div style='text-align:justify; background:#dddddd; border:1px solid #000000; width:100%; padding:5px;':)
%center%http://i.creativecommons.org/l/by/3.0/88x31.png
The example code and documentation is released under a Creative Commons Attribution license. Please use the code any way you want but do the right thing and mention the ZPUino, Papilio, and FPGAArcade if you are porting this project to other hardware. (Yes, we are looking at you Cyber Cortex.)

The source code for the ZPUino is released as BSD style license.

The source code for the YM2149 core is released as GPL.

Please drop us a line if we are missing any attribution or have any licenses wrong.
April 11, 2012, at 06:02 PM by Jack Gassett -
Added lines 3-4:
Seeing all these cool projects lead us to a moment of inspiration. We could use the features of the new ZPUino 1.0 release to take this type of project to the next level on the Papilio! By using the Open Source VHDL files for popular audio chips from places like FPGAArcade.com and Opencores.com we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the C64 SID, Atari POKEY, and YM2149 into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, cobble together Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
Changed lines 10-15 from:
Seeing all these cool projects lead us to a moment of inspiration. We could use the features of the new ZPUino 1.0 release to take this type of project to the next level on the Papilio! By using the Open Source VHDL files for popular audio chips from places like FPGAArcade.com and Opencores.com we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the C64 SID, Atari POKEY, and YM2149 into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, cobble together Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
to:
!!!Links to existing projects
* http://hackaday.com/2010/08/15/ym2149-gets-new-life/
* http://hackaday
.com/2011/07/20/followup-portable-sid-player-is-now-pc-output/
* http://hackaday.com/2011/06/03/portable-sid-plays-chiptunes/
* http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/
* http://kalshagar
.wikispaces.com/Arduino+and+a+YMZ294
April 11, 2012, at 05:50 PM by Jack Gassett -
Changed line 1 from:
While browsing through past HackaDay articles looking for projects to spark the imagination we noticed a trend. It seems that people are keen on connecting the audio chips from old computer and arcade games to their Arduino!
to:
While browsing through past HackaDay articles looking for projects to spark the imagination we noticed a trend. It seems that people are keen on connecting the audio chips from old computer and arcade games to their Arduino! Heck, even while we were writing this page a [[http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/|new project project showed up on hackaday]]!
April 11, 2012, at 05:49 PM by Jack Gassett -
Added line 3:
[[http://kalshagar.wikispaces.com/Arduino+and+a+YMZ294|Kalshagar project]]
Added line 5:
[[http://hackaday.com/2012/04/10/playing-chiptunes-with-a-ym2149-and-optimizing-an-arduino/|Oryx project]]
April 11, 2012, at 05:46 PM by Jack Gassett -
Changed lines 3-4 from:
insert pics
to:
Attach:Ym2149_1.png
Attach:ym2149_2.jpg
April 11, 2012, at 04:19 PM by Jack Gassett -
Changed line 5 from:
Seeing all these cool projects lead us to a moment of inspiration. We could use the features of the new ZPUino 1.0 release to take this type of project to the next level on the Papilio! By using the Open Source VHDL files for popular audio chips from places like FPGAArcade.com and Opencores.com we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the C64 SID, Atari POKEY, and YM2149 into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library and write a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
to:
Seeing all these cool projects lead us to a moment of inspiration. We could use the features of the new ZPUino 1.0 release to take this type of project to the next level on the Papilio! By using the Open Source VHDL files for popular audio chips from places like FPGAArcade.com and Opencores.com we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the C64 SID, Atari POKEY, and YM2149 into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library, cobble together Arduino code snippets from the Hackaday articles, and end end up with a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
April 11, 2012, at 03:57 PM by Jack Gassett -
Added lines 1-5:
While browsing through past HackaDay articles looking for projects to spark the imagination we noticed a trend. It seems that people are keen on connecting the audio chips from old computer and arcade games to their Arduino!

insert pics

Seeing all these cool projects lead us to a moment of inspiration. We could use the features of the new ZPUino 1.0 release to take this type of project to the next level on the Papilio! By using the Open Source VHDL files for popular audio chips from places like FPGAArcade.com and Opencores.com we could eliminate all the wires, soldering, and wasted GPIO pins. Integrating popular audio chips like the C64 SID, Atari POKEY, and YM2149 into the ZPUino would put them under control of Arduino sketches. Effectively opening up all the Arduino libraries to control the audio chips. It only took a couple hours to hack in the Arduino MIDI library and write a sketch that turned the Papilio into a YM2149 MIDI Synthesizer!
  

Share |