Just tried the master tune via the java app.   Doesnt seem like it is working.    The whole synth is now 4 semi tones off -( C plays an E)
Changing the tuner in the app has no effect.

also tnanks for changing the default patch.  Was getting sick of that last one wink

The previous version of the arduino code had the subroutine :YM2151DriverClass::setVolume  which is what I used for the volume control.   It was unused and it looks like you removed it in 1.6.9.    I already went and added it and the rest of my volume stuff to the new version and everything seems to compile, load and run properly, so I can assume that there are no issues.  I can send it to you if you want.  Honesty, I do not understand how to contribute to a project on github, but I can try. create a fork?

Masl,
Cool.   I actually have been messing around and had added master tune myself with the eventual goal of pitch bend and portamento.   (Pitch bend seems fathomable...i have no idea how to implement portamento. ??)  Ill prob just go w/ your master tune routine in the future if i do any more work.
I also added a master volume control on CC#7, which i find pretty useful.   If you want, maybe we can roll this into 1.6.9.     pretty simple stuff.

Also, something Ive been noticing : (on my YM synth, at least)   that there is an annoying  'pop' or 'click' with every fast volume envelope trigger.   This can be heard best when playing fast notes on pads w/ a slow attack,  and/ or when the amp modulation is enable and LFO is set to  square wave.    it Has been bugging the hell out of me.   Pretty sure it is not hardware... seems like an issue w/ how software is resetting the volume in the chip.   Just wondering if anyone else is experiencing this.   if not, I guess it is something w/ my DAC or amp circuits.   

And lastly,   DET1  (fine detune)   on all OPs does not seem to work, or at least I cannot hear any difference at all, with any OP and w/ any algorithm.   I realize that it is subtle, but it seems like it isnt really working.   am I deaf?

20

(13 replies, posted in Other Hardware)

Also check out the YM2151 arduino project thread on this site .   User, Masl, created a java app that can interface w/ the arduino/YM2151 for controlling parameters, channel mapping, etc.

Got a new oscillator: 3.579545mhz.    Using the stock code, just like w/ garvalf's, mine was still 1 note above what it should be.  However, after executing the  "note -1"  code patch it is dead-on perfect;    While w// the 4mhz, even after correcting the 3 note discrepancy, checking w/ a  tuner showed that everything was about 2-3 cents flat.      Can anyone check theirs and see how accurate it is w/ a 3.58mhz?   wondering if it makes a difference.   

following that thought:    Thinking that it would be nice to add a 'master tune' trim to one of the unused analog-ins, but I really cannot figure out how the midi note # gets translated into a freq or command for the YM.   Anyone have any clues as to how this works?   Probably can easily be used for pitch bend too

Maybe ill try one of thses:  http://www.digikey.com/product-detail/e … 7-ND/31822

Here is a quick  and dirty trick to transpose the notes.  works for me.
   on the main (first) page of the sketch; change these two subroutines by adding or subtracting the number of semitones you are off  from "note".   like this:

void handle_NoteOn(uint8_t channel, uint8_t note, uint8_t value){
        channel = channel - 1;
        NotePool.handleNote(true, channel, note -3, value); //  mine is 3 semitones above the correct note so... -3
    }

    void handle_NoteOff(uint8_t channel, uint8_t note, uint8_t value){
        channel = channel - 1;
        NotePool.handleNote(false, channel, note -3, value);  // make sure this is the same number of there will be hanging notes!!
    }

did some testing w/ a tuner   and  garvalf, dude... you have a way better ear than I.   Mine is 1 1/2 semitones over. whoa!
  perhaps 3.5 ish mhz would be a better value?  or adjust the note array in the sketch.

Hmm.. thats weird.   I built mine following the original japanese pdf  (the schematic and parts list is english)    Also, im pretty sure that other schematics that ive seen for this chip use a 4mhz.     Mine seems in-tune.      perhaps synthy can chime in.

what im envisioning w/ the knob controller can totally make it an independent instrument.   we'll see

4mhz- same as the original.    here is the exact part i used, but you can find them anywhere.       
http://www.jameco.com/z/OSC4-4-MHz-Full … 27967.html
remember full-can!

