Hugo Contributions


#9

yeah, my stuff was merged


#10

Perfect!
I can now share my objects related to it.


#11

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


#12

Oh, i must have missed something there, hope its fine now.


#13

Thanks a lot !......


#14

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?


#15

The only GPIO that can work as extra MIDI input is PA3


#16

Ok that sounds pretty clear, but doesn't match with what Hugo says in his example patch. Any Ideas @Hugo?


#17

Sorry, I was wrong, only PA3 can be used to receive MIDI...


#18

Yeah, that is the pin for receiveing Serial. Thanks for helping out. By the way, great weekend, people!


#19

Yes awesome it was :slight_smile: What about PA2, could it be sending too?


#20

PA2 is the optional MIDI OUT.


#21

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


#22

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?

  1. 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 :wink:


#23

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
#24

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
#25

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


#26

I was using a teensy 3.6, I changed to Arduino one and it works perfectly.
interesting...


#27

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
#28

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