Fluxamasynth Bagpipe chanter

hi

I am very new to all of this, the only project that I sucessfully finnished was the echanter from www.echanter.com
I was using a arduino extracore chip and a usb bub 2 to do it.

The project i would like to start on is a Fluxamasynth with arduino uno stuck in board incase i need to reprogram it
with midi intrument. maybee and board with midi in midi out. and have all 128 instruments

I done little programing with java and c++

I have connected the arduino uno to fluxamasynth with a usb to the uno

I need to know where to start

Here's a schematic to start with http://www.fluxly.com/blog/2010/11/fluxamasynth.html

I was hopeing to find code to make this an instrument =(

will this code work?????

Const Device = CB220 "when i tried to verify this it said CONST DOES NOT NAME TYPE

Opencom 1,31250,3,30,20

Putstr 1,240,127,127,4,1,0,127,247 'set the master volume, you can change from 0 to 127 modifing the last 127 number value

Putstr 1,192,1 ' program change, we set the instrument from 0 to 127 that we want ,we change the last value..!!

Putstr 1,144,60,64 ' play notes on
Delay 1000 ' we put a pause
Putstr 1,128,60,64 ' turn off notes

Sorry but I understood that you were going to make an instrument using the fluxamasynth as a base for the electronics. What exactly are you trying to do?

=( =( =(
I need to get the programing code right to make an midi bag pipe with all the 127 or 128 instruments.
I might add a board for midi in and midi out

You have two things to do.

  1. Translate input switches into MIDI note messages.
  2. Have extra switches that you translate into MIDI change voice commands.

Until you have worked out how this is going to happen then there is no need to worry about the software which is rather trivial.

As an example of how trivial it is see the code in this project:-
http://www.thebox.myzen.co.uk/Hardware/Pendulum.html

=( =( =( =( =( =( =( =( =( =( =(
c++ c++ c++ this is the programing code i need. i have no problem with keys. i am using touch senitive controls like wire to thumb tacks.
i did this with the echanter project from www.echanter.com

Stop crying and read the code in that web page, it shows you how to convert a contact closure into a MIDI note on / command and voice change.

I got it, the board is already programed as a synth but i must add librarys. or the board needs programing as a synth with keys.
noob here! :stuck_out_tongue: grumby mike that page you sent me looked like just schematics. I didn't learn any thing on programing.

At the bottom of Mike's design section is a link to a zip file for the code that drives his pendulum thing. I assume that is what he means about the code. Easy to miss.

but i must add librarys.

No you must not. Librarys are not the answer to everything, they stop you from learning what is happening. In this case it is useless looking for a library because I doubt if anyonrpe has actually done this before.
This project sounds too complex for your current state of knowlage, do a bit of learning first.

There are about 3 things that I think you need to be able to do here

  1. Read the on or off state of a button
  2. Be able to send a message through the serial port (or instruct the fluxamasynth to do something)
  3. Understand what midi instrument you are trying to use as a voice for the midi stream.

Can you do the above? If you you have all the elements you need to carry out this project.

What libraries do you think that you need and why?

//
// SoftFluxaSynthSMF.pde: Simple player for byte code files which can be
// generated from MIDI format 0 or 1 files with
// midi2fluxama.pl
//
// Copyrights:
// Copyright (C) 2012 Holger Wirtz dcoredump@gmail.com
//
// This program may be modified and distributed under the
// terms of the GNU General Public License v3. You should have received
// a copy of the GNU General Public License along with this
// program; if not, write to the Free Software Foundation, Inc.
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// USE THIS PROGRAM AT YOUR OWN RISK!
//
// This program code uses "Fluxamasynth_NSS.h" which ca be found at
// http://wiki.moderndevice.com/uploads/MD/Fluxamasynth.zip
//
// The code is testet with Arduino-0.22 but should be easy
// portable to Arduino-1.0.
//
// PREREQUIREMENTS
// You also need the following libraries:
// NewSoftSerial.h NewSoftSerial | Arduiniana
// Flash.h MsTimer2 and FlexiTimer2 Arduino Libraries, Run a Function At Regular Intervals
// FlexiTimer2.h Flash | Arduiniana
//
// See http://arduino.cc where to get the libraries and how to install them.
//
// If someone has MIDI data which sounds amazing and is licensed "free" please
// drop me the MIDI oder header file for including in this distribution.
//

#include <Fluxamasynth_NSS.h>
#include <NewSoftSerial.h> // for software serial (using pin 4)
#include <Flash.h> // needed for storing the song data in PROG_MEM
#include <FlexiTimer2.h> // for correct, interrupt based timing
#include "data.h" // this is the file with the data generated by
// midi2fluxama.pl

#define MASTER_VOL_MAX 100 // the maximum volume

Fluxamasynth synth; :stuck_out_tongue: :stuck_out_tongue: :Pthis says fluxamasynth does not name type :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue:
unsigned int sp; // the song pointer
unsigned long tempo=500000L;
const int events=midi_data.count();

void setup()
{
synth.midiReset();
synth.setMasterVolume(MASTER_VOL_MAX);
event();
}

void loop()
{
;
}

void event()
{
unsigned long tmp_ulong=0UL;
unsigned int tmp_uint=0,bend=0,wait=0,tmp_sp=0;
byte i=0;

// save the actual song pointer
tmp_sp=sp;

if(sp<events)
{
// special handling of command 7 (delay)
if((midi_data[sp+1]&0x0f)==7)
{
// for delaying next event >255 ticks
for(i=0;i<2;i++)
{
tmp_uint=(unsigned int)midi_data[sp+i+1];
wait+=tmp_uint<<((1-i)*8);
}
sp+=4;
}

if(midi_data[tmp_sp]+wait>0)
{
// timer for the next event
FlexiTimer2::set((((float)tempo/1000)*(((float)midi_data[tmp_sp]+wait)/ppqn)),event);
FlexiTimer2::start();
}

// check the type of event
switch(midi_data[sp+1]&0x0f)
{
case 0: // NoteOn
synth.noteOn(midi_data[sp+1]>>4,midi_data[sp+2],midi_data[sp+3]);
sp+=4;
break;
case 1: // NoteOff
synth.noteOff(midi_data[sp+1]>>4,midi_data[sp+2]);
sp+=3;
break;
case 2: // Controller
synth.setChannelController(midi_data[sp+1]>>4, midi_data[sp+2],midi_data[sp+3]);
sp+=4;
break;
case 3: // PitchBend
for(i=0;i<2;i++)
{
tmp_uint=(unsigned int)midi_data[sp+i+1];
bend+=tmp_uint<<((1-i)*8);
}
synth.pitchBend(midi_data[sp+1]>>4, bend);
sp+=4;
break;
case 4: // ProgramChange
synth.programChange(0,midi_data[sp+1]>>4, midi_data[sp+2]);
sp+=3;
break;
case 5: // Aftertouch
synth.setChannelAftertouch(midi_data[sp+1]>>4, midi_data[sp+2]);
sp+=3;
break;
case 6: // Tempo
tempo=0UL;
for(i=0;i<4;i++)
{
tmp_ulong=(unsigned long)midi_data[sp+i+2];
tempo+=tmp_ulong<<((3-i)*8);
}
sp+=6;
break;
}

if(midi_data[tmp_sp]==0)
event();
}
else
{
// after the end of the song reset the Fluxamasynth
synth.midiReset();
FlexiTimer2::set(5000,event);
FlexiTimer2::start();
return;
}
}

The code you have posted runs the fluxamsynth and you clearly have a library that will control that device, including examples of how to turn notes on and off and change performance parameters.

How you implement the interface to your instrument switches is really a matter of how your instrument works and what you are trying to achieve in the way of performance. Assuming that you have implemented the echanter according to the web site instructions, you have the inputs necessary to do what you need.

I have to say that I am still confused as to what you really need from the forum.

i need to know how to add values to the library to finnish it.

if i can't program it to do all the things i want, i just need to hear midi notes from the damn thing.

What do you mean by 'adding values'? Assume I am really stupid (which I am about what is in your head) and explain it in detail :slight_smile:

noob...... THATS WHY MY KARMA IS 0

Parameters.
for stuff like this

void noteOn(byte channel, byte pitch, byte velocity);

i don't know how to set this up.

I think thats it.

No, don't think your stupid. Noob here! I only programed one c++ program in my life.
hello world. java 4-8 programs.
My consin is a computer programer, he will help me better.
please have mercy.

There's lots of stuff out in internet land for what these mean. Specifically for just a table of notes and their numbers just Google "MIDI note table".
Here are a couple:
http://computermusicresource.com/midikeys.html

Here's some other links that I found helpful when I was researching my MIDI file library.
MIDI.ORG very detailed but has all the info. Can be confusing at times. Specs
More (similar) detail explained differently MIDI Specification

BTW, I don't expect you tho think I am stupid, you just need to explain stuff to others in great detail as we cannot guess what you are trying to do, and it can get frustrating.

:slight_smile:
Ok, now I have the right libraries for fluxamasynth and I can compile a sketch.
I will now work to make this an instrument. bagpipe chanter.
Please send links for code on and things that may help.

Thanks marco. Sorry if I wasted your time.