17

(90 replies, posted in General Discussion)

The title could be changed to "How to Chip Tune with a Game Boy".

Sure!

Well, CC#114 needs to be set above 64

Then, the GenMDM will send YM2612 page, address, and data values.

Page, address and data values are sent as a single MIDI CC message of the form:

Control number = address & 127
Control value = data & 127
Channel bit 0 = page 0 or 1s
Channel bit 1 = data bit 7
Channel bit 2 = address bit 7
Channel bit 3 = SN76489 on or off

Sync data is not needed, and may prove to be an issue.

Nice work!

20

(53 replies, posted in Sega)

YAY FOR SQUARE WAVES

21

(53 replies, posted in Sega)

It's just how I roll. I run a slightly modified version of Teensyduino, and having the channels indexed at 0 instead of at 1 makes more sense (to me).

22

(53 replies, posted in Sega)

Ah yeah, can you do me a favor and remove the + 1? And then re-upload the code?

23

(53 replies, posted in Sega)

If you are, can you do me a favor and right click on the Arduino app, go to Show Package Contents and navigate to the following file, and opening it in a text editor:

Arduino > Contents > Resources > Java > Hardware > Teensy > cores > usb_midi > usb_api.cpp

Do a search for the following line: type2 = b1 & 0xF0; and tell me what the next line of code is.

24

(53 replies, posted in Sega)

Are you running OS X?

25

(53 replies, posted in Sega)

Today I started adding support for a quad SN76489 setup from the one Teensy.

The basic functionality works great - note on / off, pitch bend and noise channels.

26

(53 replies, posted in Sega)

Of interest: http://little-scale.blogspot.com.au/201 … inear.html


SN76489 USB MIDI Firmware 102 for the Teensy features the following changes:
• Pitchbend is musically linear, meaning that the same value pitch bend will give the same pitch distance no matter which pitch is played.

• CC71 on MIDI channels 1 - 4 sets the pitch bend range in semitones. The default is 12 semitones.

• The frequency data for the SN76489 is calculated using a formula rather than a look up table.

• The advantage of this is there is a line of code in the program that reads: long clock = 1843200; Simply change the value of clock in Hz to support any value of crystal oscillator whilst staying in tune!

• The default is 1843200 (i.e. a clock speed of 1.8432 MHz) as this is the crystal speed that I prefer, however the SN76489 can accept a wide range of clock speeds. If you want a bassier pitch range, simply use a lower value crystal oscillator.


Download the firmware here: http://milkcrate.com.au/_other/download … DI_102.ino

27

(53 replies, posted in Sega)

I reckon it might be easier to mess with the pitch table BUT I want to rewrite this with a variable for clock speed anyway, thanks for reminding me!! big_smile

I would suggest starting with some that will sound quite obvious, such as:

* Preset Instrument Setting Recall from RAM    CC# 9
* FM Algorithm     CC# 14
* FM Feedback CC# 15
* Multiple OP 1     CC# 20
* Multiple OP 2     CC# 21
* Multiple OP 3     CC# 22
* Multiple OP 4     CC# 23

Try adding the Velocifier JS / MIDI effect to the MIDI track, and set the minimum to 127:

A velocity of 60 should still work, but it will be VERY quiet (GenMDM is sensitive to velocity, velocities of 90 - 127 already give a large range of volume). smile It's just the way it is with the FM synthesis and the way that it works and is mapped. :S

Is the keyboard triggering any notes at all? Is the keyboard enabled as a MIDI device? Is the keyboard enabled as a track input device with a MIDI track? Is the output of the MIDI track routed to GenMDM?

You can see a list of all available parameters here:
http://little-scale.com/GENMDM/GENMDM_1 … DM_102.txt

I assume, then, that your computer sequencer is connected via traditional MIDI and not USB? (Sorry, I just want to make sure I have a clear picture in my head!)

To change parameters with GenMDM, it is a matter of sending MIDI continuous controller messages.

What sort of keyboard are you using?