MUFF WIGGLER Forum Index
 FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 
WIGGLING 'LITE' IN GUEST MODE

My Homemade MELLOTRON!
MUFF WIGGLER Forum Index -> Music Tech DIY Goto page Previous  1, 2 [all]
Author My Homemade MELLOTRON!
schoenramer
The joke-post before this post does not really help....
Also the woodwork is nice, but its not essential for a Mellotron Emulation....
That is the finished artwork....

Back to my real things...
This is the source code of my Mellotron based on Arduino Mega and WavTrigger board. It is written and tested 2 years ago in one evening, because my band (www.necronomicon-1972.com) needs the sound.
It is used by our keyboarder until today, unchanged.....

If anybody likes to get more info -> PN.
When Tsunami from Robertson is available (in Germany), I will work for a "more final" version. This will include also the fading between the heads of the original Mello.

The code is amazing small. But ist is a 00.1 Version. Stable running.
The real work is done by Jamie Robertson and his WavTrigger board.

Code:
//
//  Sketch: Mellotron with Arduino Mega and WavTrigger Board
// Created: 5/17/2015
//    Name: deleted
//
// Based on the example "WTriggerUno" from Jamie Robertson, jamie@robertsonics.com
//
// Designed for the Arduino Mega because the keyboard matrix uses 2 ports (A and C)
// and the Display needs additional Pins
//
// Reads a key matrix of 8 columns and 8 lines
//    the first 6 columns reads about 48 keys from the keyboard
//    column 7 ; 1 to 5 Soundselect
//    column 7 ; 6      pitch octave lower
//    column 7 ; 7      pitch adjustable
//    column 7 ; 8      pitch octave higher
//    column 8 ; 1 to 5 Soundbank (each can include 5 sounds, 25 sounds in total )
//    column 8 ; 6 to 8 reserve
//
//
#include <Metro.h>            // used ????
#include <AltSoftSerial.h>    // Arduino build environment requires this
#include <wavTrigger.h>       // wavTrigger.h is changed to use hardware serial1
#include <LiquidCrystal.h>    // LCD Library
#include <OneButton.h>
#include <TimerOne.h>

LiquidCrystal lcd(49, 48, 53, 52, 51, 50); // defines pins used for LCD-display

#define NumberOfKeys 66       // Start is 1; 0 and for security 1 more defined
// Key 1 is the note f3
// key 44 is the note c7
// key 45, 46, 47, 48 is sound select A, B, C, D, E (all open)
// key 49, 50, 51, 52, 53, 54, 55, 56 Soundbank 1...9 (all open)
// key 57 ... 64 not used

const int pushbutton = 42; // not used in actual version
OneButton button ( pushbutton, true );   // pushbutton

#define poti_pitch 0
#define poti_volume 1

wavTrigger wTrig;             // WAV Trigger object
int  gWTrigState = 0;         // WAV Trigger state
int  gRateOffset = 0;         // WAV Trigger sample-rate offset

int  voice = 0;               // this has to be set by the soundbank and soundselect switches
int  voice_old = 0;               // to detect changes
int Keys[NumberOfKeys];       // Memory for detection of key changes

int Columns[] = { B01111111,  // output columns key matrix
                  B10111111,
                  B11011111,
                  B11101111,
                  B11110111,
                  B11111011,
                  B11111101,
                  B11111110
                };

// Offset of 36 voices each 50 wav files, 44 are actually used (f3 ... c7)
int Voices[] = {
  /* 1*/    0,    50,   100,
  /* 2*/  150,   200,   250,
  /* 3*/  300,   350,   400,
  /* 4*/  450,   500,   550,
  /* 5*/  600,   650,   700,
  /* 6*/  750,   800,   850,
  /* 7*/  900,   950,  1000,
  /* 8*/ 1050,  1100,  1150,
  /* 9*/ 1200,  1250,  1300,
  /*10*/ 1350,  1400,  1450,
  /*11*/ 1500,  1550,  1600,
  /*12*/ 1650,  1700,  1750
                 };

