yoyz / amsynth

Automatically exported from code.google.com/p/amsynth
GNU General Public License v2.0
1 stars 0 forks source link

Send MIDI output while editing controls #62

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. start AMsynth and connect the MIDI out to gmidimon
2. turn any knob on the AMsynth GUI

What is the expected output? What do you see instead?

expected : gmidimon shows midi activity
instead : no output at all

What version of the product are you using? On what operating system?

the latest version from your PPA (cant verify right now. i'm on another system)

Please provide any additional information below.

according to this page 
(https://code.google.com/p/amsynth/source/browse/AUTHORS) Andy Ryan "added midi 
out capabilities for control surfaces with feedback"
but i can find any more details about this :-(

according to jeremy (aka autostatic) AMsynth does output midi feedback when it 
is run as an LV2 pluging in qtraktor ...

grtz
Thijs

Original issue reported on code.google.com by thijsvan...@gmail.com on 10 Nov 2013 at 9:11

GoogleCodeExporter commented 9 years ago
The current implementation of MIDI output dumps all MIDI CCs when the "Utils" > 
"Send Settings to Midi Device" menu item is selected.

https://code.google.com/p/amsynth/source/detail?r=66072280b78b793f7f5a488e10e138
fb112458d7

I agree it would be better if MIDI CCs were sent immediately when changed in 
the UI (or by selecting a new preset.)

Original comment by nickdowell on 18 Nov 2013 at 6:39

GoogleCodeExporter commented 9 years ago
aha i didnt know that the 'send settings to midi' worked like that, i was 
assuming sysex

i have a BCF2000 hooked up to amsynth and after assigning the buttons (and 
connecting the amsynth out to the BCF in - DOH!) i can execute the 'send 
settings' and the faders on the BCF jump to the correct position :-)

for me personally it would already be great if amsynth would execute a 'send 
settings' upon loading a new program (triggered via a midi PC command)

so if i understand correctly (forgive me if i'm wrong - i suck at writing code) 
the routine that sends out these settings should be called upon a 'prog change' 
?

i might just take a look at the code, i just might get lucky ;-)

thanks for the feedback
grtz
Thijs

Original comment by thijsvan...@gmail.com on 19 Nov 2013 at 8:56

GoogleCodeExporter commented 9 years ago
I've just implemented real-time MIDI CC output, it should send CCs both when 
dragging controls or changing presets :-)

Let me know if it works (or not) for you!

My PPA should pick up the changes within a few hours, if you can't wait then 
you can fetch the code from git and build.

Note that MIDI output has only been implemented for ALSA.

Original comment by nickdowell on 20 Nov 2013 at 7:31

GoogleCodeExporter commented 9 years ago
wow !  this is really GREAT stuff :-)
trying it right now

hmm doesnt seen to output any midi wheh i turn the knobs/load a preset ...
amsynth -v : amSynth git -- compiled Nov 20 2013 20:40:28
seems like the correct version, right ?

gmidimon still only shows midi output when i hit 'send settings to midi' 
just checked your git repo and it seems like you are currently committing new 
stuff, so maybe i just need to wait a bit

i'll try again tomorrow

bye!
thijs

Original comment by thijsvan...@gmail.com on 20 Nov 2013 at 9:36

GoogleCodeExporter commented 9 years ago
Look out for a new build, I've just reworked the MIDI CC mapping.

Something non obvious - right-clicking on a knob opens a little dialog that 
lets you assign a MIDI CC to that control.

Original comment by nickdowell on 21 Nov 2013 at 6:46

GoogleCodeExporter commented 9 years ago
just tested the last build and i had some issues with it on the first run:
gmidimon showed a midi message coming from amsynth that was constantly toggling 
between 2 values

apparently the reason is that i linked several parameters of amsynth to 1 hw 
knob
after cleaning out .amSynthControllersrc (setting all values to 'null') the 
problem was solved  :-)

i havent tried it with a real hardware controller, but i'll try tonight and let 
you know how it went

this is really super stuff !  :-)

