Git Product home page Git Product logo

teensyboy's Introduction

Teensyboy 1.2.3

Arduinoboy Firmware for Teensy 2.0

The Arduinoboy code has been modified to work on a Teensy using USBMidi.

The only differences between Arduinoboy and Teensyboy are different pin input and output and all midi code has been changed to using usb midi instead of clasic serial midi. For more informations please visit the blog at noizeinabox.blogspot.com/2012/12/teensyboy.html.

Arduinoboy code for Teensy modified by:

Original Arduinoboy developer

Modes

The LED's will lightup depending on the mode Tennsyboy is in.

LSDJ Slave LSDJ Master LSDJ KEYBD Nanoloop mGB LSDJ MIDIMAP LSDJ MIDIOUT
🔴 🔴 🔴
🔴 🔴 🔴
🔴 🔴
🔴 🔴
🔴 🔴

LSDJ Slave Mode Midi Note Effects:

  • 48 - C-2 Sends a Sequencer Start Command
  • 49 - C#2 Sends a Sequencer Stop Command
  • 50 - D-2 Toggles Normal Tempo
  • 51 - D#2 Toggles 1/2 Tempo
  • 52 - E-2 Toggles 1/4 Tempo
  • 53 - F-2 Toggles 1/8 Tempo

LSDJ KEYBD Mode

  • 48 - C-2 Mute Pu1 Off/On
  • 49 - C#2 Mute Pu2 Off/On
  • 50 - D-2 Mute Wav Off/On
  • 51 - D#2 Mute Noi Off/On
  • 52 - E-2 Livemode Cue Sequence
  • 53 - F-2 Livemode Cursor Up
  • 54 - F#2 Livemode Cursor Down
  • 55 - G-2 Livemode Cursor Left
  • 56 - G#2 Livemode Cursor Right
  • 57 - A-2 Table Up
  • 58 - A#2 Table Down
  • 59 - B-2 Cue Table
  • 60 - C-3 to C-8 Notes! Program Change to select from instrument table

LSDJ MIDIOUT Mode

Each of the 4 gameboy channels send MIDI data on 4 midi channels by the use of effects commands. This requires a special version of LSDJ, which can be found on the LSDJ site.

  • Nxx - Sends a MIDI Note - Absolute to the value placed in the effect. N00 sends note off, N01-N6F send midi notes 1 to 112.
  • Qxx - Sends a MIDI Note relative to the current channel's pitch. The effect value is a offset. so Q0C in PU1 would send a note 1 octave higher than what PU1 is currently playing. This is useful as a table command to track midi notes as normal notes in the sequencer.
  • Xxx - Sends a MIDI CC - By default in Arduinoboy the high nibble selects a CC#, and the low nibble sends a value 0-F to 0-127. This can be changed to allow just 1 midi CC with a range of 00-6F, or 7 CCs with scaled or unscaled values.
  • Yxx - Sends a program/patch/preset change.

By default each channel of LSDJ is mapped to midi channels 1-4. For example note commands from PU1 will be sent to midi channel 1.

Compiling

Make sure you've got the board settings correct in order to compile. If you're new to developing on the Teensy be sure to checkout Teensy Tutorial 1: Software Setup.

  • Board: Teensy 2.0
  • USB Type: MIDI
  • CPU Speed: 16 MHz
  • ...
  • Programmer: AVRISP mkII

Arduino IDE Board Setup

Hardware

Teensyboy Hardware Wiring

Gameboy pins

  • Gameboy Clock line on analog in PF0
  • Gameboy Serial Data input on analog in PF1
  • Serial Data from gameboy on analog in PF4

Teensy pin settings:

  • 6 LEDS on pins 11 to 16
  • Push button on pin 22 (for selecting mode)
  • Status Led on pin 10
  • Gameboy Clock line on analog in pin 21
  • Gameboy Serial Data input on analog in pin 20
  • Serial Data from gameboy on analog in pin 19

Change log

Teensyboy Based on Arduinoboy Version: 1.2.3

Teensyboy version 1.2.3 Rev 2.3

  • 5 May 2019
  • Updated files for TeensyLib are no longer needed, code has been refactored accordingly

Teensyboy version 1.2.3 Rev 2.2

  • 8 July 2012
  • Changed MGB mode :send to GB delay -> 500us (should fix notes drop)

Teensyboy version 1.2.3 Rev 2.1

  • 20 Nov 2012
  • Based on Original code of Timothy Lamb
  • modified for Teensy by [email protected]

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

teensyboy's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

256k papielguapo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.