// Text to display sound in first display line (20 Characters)
char* Name[] = {
      /* "12345678901234567890",  "12345678901234567890",  "12345678901234567890", */
  /* 1*/ "1A - 3 Violinen     ",  "1B - Cello          ",  "1C - Chor gemischt  ",
  /* 2*/ "2A - Floete         ",  "2B - Chor Maenner   ",  "2C - 3 Viol, Klari  ",
  /* 3*/ "3A - Chor           ",  "3B - Chor Female    ",  "3C - 12 String Git  ",
  /* 4*/ "4A - Chor Maenner   ",  "4B - 3 Viol, Cello  ",  "4C - Orgel          ",
  /* 5*/ "5A - Org, 4 Viol    ",  "5B - Orgel, Cello   ",  "5C - Org, Viol, Cell",
  /* 6*/ "6A - Orgel, Floete  ",  "6B - Orgel, Chor 1  ",  "6C - Oergel, Chor 2 ",
  /* 7*/ "7A - Orgel, Chor 3 ",  "7B - Klarinette     ",  "7C - Trompete       ",
  /* 8*/ "8A - 2 Trompeten    ",  "8B - Trompete, Sax  ",  "8C - Chor 8/15      ",
  /* 9*/ "9A - Chor 15        ",  "10B - Brass 1       ",  "10C - Brass 2       ",
  /*11*/ "11A                 ",  "11B                 ",  "11C                 ",
  /*12*/ "12A                 ",  "12B                " ,  "12C                 "
};

int i_key;                   // index in Keys
int i_columns;               // index in Columns
int i_voice;                 // index in Voices
int key_input;               // input of one key
int i = 0;
int j = 0;
int voice35;                 // flag for pushbutton voices
int pitch;
int pitch_old;
int pitch_set;
int volume;
int volume_old;
int volume_set;
int switch3;
int switch12;
char buffer1[21];  // lcd display line 1
char buffer2[21];  // lcd display line 2

int q_key;    // diagnostic shows the key# pressed and released negative


// ###################################################################### #####
void setup() {
  lcd.begin(20, 2);

  DDRA  = B00000000; // Port A inputs, keyboard lines
  PORTA = B11111111; // Pullup on
  DDRC  = B11111111; // Port C output, keyboard columns

  button.attachClick( clicked );
  button.attachDoubleClick( doubleclicked );

  Timer1.initialize(100000);
  Timer1.attachInterrupt(lcd_display);

  pinMode(47, INPUT_PULLUP);
  pinMode(45, INPUT_PULLUP);
  pinMode(43, INPUT_PULLUP);
  pinMode(41, INPUT_PULLUP);

  wTrig.start();      // WAV Trigger startup at 57600
}

// ###################################################################### #####
void loop() {
  button.tick();

  //################################# scans 64 keys in a matrix of 8 x 8
  i_key = 1;

  for ( i_columns = 0; i_columns <= 6; i_columns++) {
    PORTC = Columns[i_columns];                             // output 0 of 7 columns
    delayMicroseconds(2);

    for (i = 22; i <= 29; i++ ) {                            // loop to read 8 keys of one column
      key_input = digitalRead(i);                           // MEGA input is conected from Pin22 to Pin30

      if (key_input != Keys[i_key]) {                       // if key changed
        Keys[i_key] = key_input;                            // changes into memory

        if ( i_key <= 44) {                                // keyboard ends at key 44
          if ( key_input and voice < 1500 ) {             // High -> sound off, voices from 1500 run until end
            wTrig.trackStop( i_key + voice );
            q_key = -1 * i_key;
          }
          else {                                              // Low -> sound on
            wTrig.trackPlayPoly( i_key + voice );
            q_key = i_key;
          }
        } else {
          /*   if ( i_columns = 6 ) {
             switch12_9 = digitalRead(47); // key12_9
             switch12_10 = digitalRead(45);
               switch12_11 = digitalRead(43);
               switch12_12 = digitalRead(41);

             } */
        }
      }
      i_key++;                                              // next key
    }                                                       // next of 8 lines
  }                                                         // next of 8 columns



  // ################################# read the position of the 12-pos switch
  for ( switch12 = 49; switch12 <= 64; switch12++ ) {
    if ( ! Keys[switch12] ) {  // break if 0
      break;
    }
  }
  switch12 = switch12 - 49;

  // ################################# read the position of the 3-pos switch
  for ( switch3 = 45; switch3 <= 47; switch3++ ) {
    if (   ! Keys[switch3] ) {  // break if 0
      break;
    }
  }
  switch3 = switch3 - 45;

  i_voice = switch12 * 3 + switch3;
  voice = Voices[ i_voice ]; // define the voice

  if ( voice_old != voice ) {
    voice_old = voice;
    wTrig.stopAllTracks();
    for ( i_key = 1; i_key <= 44; i_key++) {
      Keys[i_key] = !Keys[i_key];
    }
  }


  //################################# read the pitch and volume
  pitch = analogRead( poti_pitch );

  if ( abs( pitch_old - pitch ) > 2 ) {
    pitch_old = pitch;
    pitch_set = pitch * 64 - 32767;
    wTrig.samplerateOffset( pitch_set ); // 0...1023 -> -32767 ... 32705
  }

  /*     volume = analogRead( poti_volume );

       if ( abs( volume_old - volume ) > 2 ) {
         volume_old = volume;
         volume_set = volume / 14 - 70;
         wTrig.masterGain( volume_set ); // 0 ... 1023 -> -70 ... 4
       }
  */

} // end loop()



