And now a days there is also this guy: http://www.djtechtools.com/2012/02/27/i … ighter-3d/

Woo! THIS PLACE IS WEIRD. Thanks for asking that question, now I know to bring my own booze! xD

AKA Does it support CoreMIDI?

First off you don't need to tie that pin4 to the optoisolator on that board unless you cut the power pin trace to the optoisolator. the reason arduinoboy uses pin4 to tie to the optoisolator is so that the code can turn on/off the optoisolator (it provides power) ... The sparkfun board uses a switch "run/program" instead.

Whats happening in your video is that the arduinoboy is cycling modes, your push button isnt working for whatever reason. Also that setting in your code doesn't do force mode, it just means that you can overwrite those default settings via EEPROM using the arduinoboy settings editor.

Your gonna also have to do this:

code wrote:

byte defaultMemoryMap[MEM_MAX] = {
  0x7F,0x01,0x02,0x7F, //memory init check
  0x01, //force mode (forces lsdj to be sl)
  0x00, //mode
 
  15, //sync effects midi channel (0-15 = 1-16)
  15, //masterNotePositionMidiChannel - LSDJ in master mode will send its song position on the start button via midi note. (0-15 = 1-16)
 
  15, //keyboardInstrumentMidiChannel - midi channel for keyboard instruments in lsdj. (0-15 = 1-16)
  1, //Keyboard Compatability Mode
  1, //Set to true if you want to have midi channel set the instrument number / doesnt do anything anymore
 
  0,1,2,3, //midiOutNoteMessageChannels - midi channels for lsdj midi out note messages Default: channels 1,2,3,4
  0,1,2,3, //midiOutCCMessageChannels - midi channels for lsdj midi out CC messages Default: channels 1,2,3,4
  1,1,1,1, //midiOutCCMode - CC Mode, 0=use 1 midi CC, with the range of 00-6F, 1=uses 7 midi CCs with the
                       //range of 0-F (the command's first digit would be the CC#), either way the value is scaled to 0-127 on output
  1,1,1,1, //midiOutCCScaling - CC Scaling- Setting to 1 scales the CC value range to 0-127 as oppose to lsdj's incomming 00-6F (0-112) or 0-F (0-15)
  1,2,3,7,10,11,12, //pu1: midiOutCCMessageNumbers - CC numbers for lsdj midi out, if CCMode is 1, all 7 ccs are used per channel at the cost of a limited resolution of 0-F
  1,2,3,7,10,11,12, //pu2
  1,2,3,7,10,11,12, //wav
  1,2,3,7,10,11,12, //noi
 
  0, 1, 2, 3, 4, //mGB midi channels (0-15 = 1-16)
  15, //livemap / sync map midi channel (0-15 = 1-16)
  80,1,  //midiout bit check delay & bit check delay multiplier
  0,0//midiout byte received delay & byte received delay multiplier
};

5

(30 replies, posted in Other Hardware)

Victory Road wrote:
Lazerbeat wrote:

Awesome hardware! Quick question, does "hard sync" mean the filter envelope resets every new note?

http://en.wikipedia.org/wiki/Oscillator_sync#Hard_Sync <- i know wiki is dubious, but that's a pretty good explanation!

And that is exactly what it is. Well that and lazerbeat's mom still applies of course. big_smile

Edit: I also love the sound of Hardsync, kind of a fake-filtery sound, and I have never heard it applied to a LFSR. I should make more audio demos.

6

(30 replies, posted in Other Hardware)

2PLAYER wrote:
Frostbyte wrote:

yo trash, would there be a way to stack these and get like, 4 channels out of one unit?

This is what my question was getting at. Would it cost 70 for each channel we wanted or is there a way to use one midi top for multiple boards and just use different midi channels

Maybe. The issue would be timers & serial interrupt messing eachother up, unless the line is spilt up. I think it would be sweet if they were modular in a way that you could just stack units together in a chain, but it's too early to know.

7

(30 replies, posted in Other Hardware)

2PLAYER wrote:

So is this single channel monophonic?

Yeah right now. Could use a 4th timer for either sampler or another oscillator... or with some trickery could free up another timer as well- or use it for dual purpose.

8

(30 replies, posted in Other Hardware)

Lazerbeat wrote:

Awesome hardware! Quick question, does "hard sync" mean the filter envelope resets every new note?

hard sync meaning hardware, as in what I showed your mom last night.

9

(30 replies, posted in Other Hardware)

HolyNegative0 wrote:

This sounds awesome. Can't wait to see what it looks like. \O,o/

Well right now it's just a sparkfun midi shield and a resistor network for the DAC soldered to it. big_smile

I can't want to start on the tiny interface using this guy:

10

(30 replies, posted in Other Hardware)

herr_prof wrote:

Preorder?

New Order.

11

(30 replies, posted in Other Hardware)

oh and I'm gonna add LAZERZ. pewpewpepwpewpew

12

(30 replies, posted in Other Hardware)

So I've been working on a synth on and off for the last 2 years. It's finally starting to take shape and once I finish sourcing parts and figuring out the audio opamp/output circuit and interface I'll be releasing it.

Thought I'd share my progress so far:

