yeah, my stuff was merged
Hugo Contributions
Sorry but I can't see your repo in the 1.0.10 branch...
And it seems that your object is in /spi directory instead of /gpio/spi
He Hugo,
I'm interested in an extra midi input and I was wondering if if it matters wich gpio pin I take.
The only one free I have atm is PA6. Would that work?
Ok that sounds pretty clear, but doesn't match with what Hugo says in his example patch. Any Ideas @Hugo?
Yeah, that is the pin for receiveing Serial. Thanks for helping out. By the way, great weekend, people!
He Hugo I want to use your objects to connect two axoloti boards. The kind people at fablab told me that I could connect Pa2 to Pa3 directly and vice versa, and that both boards should have a common ground.
Have you tried this? @Johannes you think this is possible / without dangers?
P.s. Ah I see you suggest Pa2 to Pa3 on the same board in your help patch, so it should be no problem with two boards
He I succesfully send some midi notes back and forth. Now I have two things:
1. The scaling is a bit weird. Usualy with a note out object you would have a bipolar input with -64 to +64 transliating to 127 midi range.
Now for example if I enter 64 I get midi note 63 in axoloti (126 in midi). How would I get 64/127?
(2. How do I send CCs?
- I only got it to work with the help patch. The script in the community library gives me this:)
Edit: Ok I now understand a bit better what this is about. So you modded the script object so that you could use the mentioned pins to send midi. And depending on what kind of data you want to send you have to write your code into the script.
I was able to get your example patch script to send CCs. But for sending a value I would need the script with the 3 inlets that you have in the community library right? If you have a complete note out and CC (note number, trigger + value, CCnumber, trigger + value) ready I would really apreciate you posting it, since I'm lacking the programming skills to get this to work
hug/physical_model_bar.axo
Just added the award winning physical modelling object to the community library. It is an implementation of a clamped bar, adapted from a concept published in this book.
The object bar can either be hit with a hammer (trig, velo) or used as a resonator for an audio signal (i1). The pickup along the bar can be chosen (offset) and physical parameters can be adjusted (mu, decay), acting similar to a low-pass filter and reverb. The "wood" attribute changes the sound from a metallic to wooden. This attribute scales approximately linear with the CPU requirement.
It may still be a bit unstable for certain input parameter combinations or abrupt paramter changes, so keep a finger on the decay parameter to tame the system once it explodes. I will soon try to further limit the parameter ranges.
15.-16.10. 2016 Music Hack Day Berlin
hug/math/octaveShift.axo
A simple math module, that is useful for octave shifting. The two trigger inputs can be used to scale up and down. The result will have a corresponding output like ... -12. 0, +12. +24... Simply add this to the midi note signal that you want to shift.
The trigger output is active when both input triggers are active. So you can trigger something else by pressing both buttons at the same time.
Add an octave up and/or down
hello Hugo,thank you for your contributions, a question
I am sending midi notes by the arduino serial and I have open your example of extra midi i / o. (both with serial 31250)
I have configured from arduino tx to pin PA3 of axoloti but I do not see anything coming.
I have to add some object to your example to see something?
Should I use some special code in the arduino part?
Would I have to see the something in the obeto display / chart p?
this is the code that I am using in arduino
void setup()
{
//Set up serial output with standard MIDI baud rate
Serial.begin(31250);
}
void loop()
{
//Play a chromatic scale starting on middle C (60)
for(int note = 60; note < 72; note++)
{
//Play a note
playMIDINote(1, note, 100);
//Hold note for 60 ms (delay() used for simplicity)
delay(60);
//Turn note off (velocity = 0)
playMIDINote(1, note, 0);
//Pause for 60 ms
delay(60);
}
}
void playMIDINote(byte channel, byte note, byte velocity)
{
//MIDI channels 1-16 are really 0-15
byte noteOnStatus=0x90 + (channel-1);
//Send notes to MIDI output:
Serial.write(noteOnStatus);
Serial.write(note);
Serial.write(velocity);
}
regards
teensy needed a different code, because their serial ports are different from those of the arduino, in case someone is interested I put teensy code
#include <MIDI.h>
MIDI_CREATE_INSTANCE(HardwareSerial, Serial1, MIDI);
const int channel = 1;
void setup() {
MIDI.begin();
}
void loop() {
int note;
for (note=10; note <= 127; note++) {
MIDI.sendNoteOn(note, 100, channel);
delay(20);
MIDI.sendNoteOff(note, 100, channel);
}
delay(20);
}
Axoloti w/Teensy
Hey there . I added midi clock to this patch . Ive got it working so far on a first glance but have to test it better.
Tested with raspberry pi -> midi in & out -> UART -> Axoloti .
Testing required
Add this to the midi receiving script, in the first lines of MidiInByteHandler
// FILTER AND SEND CLOCK MESSAGE
if(data & 0xf8){
MidiInMsgHandler(MIDI_DEVICE_INTERNAL,port,0xf8,data,0);
}
This is not working actually. My baud rate was messy and I got wrong readings