// ###################################################################### ##############################################

// is called bei Timer1 (each 100ms)
void lcd_display() {
  lcd.setCursor(0, 0);
  sprintf(buffer1, "%s",  Name[i_voice]);
  lcd.print( buffer1);
  /*
    lcd.setCursor(0, 1);
    lcd.print( "                    ");
    lcd.setCursor(0, 1);
    sprintf(buffer2, "%04i %1i%1i%1i%1i", switch12 + 1, switch12_9, switch12_10, switch12_11, switch12_12 );
    lcd.print( buffer2);
  */
  lcd.setCursor(0, 1);
  lcd.print( "                    ");
  lcd.setCursor(0, 1);
  sprintf(buffer2, "pitch: % 3i  % 3i", pitch_set / 2717, q_key );
  lcd.print( buffer2);

}

// the following functions are called by click or doubleclick the pushbutton
// not used in this version
void doubleclicked() {
  if ( voice35 = 0 ) {
    voice35 = 2;
  }
  else {
    voice35 = 0;
  }
}

void clicked() {
  if ( voice35 = 0 ) {
    voice35 = 1;
  }
  else if ( voice35 = 2 ) {
    voice35 = 1;
  }
  else {
    voice35 = 0;
  }
}
EATyourGUITAR
schoenramer wrote:
The joke-post before this post does not really help...


two different styles of build. two different styles of music. I like them both. I think it is definitely on topic since he actually used real cassette tape. you have more of the look but with none of the working parts of a mellotron. if you are happy with it then I would say that you did good for yourself.
djsoulmachine
Totally agree!
Those who recreate Mellotron-like instruments with real tapes are today's heroes we're not worthy
i love mine but I would have loved to use tapes to do it'!
ersatzplanet
"back in the day" I made a loop player loosely based on the mechanical design of the Mellotron. I had bought a bunch of tape heads from a surplus store, and being still in college, I had access to a full woodshop (art major). I was doing plexiglass sculpture at the tome so had lots of 1/4" plexiglass laying around so made a VERY crude loop player. The capstan was a DC motor with a big shaft (I hung around a lot at surplus places) and it was shared by a bunch of loops. OI sandwiched the plexiglass in a way that every other piece left a 1/4" slot for the tape to hang in. plexiglass "keys" would be pressed and had felt pads and rollers on them and pressed the tape against the capstan and the playback heads at the same time. I couldn't make the spring return trick that the Mellotron used to snap the tape back so I used loops. It worked well enough but was like the original Mellotron, super heavy and awkward. You basically had to pull the keys and motor to change a tape loop. I ended up scrapping it.

I have thought of some new techniques that would make it easier to build today, but what is the point? I have two Wavetrigger modules now wich soon will be repurposed and replaced with a Tsunami board and they are just so convenient, and sound much better, and basically have such long playback times, that it is just not worth making a tape based version. If I wanted that "tape sound" I will just build it into the digital samples.
teevee
schoenramer wrote:
The joke-post before this post does not really help....
Also the woodwork is nice, but its not essential for a Mellotron Emulation....
That is the finished artwork....

Back to my real things...
This is the source code of my Mellotron based on Arduino Mega and WavTrigger board. It is written and tested 2 years ago in one evening, because my band (www.necronomicon-1972.com) needs the sound.
It is used by our keyboarder until today, unchanged.....

If anybody likes to get more info -> PN.
When Tsunami from Robertson is available (in Germany), I will work for a "more final" version. This will include also the fading between the heads of the original Mello.