I would like to get some boards made but I have a lot on my plate right now and not a lot in the coffers....
Perhaps if there was a bit more interest.  If i knew i break even, id be much more inclined to get the ball rolling.    (I am going a head w/ the knobby controller wink   
Sorry- keep forgetting to post the eagle files to github.   will try to get to is soon.    You could prob get a 1-off from oshpark, but it would be expensive.

really home etching is not hard...  and it opens up a whole world as electronics tinkerer

Cool, but you may want to reconsider how you describe that power indicator mod... especially when in all caps! wink

28

(13 replies, posted in Sega)

you may be interested in this:
http://chipmusic.org/forums/topic/17710 … r-arduino/

not a genesis tracker, but little DIY synth that uses basically the same chip.   I just put up a one-sided DIY layout for home builders and user, Masl, made a really great java controller.      8 channels or 8 note poly.    Can play any .opm from any genesis / classic arcade game.

i might be sick, but Im thinking of building a full  knob-per-function hardware controller for this thing.    Oled display to show the Algorithm...   maybe patch memory.    Anyone interested?

A LM324 is a drop in replacement for the TLC2274, albeit with more noise. 
opto- I actually used a 6n139,  but I dont think that it matters... you may have to play w/ the value of of the resistor between 5v and the arduino RX.    Also, I just used all .001uf caps,   I didnt have any .0015uf on hand.  Cant imagine that it matters much.     
My board use a full-can oscillator cuz thats what I could get most easily.   (Its the same thing, just larger package)

here are the  jacks I used that will fit the layout :    1/8" audio         Jameco #568392                        DC power  Jameco #101179
they are pretty common.   you shouldnt have any trouble finding them from other distributors.... or just solder in wires and use the jacks(s) of your choice

Yeah,   used a laser printer to print the layout onto glossy 'presentation' paper.     then after prepping the blank copper-clad board  (light sand w/ very fine grit and clean w/ alcohol),   put the layout face down and iron the shit out of it on high.   The toner will 'melt' and restick to the copper.    after it cools, the paper should peel off, fairly easily and  be  ready to etch.    Its not real hard but this may be tricky one for a first timer.    Also you need a sub 1mm drill bit.
       id be happy to post the eagle files.   i was thinking about have a few made professionally anyway.   The more users the better.

I found a pro micro and Im going to mess around to see if i can get that to work.   could open the window for usb midi.

BTW- masl,   something is up w/ the sketch in the newest arduino ide  1.6.9-11.   cant compile any more (w/ any board) getting this error:
( It does work on old versions of arduino - 1.0.6    ) 


In file included from /Users/charleshobbs/Library/Arduino15/packages/arduino/hardware/avr/1.6.13/variants/eightanaloginputs/pins_arduino.h:23:0,
                 from /Users/charleshobbs/Library/Arduino15/packages/arduino/hardware/avr/1.6.13/cores/arduino/arduino.h:249,
                 from sketch/CCHandler.h:23,
                 from sketch/CCHandler.cpp:109:
/Users/charleshobbs/Library/Arduino15/packages/arduino/hardware/avr/1.6.13/variants/eightanaloginputs/../standard/pins_arduino.h:56:19: error: expected unqualified-id before numeric constant
#define PIN_A0   (14)
                   ^
sketch/YM2151.h:34:25: note: in expansion of macro 'PIN_A0'
   static const uint8_t  PIN_A0=12;
                         ^
/Users/charleshobbs/Library/Arduino15/packages/arduino/hardware/avr/1.6.13/variants/eightanaloginputs/../standard/pins_arduino.h:56:19: error: expected ')' before numeric constant
#define PIN_A0   (14)
                   ^
sketch/YM2151.h:34:25: note: in expansion of macro 'PIN_A0'
   static const uint8_t  PIN_A0=12;
                         ^
exit status 1
Error compiling for board Arduino Pro or Pro Mini.


**** UPDATE*****    figured this out.    It is some issue with the new board packages.   I rolled back to AVR Boards 1.6.11 and all seems good.

I just designed a layout for a one-board DIY version of this project... Tested and verified:   https://github.com/miotislucifugis/Yama … DIY-Synth-


It is single-sided- perfect for home etching.  ( only has 7 jumpers!)     Uses a Arduino Pro Mini.   I hate shields.   
The parts are so cheap and easy to find on ebay.   All the chips including the arduino should be about $15.