MonkeyJam will use the FRDM-K20D50 board (which has a Cortex M4 core with DSP instructions) along with the FRDM-JAM shield so you can make your very
own guitar /bass stomp box. The end result will be a functional DSP system that will allow you to do high quality amplifier simulation and effects.
The FRDM-JAM does not limit you to DSP on musical instruments! There are 3.5mm stereo jacks to DSP filtering any type of audio signal. You could even use the USB interface to create a USB-MIDI Synthesizer! Lastly, no need to bring the house down..... a headphone amplifier circuit is provided so you can jam out without bothering the neighbors.
MBED Support coming *very soon*
Development Tools Install Codewarrior 10.5 for Microcontrollers (Eclipse) Special Edition to your machine | Example Code Get the latest copy from Github |
The videos are organized into a nice YouTube playlist:
https://www.youtube.com/playlist?list=PLWM8NW5LEukgM-D5eRMtKZ8R2WfXnqKGp
MonkeyJam Build Package on the FRDM-JAM site. Please let us know if you are interested in a pre-assembled version. If there is enough demand we will get some preassembled for purchase, I will get a Kickstarter going! Don't be afraid to build it yourself, Soldering is fun! There is plenty of good stuff on the web on how to do SMT soldering. All of the parts on the board are fairly simply once you get the hang of it and everything can be hand soldered The key is having some decent tools.
Attach the FRDM-JAM to the FRDM-K20D50. The FRDM-K20D50 comes with female headers that you can solder on so the boards can be easily separated. Note that as of Rev Gamma (current version), it is possible to connect to a K64F. The software isn't quite there but it hardware connections are available. If you are unsure, stick with the FRDM-K20D50
Download the Example Software from Github. The video "Loading and Configuring the MonkeyJam Example Software" will step you though downloading the program and doing some basic configuration.
Plug In and jam!
Each sound sample was my Carvin Ultra-V guitar plugged direct into the MonkeyJam Board. The output was fed to a Zoom Handy Recorder H4n (Thanks to Brandin Claar of Remodulate LLC for the recorder). The H4N recorded the signal at 44.1KHz Sample rate @16-bit. The sound files were converted to mono format via Goldwave. No processing (other than a volume boost on the files) was performed. I listen to the recording in real-time via a line out on the H4N.
File (See Attachments) | Patch | Notes |
---|---|---|
STE-003-Neck-a12b12g12-mlike.wav | PATCH_TUBEY_CLEAN | Neck Pickup Alpha Pot - 12 O'Cock Beta Pot - 12 O'Cock Gamma Pot - 12 O'Cock Pattern Similar to Metallica Sanitarium |
STE-005-Neck-a7b5g5-mlike.wav | PATCH_TUBEY_CLEAN | Neck Pickup Alpha Pot - 7 O'Cock Beta Pot - 5 O'Cock Gamma Pot - 5 O'Cock Pattern Similar to Metallica Sanitarium |
STE-006-Neck-a12b7g5-mlike.wav | PATCH_TUBEY_CLEAN | Neck Pickup Alpha Pot - 12 O'Cock Beta Pot - 7 O'Cock Gamma Pot - 5 O'Cock Pattern Similar to Metallica Sanitarium |
STE-007-Neck-VariousSettings-d-g-em_strum.wav | PATCH_TUBEY_CLEAN | Neck Pickup The pots were moved around throughout the file Strummed D-Major, G-Major and E-Minor |
STE-008-Neck+Bridge-VariousSettings-d-g-em_strum.wav | PATCH_TUBEY_CLEAN | Neck + Bridge Pickup The pots were moved around throughout the file Strummed D-Major, G-Major and E-Minor |
STE-009-Bridge-VariousSettings-d-g-em_strum.wav | PATCH_TUBEY_CLEAN | Bridge + Bridge Pickup The pots were moved around throughout the file Strummed D-Major, G-Major and E-Minor |
STE-010-Neck-VariousSettings-Jammy.wav | PATCH_TUBEY_CLEAN | Neck + Bridge Pickup The pots were moved around throughout the file B-Minor Type Jam |
STE-011- Bridge - Various Settings - On-Off Demo-RandomDroppedD.wav | PATCH_OVERDRIVE | Bridge Pickup Alpha Pot - 5 O'Cock Beta Pot - 12 O'Cock Gamma Pot - 12 O'Cock Random Dropped D twiddling |
STE-012- Neck - Various Settings - On-Off Demo-Jammy.wav | PATCH_OVERDRIVE | Neck Pickup Alpha Pot - 5 O'Cock Beta Pot - 7 O'Cock Gamma Pot - 7 O'Cock Random B-Minor twiddles (bluesy) |
PATCH_OVERDRIVE
+––––––––––––––––––+ +––––––––––––––––––––––––––+ +–––––––––––––––––––––+
| | | | | |
Signal In | IIR BiQuad | | Hard Overdrive | | IIR BiQuad | Signal Out
+–––––––––+>| +––––+>| +––––+>| +–––––––––––––+>
| [Peaking EQ] | | [atan24pi Look Up Table] | | [Low Pass Filter] |
| | | | | |
+––––––––––––––––––+ +––––––––––––––––––––––––––+ +–––––––––––––––––––––+
0.1 < Q < 1.5 [Pot Alpha] Q = 0
50 < Fs < 750 [Pot Gamma] Fs = 2000
-20 < dbGain < 20 [Pot Beta]
PATCH_TUBEY_CLEAN
+––––––––––––––––––+ +––––––––––––––––––––––––––+ +–––––––––––––––––––––+
| | | | | |
Signal In | IIR BiQuad | | Soft Overdrive | | IIR BiQuad | Signal Out
+–––––––––+>| +––––+>| +––––+>| +–––––––––––––+>
| [LowShelf] | | [atan4pi Look Up Table] | | [Low Pass Filter] |
| | | | | |
+––––––––––––––––––+ +––––––––––––––––––––––––––+ +–––––––––––––––––––––+
0.05 < Q < 2.58 [Pot Alpha] Q = 2.0
1000 < Fs < 4000 [Pot Beta] Fs = 2500
-15 < dbGain < 15 [Pot Gamma]
Biquad Filter View - A IIR Biquad Filter Design & Visualization Tool
Hi eli_hughes
Thanks For the awesome tutorial. It pretty much shows the real life implementation of DSP. I wanted to ask you about implementation of CMSIS library in codewarrior. In one of my projects I wanted to implement DSP library to implement FFT. But I am stuck in implementing CMSIS library. I saw your Video for this as well as the 2nd project i.e Project #2: Monkey Listen! Audio Spectrum Analyzer Display That was also awesome like this. But again I cannot move further as I am facing problem in implementing the library.I went through some post regarding implementing the CMSIS library but that was not compiling and was giving errors. and sometimes was exceeding the m-text limit. I went through the following links.
Tutorial: Using the ARM CMSIS Library | MCU on Eclipse
移植CMSIS-DSP库到CodeWarrior的步骤以及Kinetis FPU单元应用的对比
Please look into the matter. I hope this post will be beneficial for many community users. Thanks in advance
Kind Regards
Amit Kumar
Amit:
Do you try importing the MonkeyListen project and see the settings I used? What chip are you targeting?
Hi Eli Hughes
I Imported the MonkeyListen Project and it got compiled without any error. right now for testing I am targeting FRDM-K20D50M (MK20DX128). After this I will be targeting mk60fn1m0vlq12. What are the settings required to be done for using the library in any project ? If you can provide some snapshot of the settings required to make it work It will be helpful for all the community members. As I went across some queries which was unanswered regarding the same. In ARM's website also I didn't find any help regarding this. When I saw your tutorial everything was well explained. So If this portion is also covered in it than it will a great help for people like me. and I am sure many people want to use it but can't use due to this implementation part.
Thanks in advance
Kind Regards
Amit Kumar
Amit:
If you click on the project properties for the library and look at processor settings, there are 2 symbols (ARM_CM4 and ARM_ROUNDING). This is all I had to do to get it compile.
I think I covered it in one of the videos. If not, I will certainly have to get some sort of small video for it!.
-Eli
Hi Eli
Thanks for your reply. when I am opening your project for the 1st time I am getting some warning message. Is this message of any concern?.
Kind Regards
Amit Kumar
Hi Eli Hughes
Can you provide me the link of the video in which you have demonstrated how to implement CMSIS library with codwarrior basically I am concerned with FFT library which you have implemented? It Will be a great help. Thanks
Kind Regards
Amit Kumar
Hi Eli
I have implemented the CMSIS code and also made the document for others , kindly look if anything is incorrect in the process and please update it. https://community.freescale.com/message/414670#414670
Kind Regards
Amit Kumar