The code is amazing small. But ist is a 00.1 Version. Stable running.
The real work is done by Jamie Robertson and his WavTrigger board.

Code:
//
//  Sketch: Mellotron with Arduino Mega and WavTrigger Board
// Created: 5/17/2015
//    Name: deleted
//
// Based on the example "WTriggerUno" from Jamie Robertson, jamie@robertsonics.com
//
// Designed for the Arduino Mega because the keyboard matrix uses 2 ports (A and C)
// and the Display needs additional Pins
//
// Reads a key matrix of 8 columns and 8 lines
//    the first 6 columns reads about 48 keys from the keyboard
//    column 7 ; 1 to 5 Soundselect
//    column 7 ; 6      pitch octave lower
//    column 7 ; 7      pitch adjustable
//    column 7 ; 8      pitch octave higher
//    column 8 ; 1 to 5 Soundbank (each can include 5 sounds, 25 sounds in total )
//    column 8 ; 6 to 8 reserve
//
//
#include <Metro.h>            // used ????
#include <AltSoftSerial.h>    // Arduino build environment requires this
#include <wavTrigger.h>       // wavTrigger.h is changed to use hardware serial1
#include <LiquidCrystal.h>    // LCD Library
#include <OneButton.h>
#include <TimerOne.h>

LiquidCrystal lcd(49, 48, 53, 52, 51, 50); // defines pins used for LCD-display

#define NumberOfKeys 66       // Start is 1; 0 and for security 1 more defined
// Key 1 is the note f3
// key 44 is the note c7
// key 45, 46, 47, 48 is sound select A, B, C, D, E (all open)
// key 49, 50, 51, 52, 53, 54, 55, 56 Soundbank 1...9 (all open)
// key 57 ... 64 not used

const int pushbutton = 42; // not used in actual version
OneButton button ( pushbutton, true );   // pushbutton

#define poti_pitch 0
#define poti_volume 1

wavTrigger wTrig;             // WAV Trigger object
int  gWTrigState = 0;         // WAV Trigger state
int  gRateOffset = 0;         // WAV Trigger sample-rate offset

int  voice = 0;               // this has to be set by the soundbank and soundselect switches
int  voice_old = 0;               // to detect changes
int Keys[NumberOfKeys];       // Memory for detection of key changes

int Columns[] = { B01111111,  // output columns key matrix
                  B10111111,
                  B11011111,
                  B11101111,
                  B11110111,
                  B11111011,
                  B11111101,
                  B11111110
                };

// Offset of 36 voices each 50 wav files, 44 are actually used (f3 ... c7)
int Voices[] = {
  /* 1*/    0,    50,   100,
  /* 2*/  150,   200,   250,
  /* 3*/  300,   350,   400,
  /* 4*/  450,   500,   550,
  /* 5*/  600,   650,   700,
  /* 6*/  750,   800,   850,
  /* 7*/  900,   950,  1000,
  /* 8*/ 1050,  1100,  1150,
  /* 9*/ 1200,  1250,  1300,
  /*10*/ 1350,  1400,  1450,
  /*11*/ 1500,  1550,  1600,
  /*12*/ 1650,  1700,  1750
                 };

// Text to display sound in first display line (20 Characters)
char* Name[] = {
      /* "12345678901234567890",  "12345678901234567890",  "12345678901234567890", */
  /* 1*/ "1A - 3 Violinen     ",  "1B - Cello          ",  "1C - Chor gemischt  ",
  /* 2*/ "2A - Floete         ",  "2B - Chor Maenner   ",  "2C - 3 Viol, Klari  ",
  /* 3*/ "3A - Chor           ",  "3B - Chor Female    ",  "3C - 12 String Git  ",
  /* 4*/ "4A - Chor Maenner   ",  "4B - 3 Viol, Cello  ",  "4C - Orgel          ",
  /* 5*/ "5A - Org, 4 Viol    ",  "5B - Orgel, Cello   ",  "5C - Org, Viol, Cell",
  /* 6*/ "6A - Orgel, Floete  ",  "6B - Orgel, Chor 1  ",  "6C - Oergel, Chor 2 ",
  /* 7*/ "7A - Orgel, Chor 3 ",  "7B - Klarinette     ",  "7C - Trompete       ",
  /* 8*/ "8A - 2 Trompeten    ",  "8B - Trompete, Sax  ",  "8C - Chor 8/15      ",
  /* 9*/ "9A - Chor 15        ",  "10B - Brass 1       ",  "10C - Brass 2       ",
  /*11*/ "11A                 ",  "11B                 ",  "11C                 ",
  /*12*/ "12A                 ",  "12B                " ,  "12C                 "
};