It's a 4bit synth that doesn't use a static sample rate frequency to generate the synthesis sound- therefor it doesn't have the usual artifacts from low sample-rate dsp so that no aliasing is generated, and no anti-aliasing algorithm is needed.

Originally built on the Arduino- I moved it to the ARM-based Leaflabs Maple to take advantage of the faster clock for higher pitches. 

It currently has 3 synthesis types:
1. 32 step wave synth with digital filter (kind of like the LSDJ wav synth)
2. 128 step PWM synth
3. 256 step LFSR noise generator (like a gameboy or NES noise- only the pitched noise is in tune)

All modes have a sub oscillator & oscillator sync to give it some extra tonal quality. I really liked the idea of a LFSR noise generator with oscillator sync. big_smile

I'm just about done with main synthesis code and am about to start on an interface. Been thinking about using a 4dsystems tiny tiny OLED display module and a single pushbutton/encoder knob, as well as 4bit sample playback and storage using a micro sd reader.

Here is the demo of it I recorded this weekend, be sure to download the original waveform- soundcloud/mp3 conversion added artifacts. http://soundcloud.com/trash80/codename-sqrt-synth-test

\o/

If the lights flash to incoming midi data than the sparkfun shield's midi circuit is working. Also how did you change the pin numbers for the gameboy data pins in the code? It is all done by sending data directly to the port so I'd imagine you'd have to do quite a bit in a few places ie ... from:

   if(send_byte & 0x80) {
       PORTC = B00000010;
       PORTC = B00000011;
   } else {
       PORTC = B00000000;
       PORTC = B00000001;
   }

to this:

   if(send_byte & 0x80) {
       PORTC = B00001000;
       PORTC = B00001100;
   } else {
       PORTC = B00000000;
       PORTC = B00000100;
   }

Have you tried having it plugged into usb just for power and still use the MIDI input?

No. Arduinoboy sends a note # that corresponds to the row # you started on when the clock starts (when you hit start) on MIDI channel 16. I should of had that as a option and not always on, for dumb devices that respond to all MIDI channels. You can comment out that code or remove that code, it's 3 lines in the "Mode_LSDJ_MasterSync" tab when you open up the arduinoboy code in the arduino software. At the bottom of the file you'll see this:

 /*
  sendMidiClockSlaveFromLSDJ waits for 8 clock bits from LSDJ,
  sends the transport start command if sequencer hasnt started yet,
  sends the midi clock tick, and sends a note value that corrisponds to
  LSDJ's row number on start (LSDJ only sends this once when it starts)
 */
void sendMidiClockSlaveFromLSDJ()
{
  if(!countGbClockTicks) {      //If we hit 8 bits
    if(!sequencerStarted) {         //If the sequencer hasnt started
      Serial.write((0x90+memory[MEM_LSDJMASTER_MIDI_CH])); //Send the midi channel byte
      Serial.write(readGbSerialIn);                //Send the row value as a note
      Serial.write(0x7F);                          //Send a velocity 127
      
      Serial.write(0xFA);     //send MIDI transport start message 
      sequencerStart();             //call the global sequencer start function
    }
    Serial.write(0xF8);       //Send the MIDI Clock Tick
    
    countGbClockTicks=0;            //Reset the bit counter
    readGbSerialIn = 0x00;                //Reset our serial read value
    
    updateVisualSync();
  }
  countGbClockTicks++;              //Increment the bit counter
 if(countGbClockTicks==8) countGbClockTicks=0; 
}

change it to this:

 /*
  sendMidiClockSlaveFromLSDJ waits for 8 clock bits from LSDJ,
  sends the transport start command if sequencer hasnt started yet,
  sends the midi clock tick, and sends a note value that corrisponds to
  LSDJ's row number on start (LSDJ only sends this once when it starts)
 */
void sendMidiClockSlaveFromLSDJ()
{
  if(!countGbClockTicks) {      //If we hit 8 bits
    if(!sequencerStarted) {         //If the sequencer hasnt started
      Serial.write(0xFA);     //send MIDI transport start message 
      sequencerStart();             //call the global sequencer start function
    }
    Serial.write(0xF8);       //Send the MIDI Clock Tick
    
    countGbClockTicks=0;            //Reset the bit counter
    readGbSerialIn = 0x00;                //Reset our serial read value
    
    updateVisualSync();
  }
  countGbClockTicks++;              //Increment the bit counter
 if(countGbClockTicks==8) countGbClockTicks=0; 
}

As far as battery vs usb vs wallwart, that shouldn't matter, as long as the battery or wallwart is supplying enough power.

Server maintenance will occur durring these hours:

Start: Friday, March 30, 2012 5:00am EDT
End: Friday, March 30, 2012 7:00am EDT

We are expected to have intermittent MYSQL connection issues durring these hours while they perform a upgrade.

Thanks and have a wonderful life.

16

(45 replies, posted in Bugs and Requests)

akira^8GB wrote:

Now this app looks interesting! Also a forum interface would be good, since reading stuff up on an iPhone browser, for example, is rather annoying.

one of those things I want to get to, is redoing our css, and adding mobile css support in the process.