Open Theremin and Zynthian

Hi @MrDham!

I’m thinking about the best way of increasing the PB range for the engines that supports it:

  • ZynAddSubFX => This will be the first! :wink:
  • FluidSynth
  • LinuxSampler

BTW, it will be really nice to use the OpenTheremin as a MIDI controller sending messages different of PitchBending, specially CC, so you can control cutoff or resonance with one hand … what do you think about it?

Kind Regards,

@jofemodo, you should work on your sales pitch :slight_smile:
Everybody needs a second Zynthian as separate Midi Filter engine.

1 Like

You are completely right … my head is gonna explode!!! Puuuuum!!! :rofl::rofl::rofl:
Love you, @mheidt! :love_you_gesture::love_you_gesture:

Hello,

I implemented 200 cts mode for sake of compliance with standard (PITCH pot : 1, 2, 7, 12 or 24 semitones in midi calibration mode).
It is commited on my Github master branch.
I also labeled the current design with tag V1.0

@Jofemodo, to answer to your question, Yes, I can affect theremin pitch value to CC16 (ribbon controler) for example.

Anyway, I need to collect all request for more flexible design and to develop them in a separate branch as architecture could be impacted.
The challenge is to have configurable design without bringing too much complexity to the HMI (hidden settings, …). I also need to avoid starting headlong in a wrong direction for the V2.0.

Is there any filtering and or cc redirection function in Zynthian ?
Or do you know this bundle: http://thepiz.org/pizmidi/?p=pizmidi ?

It should resolve specific needs before I develop this design furthermore.
Especially “midiConverter3” would do the job for most applications (it can redirect notes to cc).
Such solution would need possibility to cascade modules like this:
MIDI IN —midi signal—> MIDI converter module —midi signal—> Soft Synth Module
I am a bit new here, I don’t know if zynthian allows that.

Strange… http://thepiz.org/pizmidi/?p=pizmidi ? doesn’t work (Error 404) despite I just tried this link successfully during the afternoon (European time). It worths giving a try later anyway.

Anyway you can also use https://code.google.com/archive/p/pizmidi/downloads.
There are some files named “pizjuce****” and some other are named “pizmidi****”.
The bundle that I am refering to is “pizmidi****”.

Hi @MrDham!

Thanks a lot for implementing the 200 cents code. I will check it ASAP!

Regarding Zynthian, it have a complete MIDi filtering system, based in rules:

It’s a new feature, and probably there are some bugs, but it’s working. It can map almost any MIDI message in any MIDI channel to any other MIDI message in a different channel, and more :wink:

It can not make range conversions, but this feature could be added if needed.

Regarding the Open Theremin connected to Zynthian, there is no need to implement CC in the firmware, as the PB can be mapped to any CC. Also the volume CC7 can be mapped to other CC. Something like that:

MAP CH#1 PB => CH#1 CC#71
MAP CH#1 CC7 => CH#1 CC#74

My suggestion was wishful thinking about making OpenTheremin a more flexible controller …

Kind Regards

This filtering system is a very smart solution, great !

The first release of MIDI open theremin is to make it speak to other synth devices. That’s done.

Sure I need to see how I can make it more configurable.
There is many way to go for that. That’s why I want to collect different users’ ideas and sort out some architecture.
BTW, assigning a CC to pitch the antenna is one of these good ideas !

I was just wondering if you had some temporary solution on your side during this development.

Hello,

@gaudi and @jofemodo some of your expectations are implemented and under verification process there :https://github.com/MrDham/OpenTheremin_V3_with_MIDI/tree/V2-Project.

I let you have a look at the readme file.

1 Like

Thanks @MrDham!

I will test it ASAP :wink:

Regards,

Ahhh nice! Just created my HIDuino-based OpenTheremin and hopefully can test this soon! Just flashing the new software.

Thx && regards, Holger

Hello,

I corrected two not so nice bugs in the branch “V2-Project”

Corrected bugs :
Default startup settings eclipsed by pot position.
Stuck notes when changing channel.

Maybe it worth re-downloading the files if you use “V2-Project” branch.

1 Like

Hello,

I implemented the last idea I had in my to do list into the branch “V2-Project”: Velocity Sensivity.