int i_key;                   // index in Keys
int i_columns;               // index in Columns
int i_voice;                 // index in Voices
int key_input;               // input of one key
int i = 0;
int j = 0;
int voice35;                 // flag for pushbutton voices
int pitch;
int pitch_old;
int pitch_set;
int volume;
int volume_old;
int volume_set;
int switch3;
int switch12;
char buffer1[21];  // lcd display line 1
char buffer2[21];  // lcd display line 2

int q_key;    // diagnostic shows the key# pressed and released negative


// ###################################################################### #####
void setup() {
  lcd.begin(20, 2);

  DDRA  = B00000000; // Port A inputs, keyboard lines
  PORTA = B11111111; // Pullup on
  DDRC  = B11111111; // Port C output, keyboard columns

  button.attachClick( clicked );
  button.attachDoubleClick( doubleclicked );

  Timer1.initialize(100000);
  Timer1.attachInterrupt(lcd_display);

  pinMode(47, INPUT_PULLUP);
  pinMode(45, INPUT_PULLUP);
  pinMode(43, INPUT_PULLUP);
  pinMode(41, INPUT_PULLUP);

  wTrig.start();      // WAV Trigger startup at 57600
}

// ###################################################################### #####
void loop() {
  button.tick();

  //################################# scans 64 keys in a matrix of 8 x 8
  i_key = 1;

  for ( i_columns = 0; i_columns <= 6; i_columns++) {
    PORTC = Columns[i_columns];                             // output 0 of 7 columns
    delayMicroseconds(2);

    for (i = 22; i <= 29; i++ ) {                            // loop to read 8 keys of one column
      key_input = digitalRead(i);                           // MEGA input is conected from Pin22 to Pin30

      if (key_input != Keys[i_key]) {                       // if key changed
        Keys[i_key] = key_input;                            // changes into memory

        if ( i_key <= 44) {                                // keyboard ends at key 44
          if ( key_input and voice < 1500 ) {             // High -> sound off, voices from 1500 run until end
            wTrig.trackStop( i_key + voice );
            q_key = -1 * i_key;
          }
          else {                                              // Low -> sound on
            wTrig.trackPlayPoly( i_key + voice );
            q_key = i_key;
          }
        } else {
          /*   if ( i_columns = 6 ) {
             switch12_9 = digitalRead(47); // key12_9
             switch12_10 = digitalRead(45);
               switch12_11 = digitalRead(43);
               switch12_12 = digitalRead(41);

             } */
        }
      }
      i_key++;                                              // next key
    }                                                       // next of 8 lines
  }                                                         // next of 8 columns



  // ################################# read the position of the 12-pos switch
  for ( switch12 = 49; switch12 <= 64; switch12++ ) {
    if ( ! Keys[switch12] ) {  // break if 0
      break;
    }
  }
  switch12 = switch12 - 49;

  // ################################# read the position of the 3-pos switch
  for ( switch3 = 45; switch3 <= 47; switch3++ ) {
    if (   ! Keys[switch3] ) {  // break if 0
      break;
    }
  }
  switch3 = switch3 - 45;

  i_voice = switch12 * 3 + switch3;
  voice = Voices[ i_voice ]; // define the voice

  if ( voice_old != voice ) {
    voice_old = voice;
    wTrig.stopAllTracks();
    for ( i_key = 1; i_key <= 44; i_key++) {
      Keys[i_key] = !Keys[i_key];
    }
  }


  //################################# read the pitch and volume
  pitch = analogRead( poti_pitch );

  if ( abs( pitch_old - pitch ) > 2 ) {
    pitch_old = pitch;
    pitch_set = pitch * 64 - 32767;
    wTrig.samplerateOffset( pitch_set ); // 0...1023 -> -32767 ... 32705
  }

  /*     volume = analogRead( poti_volume );

       if ( abs( volume_old - volume ) > 2 ) {
         volume_old = volume;
         volume_set = volume / 14 - 70;
         wTrig.masterGain( volume_set ); // 0 ... 1023 -> -70 ... 4
       }
  */

} // end loop()



// ###################################################################### ##############################################