next thing is to find a way (i'll try with mididings) to map each row of knobs 
on my BCR2000 to 1 AMsynth instance
AFAIK there is no way to start amsynth with a specific .amSynthControllersrc 
file so i'll have to remap the midi CC values outside of amsynth (right?)

grtz
Thijs

Original comment by thijsvan...@gmail.com on 26 Nov 2013 at 10:33

GoogleCodeExporter commented 9 years ago
You are correct, amsynth does not support having different CC mappings for 
different instances. If your controller can do it, MIDI channels would be the 
way to go for this.

-- WARNING --

I am probably going to change how amsynth's MIDI CC mapping works soon, because 
I think it's currently wrong.

The current UI suggests that any CC can be mapped to any parameter, but 
actually some CCs are not available for mapping. Some MIDI CCs have special 
meanings in the MIDI spec, and are not "general purpose".

To be safe of any changes I make, please only use the following CCs:
 20 -  31
102 - 119

These are listed as "undefined" in the MIDI specification, and so are safe to 
use.
http://www.midi.org/techspecs/midimessages.php#3

Original comment by nickdowell on 26 Nov 2013 at 7:33

GoogleCodeExporter commented 9 years ago
last night i hooked up my bcr2000, connected the bcr > AMsynth and also 
connected AMsynth > bcr
Then i mapped the knobs from my midi controller to AMsynth, and everything 
worked as expected :-)
the midi feedback from AMsynth to the controller works just fine (also when i 
load a new preset)
AMsynth did crash once, but i couldnt reproduce it ...

about the CC mapping:
if i understand correctly this means that there are only 28 CC controllers 
freely available ??
cant we use the 'General Purpose Controller' CC's (as described in the MIDI 
specs)

if 28 is really the maximum than this is pretty bad for my particular setup :-(

i guess i could reconfigure my midi controller so i use as many pre-defined CC 
id's as possible (like volume), but even that wont help me much since i will 
only be able to use this CC once anyway.
Also re-configuring the controller means it wont work anymore with other 
software (unless there is a way to store several controller configs in the 
controller,  hmm..  need to check that option) i prefer to do my midi mapping 
in software rather that on the controller itself

currently i have mapped 8 parameters from my first AMsynth instance to 8 knobs 
of my bcr, the idea was to use the next row of 8 knobs for AMsynth instance 2 
and yet another row for AMsynth instance 3
this means that i'll have 3 volume controls, 3 filter cutoffs, 3 LFO speeds ...

so after you change the way CC mapping works i wont be able to assign the 
'balance CC' to the LFO speed parameter of AMsynth ? (for example)

grtz
Thijs

Original comment by thijsvan...@gmail.com on 27 Nov 2013 at 8:14

GoogleCodeExporter commented 9 years ago
Great! Glad to hear it worked :)

Was there any message printed out when amsynth crashed?

I can see that such a reduced number of available CCs would be a problem, so 
this needs more thought...

* Does your BCR2000 allow any MIDI CC to be mapped, regardless of its purpose 
in the MIDI spec?

* How does the other software you are using with your BCR2000 handle this - do 
they have any restrictions on the mapping of CCs?

* How do you think amsynth should work in this regard?

Original comment by nickdowell on 27 Nov 2013 at 9:11

GoogleCodeExporter commented 9 years ago
there was no message during the crash since i didnt start AMsynth in a terminal 
:-(  i'll try to remember that next time i test
is there an error log for AMsynth?

1) havent checked that yet, i'll see if i can find some info about that

2) other software i use is hydrogen and phasex
both allow you to assign any CC controller value

3) normally i would say : follow the midi standard, but IMHO it doesnt make 
much sense in the case of a softsynth (or for hydrogens built-in mixer)
the midi standard probably made a lot of sense in the days of hardware synths 
and back when midi-learn didnt exist yet, but it seems like an awful 'waste of 
knobs' (if you know what i mean)

Maybe you could create a default midi mapping for AMsynth that is compliant 
_but_ can also be edited.  that way it's up to the user to decide
personally i would be very sad not being able to customize my setup as i see fit

grtz
Thijs

Original comment by thijsvan...@gmail.com on 27 Nov 2013 at 11:48

GoogleCodeExporter commented 9 years ago
Using AMSynth 1.5.1 in ubuntu, MIDI feedback doesn't seem to be working.  Has 
this regressed?

Steps to reproduce:
-connect amsynth to a midi monitor
-turn any knob in amsynth
-no midi feedback shows in midi monitor

The MIDI dump "send settings to MIDI" works, but there's no live feedback when 
knobs are turned.

Also, can the "send settings to MIDI" dump be triggered from an external 
controller with a midi message?

Original comment by gbo...@gmail.com on 8 Jan 2015 at 8:04