Volume Antenna Loop generates selected midi continuous controler change, starting NOTEON and ending NOTE OFF (when playing staccato).

The volume trigger can be configured so as we have some volume at note attack on percussive sounds. The volume trigger setting is also used to set sensitivity for velocity (how fast volume loop hand is moving when note is triggered). Matter of fact, the higher is this setting, less margin we have for volume variation. It is compensated by increase of velocity sensitivity.

2 Likes

Hi Vincent @MrDham,

I tried the last days with Open Theremin V3 and MIDI. The standard firmware works, but I has some problems with HIDuino on my Uno: seems that I have a problem with clones of the Uno. I set the baudrate to 31250 in application.cpp. But also test programs don’t work. Will buy a non-clone Uno and try again.

I also tried a Leonardo. But the Open Theremin code won’t work with the Leo - so the MIDIUSB library can also not be used :thinking:

Do you have tried HIDuino on a UNO-SMD?

Regards, Holger

Hello Holger @C0d3man,

I have just one Arduino Uno V3 with the “dual in line” ATmega328P and an Atmel 16U2 USB controler.
I tried Hiduino using Atmel’s FLIP software without any problem.
(BTW, my personnal goal is to use open theremin v3 like a standard usb midi controler)

By “test software” do you mean the midi tutorial that is in Arduino’s IDE example library ?
I tend to think that if this test software don’t work, it means that problem is rather in the USB controler.
Do you know which one is it ?
Did you use Flip or an ISP ?

That’s also my favorite. I tried to flash the HIDuino software with dfu-programmer - but it seems not fully to work.

I used the standard MIDI libraray, as mentioned in the installation scripts from HIDuino. When I use a simple NoteOn-delay-Noteoff-delay I get nothing shown in MIDIOX or jack_dump_midi. Also the Theremin shows no output. If I use the MIDIUSB-library with a Leonardo I get events - but the OpenTheremin software ist not compatible with a Leonardo.

So I think also I have a HIDuino-flash-problem. Currently I am working only with dfu-programmer and “Arduino as ISP”. I have ordered a Tiny-USB-AVR-programmer and will try again. I hope I can get it running until Dec, 2./3. 2017: Mini-Maker-Faire @ Conrad Drone Champions League (Station Berlin) - #7 by C0d3man

Just to be sure: Sending MIDI events is only done by Serial.print(), right? So I can add a simple MIDI-OUT circuit to the serial pin for having a MIDI-OUT?

Regards, Holger

Hello,

I use “Serial.write” (to send bytes) rather than “Serial.print” (to send characters representing the digits of a number): https://www.arduino.cc/en/Serial/Write.

But yes, the principle is there, you can add a physical MIDI-OUT like this : https://www.arduino.cc/en/Tutorial/Midi.

Regards

Ok. I will try with some simpler tests. Perhaps my new ISP will help.

Ok - that’s my fallback for MakerFaire :slight_smile:

Thanks, Holger

1 Like

OK, Keep me updated, I am curious of knowing the result of your investigations and I’ll try to help you if I can :slight_smile:

1 Like

Hi Vincent,

I got it working :smile:: I used a Tiny-USB-Flasher and avrdude and now I got HIDuino flashed onto the Uno.

I havn’t had much time (next week is MakerFaire and I am building a Zynthian 2, also setting up the PA hardware etc…), so I have only tested, if I get MIDI data out of the Theremin and sound out of the Zynthian.

If I use your Open-Theremin-MIDI sketch, does the “normal” audio generation of the Theremin work? Can I play MIDI-trigered sound side by side with Theremin sounds?

Regards, Holger

Hello Holger,

Nice to hear that your Hiduino works.

Yes, I kept the audio unchanged in my two open theremin sketches (“master” and “V2-Project”).

You can play audio and MIDI side by side. Provided that Zynthian and Theremin are set with the same pitch bend range, you should hear the same note on the audio and on the Zynthian if your hand is static.

When your hand is moving, you may notice some chorus effect on note transition and on vibrato because of inevitable slight delays between the audio and the MIDI/Synth processing. This chorus is rather nice and can be controlled by moving the pitch hand. Players could take advantage of it.

1 Like