// is called bei Timer1 (each 100ms)
void lcd_display() {
  lcd.setCursor(0, 0);
  sprintf(buffer1, "%s",  Name[i_voice]);
  lcd.print( buffer1);
  /*
    lcd.setCursor(0, 1);
    lcd.print( "                    ");
    lcd.setCursor(0, 1);
    sprintf(buffer2, "%04i %1i%1i%1i%1i", switch12 + 1, switch12_9, switch12_10, switch12_11, switch12_12 );
    lcd.print( buffer2);
  */
  lcd.setCursor(0, 1);
  lcd.print( "                    ");
  lcd.setCursor(0, 1);
  sprintf(buffer2, "pitch: % 3i  % 3i", pitch_set / 2717, q_key );
  lcd.print( buffer2);

}

// the following functions are called by click or doubleclick the pushbutton
// not used in this version
void doubleclicked() {
  if ( voice35 = 0 ) {
    voice35 = 2;
  }
  else {
    voice35 = 0;
  }
}

void clicked() {
  if ( voice35 = 0 ) {
    voice35 = 1;
  }
  else if ( voice35 = 2 ) {
    voice35 = 1;
  }
  else {
    voice35 = 0;
  }
}
ยจ


Any updates?

it could be cool to see this packed in a desktop version similar to Memotron M2D.
Monkizzle
RAD BUILD! SlayerBadger!
djsoulmachine
This is it! After 3 years (and many breaks...), I am proud to introduce the PSYLOTRON in its final form!
A big thanks for all your support!

By the way, who's going to be the first to recognize all the 6 songs composing the Medley? wink
Rockin' Banana!



ersatzplanet
Looks beautiful and I bet is is quite a bit lighter than the original.
djsoulmachine
ersatzplanet wrote:
Looks beautiful and I bet is is quite a bit lighter than the original.


haha thanks, but still heavy though Dead Banana
AonFLuX
Amazing work! Looks and sound great smile
JediDJ
That's awesome. )
Respect !
Reality Checkpoint
Brilliant work, sounds very good indeed. (Love your Ibanez bass by the way!)
djsoulmachine
Reality Checkpoint wrote:
Brilliant work, sounds very good indeed. (Love your Ibanez bass by the way!)


Thanks a lot everyone!! thumbs up

And yes, I love that Ibanez bass!
What I especially love is that, because of its open body, it has a pure sound even unplugged!
Rockin' Banana!
djsoulmachine
To sum up:

1 - King Crimson - In the Court of the Crimson King
2 - The Moody Blues - Nights in White Satin
3 - David Bowie - Space Oddity
4 - AIR - Playground Love
5 - Radiohead - Exit Music (for a Film)
6 - Pink Floyd - A Saucerful of Secrets

Thanks to everyone who played the game thumbs up
devinw1
That thing looks and sounds friggin great! Love the video editing too!

You should sell these things!
johnstilton
These videos are stunning.

I would love to have one of these in my living room!
tobb
wow,great job you did,stunning! thumbs up eek!
glennfin
Did you ever get a great idea to build something really cool, and then someone beats you to it... yup. d'oh!

I'm doing the same thing with the wav trigger board except I'm building it into a toy piano case, with a mini keyboard, painted white (of course) and it will be called "minitron".

Your full size case is beautiful! Excellent work..
Too heavy to move around for us old guys. cry

Mr. Green

So.... the majority of the insides is just empty space?
djsoulmachine
glennfin wrote:
Did you ever get a great idea to build something really cool, and then someone beats you to it... yup. d'oh!

I'm doing the same thing with the wav trigger board except I'm building it into a toy piano case, with a mini keyboard, painted white (of course) and it will be called "minitron".

Your full size case is beautiful! Excellent work..
Too heavy to move around for us old guys. cry

Mr. Green

So.... the majority of the insides is just empty space?



Haha, I'm so looking forward to this Minitron!! applause

And, yes, it is quite heavy. Some Synth Events contacted me to introduce the Psylotron but I'm not even sure I can bring it downstairs haha Dead Banana

And, yes, it is mostly empty! On another forum, someone suggests that I should use the free space to add a minibar Guinness ftw!
marwatt
any chance to see the layout and/or the wiring schematics ? thank you
MUFF WIGGLER Forum Index -> Music Tech DIY Goto page Previous  1, 2 [all]
Page 2 of 2
Powered by phpBB © phpBB Group