Jump to content

MidiJoy - Using your Atari as a Chiptune-instrument


Recommended Posts

Another question ... can MIDIJoy read the modulation wheel or pitch bend?  There are a couple of reverse 16 bit POKEY settings I found, where the frequency in the second channel causes the sound to vibrate, and increasing or decreasing this setting can increase or decrease the vibrations.  I wondered if it were possible to program this ...

  • Like 1
Link to comment
Share on other sites

With the 10 input lines (four directions plus trigger on each joystick port), the amount of Midi data that can be transmitted is a bit limited. Seven bits are used for data (pitch and velcoity come in two alternating transmissions), two bits for channel and one bit for pitch/velocity select.

Pitch data uses all seven bits while velocity uses only four bits, so it would be possible to add three bits of information in this transmission cycle.


But as far as I understand Midi, the pitch wheel would just adjust the pitch transmitted in each Midi note, so this would be reflected in the data transmission already. Or am I getting this wrong?


By the way, the source code can now be found on GitHub:


Link to comment
Share on other sites

  • 3 months later...

For the last weeks and months, I have been working on MidiJoy 2.0 for PokeyMax which supports @foft's awesome POKEY substitute that brings 16 POKEY voices as well as optional 6 SID and 6 PSG voices. MidiJoy 2.0 now supports these three soundchips as well as pitch bend wheels and also brings added stability in the note data transmission. It will run on previous MidiJoy hardware without any modifications and will be made available after the ABBUC hardware contest in which it is participating. Here's a video (in German only, but the sound examples should speak for themselves):



  • Like 7
Link to comment
Share on other sites

The USB connection is used for three functions:

- To power the board (which can be done via Joystick ports as well if you don't want to use a PC sequencer at all)

- To flash the Teensy microcontroller (and thereby the configuration)

- To get MIDI input from a PC MIDI sequencer

If you only use "classic" MIDI (in the way that I connected the keyboard) and power the board via the joystick ports, then you don't need USB.


On the keyboard, I'm using 10 voices at the same time (that's the maximum amount of fingers on my two hands ;)), but PokeyMax was configured with 16 voices at that time. On the SID, the first six voices are SID and thereafter 10 POKEY voices (if you listen closely, at one point you can hear that a few notes don't sound SID-like, that's when more than six notes are played at the same time and the subsequent notes are played by POKEY).

  • Like 2
Link to comment
Share on other sites

Hello Frederik


Thanks for answering my questions.


BTW how easy would it be to power the MidiJoy via the joysticks?  Will that happen automatically when no power is provided via USB?  (Just in case somebody does not want to use a Mac/PC occasionally)





Link to comment
Share on other sites

On the PCB, there is a spot for a Schottky diode. If you solder in this diode, the board will be powered from the joystick ports when connected. You can then still flash the Teensy microcontroller whenever you want using a PC/Mac, but you should no longer use USB Midi (for example a sequencer program on the PC/Mac as I did in the video), because then power will be supplied from two sides: Atari joystick port and USB port. The Atari will be protected through the Schottky diode, and my Mac also has not complained yet when both the Atari and USB was plugged in, but of course I cannot say that this is the case for every Mac, let alone every computer. Therefore, it is not recommended to connect the board to USB when it is powered at the same time through the joystick ports.


The safest way would be to use a simple USB power supply to power MidiJoy. Then you don't need a PC/Mac, but could still use it when you feel like it. But for purists, the Atari-powered way is always an option.

Edited by freetz
Link to comment
Share on other sites

  • 2 years later...

Unfortunately, it is not possible to play songs recorded with MidiJoy2, which were stored in the memory of the Ataris starting at $6000. With the older Midijoy it was still starting at $5000 where there is also a player that plays the songs from $5000. The recorded songs now with MidiJoy2 from PokeyMax cannot be played with this older player and there is no new player for MidiJoy2. Therefore, the songs of MidiJoy2 stored in memory are of no use to me.

Link to comment
Share on other sites

Yes, outside of MidiJoy2 there is no player (yet) to play recorded tunes. The reason for this is mainly that the player routine would no longer fit into page six and thus using it from within BASIC programs is no longer that easy. Assembler programmers would probably just use the "playram" part of the source code and copy it into their own programs to play recorded tunes.


What you can try is recording your tune, remember the memory area that is occupied by the tune (for example $6000 to $78FE), exit to DOS by pressing ESC and then saving this memory area to a file. Then, after rebooting your Atari, before starting MidiJoy, load this file again and start MidiJoy. You would then have to change the contents of $85/$86 (for example using a Freezer) and set the end of the recording there (using the above example $FE into $85 and $78 into $86).

Then pressing "P" for play should play the tune.


MidiJoy2 was more geared towards musicians who want to use MidiJoy "live", and I'm sorry if your usecase is not covered by this (which I can perfectly understand). The thing is that currently my other projects don't leave me too much time to work on MidiJoy2, but since the code is freely available, maybe someone else will come up with a small player.

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...