Augustusloop doesn't receive midi
-
- KVRist
- Topic Starter
- 169 posts since 14 Aug, 2004
Hi,
it's me again. I've setup some switches on my FCB1010 to send CC 92, 86 100 and an expression pedal to send CC 5 for global feedback. I changed the channel from 13 to 1 in MidiPipe and sent it to the MidiPipe output device. I selected the MidiPipe device as an input in Live 7 (track, control, both, none) and I can record the controller data there, but Augustusloop doesn't respond to anything. I am using the AU Plugin for sure. Also I've set the preferences to receive on channel 1+2. What am I doing wrong? Also: There is no possibility to choose the midi device for input. Why?
Cheers,
Axl
edit: OS X 10.4, Augustusloop 2.0
it's me again. I've setup some switches on my FCB1010 to send CC 92, 86 100 and an expression pedal to send CC 5 for global feedback. I changed the channel from 13 to 1 in MidiPipe and sent it to the MidiPipe output device. I selected the MidiPipe device as an input in Live 7 (track, control, both, none) and I can record the controller data there, but Augustusloop doesn't respond to anything. I am using the AU Plugin for sure. Also I've set the preferences to receive on channel 1+2. What am I doing wrong? Also: There is no possibility to choose the midi device for input. Why?
Cheers,
Axl
edit: OS X 10.4, Augustusloop 2.0
-
- KVRian
- 1410 posts since 22 Mar, 2002 from UK
As far as I recall, if you want to send MIDI to plug-ins in Live you have to set up a MIDI track, and set the output of the MIDI track to be the audio track on which the plug-in is loaded. (The input to the MIDI track is your external device, or MidiPipe, or whatever.)
-
- KVRist
- Topic Starter
- 169 posts since 14 Aug, 2004
os wrote:As far as I recall, if you want to send MIDI to plug-ins in Live you have to set up a MIDI track, and set the output of the MIDI track to be the audio track on which the plug-in is loaded. (The input to the MIDI track is your external device, or MidiPipe, or whatever.)
Ah, now it's working. Maybe, that would be worth a mention in the Live setup section of the manual.
I can now send controller data to Augustusloop. But what if I want to toggle the Taprec function (or any other) with only one controller message. In the current configuration, I seem to have to program one switch to send CC92 value 0 and one value 127 in order to access the function twice. I'm sure it's possible having a complete scripting language at hand. But to be honest, I'm not so keen on learning a new language at the moment. Could you give me a hint? I'm sure others would like to use their controllers the same way and just use one button to taprec and one to freeze/unfreeze the loop.
Greets,
Axel
PS: I'll look at the other issue tomorrow. I need some sleep.
-
- KVRian
- 1410 posts since 22 Mar, 2002 from UK
That's pretty much what this example script does (in fact it does slightly more):
http://www.expert-sleepers.co.uk/august ... 18e-2.html
If I get a moment I'll do a super-minimal script to implement the behaviour you describe.
I would think though that you could get the FCB1010 to do that by itself, without needing any extra script. This kind of "toggle switch" behaviour is quite common - pressing the switch once to turn a function on and pressing again to turn it off. I have a Behringer BCR2000 controller and it's certainly possible with that.
http://www.expert-sleepers.co.uk/august ... 18e-2.html
If I get a moment I'll do a super-minimal script to implement the behaviour you describe.
I would think though that you could get the FCB1010 to do that by itself, without needing any extra script. This kind of "toggle switch" behaviour is quite common - pressing the switch once to turn a function on and pressing again to turn it off. I have a Behringer BCR2000 controller and it's certainly possible with that.
-
- KVRist
- Topic Starter
- 169 posts since 14 Aug, 2004
The info in the example script is more than enough. I'll edit it to fit my needs and send you the result.os wrote:That's pretty much what this example script does (in fact it does slightly more):
http://www.expert-sleepers.co.uk/august ... 18e-2.html
If I get a moment I'll do a super-minimal script to implement the behaviour you describe.
I would think though that you could get the FCB1010 to do that by itself, without needing any extra script. This kind of "toggle switch" behaviour is quite common - pressing the switch once to turn a function on and pressing again to turn it off. I have a Behringer BCR2000 controller and it's certainly possible with that.
I prefer not to dig into the cryptic manual of the FCB unless it's unavoidable. Anyway, scripting is far more flexable.
-
- KVRist
- Topic Starter
- 169 posts since 14 Aug, 2004
I've modified the example script to receive CC instead of NoteOn and to set the input level to 0.0 at the beginning. It doesn't work.
Console says the script is loaded and prints the "input level 0". But no reaction to my CC92.
Code: Select all
-- get the parameter IDs that we want to control
-- setParameter() will work with a parameter name, but it's more efficient to find the ID from the
-- name here once, and then use the ID
local paramID_TapRecord = getParameterID( "Tap Record" )
local paramID_InputLevel = getParameterID( "Input Level" )
-- input level 0 AXL
setParameter( paramID_InputLevel, 0.0 )
print("input level 0")
-- define the functions that will handle events
-- this function handles the main note on event, that will advance through the states
local function handleEvent1( channel, cc, value )
if state == 0 then
state = 1
setParameter( paramID_InputLevel, 1.0 )
print("state = 1")
setParameter( paramID_TapRecord, 1.0 )
elseif state == 1 then
state = 2
setParameter( paramID_TapRecord, 0.0 )
setParameter( paramID_InputLevel, 0.0 )
print("state = 2")
elseif state == 2 then
state = 3
print("state = 3")
setParameter( paramID_InputLevel, 1.0 )
else
state = 2
setParameter( paramID_InputLevel, 0.0 )
end
end
-- this function handles the secondary note on event, that will reset the state
local function handleEvent2( channel, noteNumber, velocity )
state = 0
end
-- finally, request that the functions above be called on the appropriate MIDI events
requestCC( 92, handleEvent1 )
requestCC( 86, handleEvent2 )
-
- KVRian
- 1410 posts since 22 Mar, 2002 from UK
Various things that might be wrong:
- you shouldn't really call setParameter() outside of a handler function (your initial input level 0)
- I don't see the line from the example script that defines the 'state' variable in the first place. Possibly you just didn't copy it into your post.
- remember that your script is called *as well as* the default one, not instead of it. So CC #92 will still be controlling Tap Record directly, in addition to whatever your script is doing. You probably want to choose another (unused) CC.
Does any of that help?
From this and some other feedback I've had, it looks like I need to make it easy to disable the default MIDI behaviour, as well as the current feature of being able to extend it.
- you shouldn't really call setParameter() outside of a handler function (your initial input level 0)
- I don't see the line from the example script that defines the 'state' variable in the first place. Possibly you just didn't copy it into your post.
- remember that your script is called *as well as* the default one, not instead of it. So CC #92 will still be controlling Tap Record directly, in addition to whatever your script is doing. You probably want to choose another (unused) CC.
Does any of that help?
From this and some other feedback I've had, it looks like I need to make it easy to disable the default MIDI behaviour, as well as the current feature of being able to extend it.
-
- KVRist
- Topic Starter
- 169 posts since 14 Aug, 2004
I've commented out my setParameter() call and changed the CCs to 125 and 126, but it still doesn't work. I had the state var defined from the start. I just didn't copy the whole script. The plugin is wired correctly and receives midi when operating on just the basic script. How can I set the default input level to 0.0 when I'm not allowed to call the setParameter() outside of a handler?
Here is the script:
Here is the script:
Code: Select all
-- define the state variable
local state = 0
-- get the parameter IDs that we want to control
-- setParameter() will work with a parameter name, but it's more efficient to find the ID from the
-- name here once, and then use the ID
local paramID_TapRecord = getParameterID( "Tap Record" )
local paramID_InputLevel = getParameterID( "Input Level" )
-- input level 0 AXL
--setParameter( paramID_InputLevel, 0.0 )
--print("input level 0")
-- define the functions that will handle events
-- this function handles the main note on event, that will advance through the states
local function handleEvent1( channel, cc, value )
if state == 0 then
state = 1
setParameter( paramID_InputLevel, 1.0 )
print("state = 1")
setParameter( paramID_TapRecord, 1.0 )
elseif state == 1 then
state = 2
setParameter( paramID_TapRecord, 0.0 )
setParameter( paramID_InputLevel, 0.0 )
print("state = 2")
elseif state == 2 then
state = 3
print("state = 3")
setParameter( paramID_InputLevel, 1.0 )
else
state = 2
setParameter( paramID_InputLevel, 0.0 )
end
end
-- this function handles the secondary note on event, that will reset the state
local function handleEvent2( channel, noteNumber, velocity )
state = 0
end
-- finally, request that the functions above be called on the appropriate MIDI events
requestCC( 125, handleEvent1 )
requestCC( 126, handleEvent2 )
-
- KVRian
- 1410 posts since 22 Mar, 2002 from UK
I'll have to try this script myself, which I can't do until next week. I'll get back to you.
-
- KVRist
- Topic Starter
- 169 posts since 14 Aug, 2004
I was away for a week. Now I've tried the same script again and it works. WTF!? I didn't do anything differently than last week (?) but yesterday I updated certain system software. Shouldn't have anything to do with it but who knows. I hope I can now test the sync thing. One problem remains however: I still can't set a default value 0.0 for the input level. I wrapped the setParameter() call in a function that gets called when the script loads but it doesn't do anything.
Well, I'll give it more time later, but in the meantime suggestions are very welcome.
Axl
Well, I'll give it more time later, but in the meantime suggestions are very welcome.
Axl
-
- KVRian
- 1410 posts since 22 Mar, 2002 from UK
Hurrah!
The script is loaded when the plug-in is loaded by the host, which isn't really an appropriate time to be setting parameters. Two suggestions:
- map another MIDI controller to set the default state you want (input level 0.0 etc.)
- use a preset to store the default plug-in parameter values you want.
The script is loaded when the plug-in is loaded by the host, which isn't really an appropriate time to be setting parameters. Two suggestions:
- map another MIDI controller to set the default state you want (input level 0.0 etc.)
- use a preset to store the default plug-in parameter values you want.
-
- KVRist
- Topic Starter
- 169 posts since 14 Aug, 2004
os wrote: - use a preset to store the default plug-in parameter values you want.
A Preset! Well, that was obvious, wasn't it?
Now if I get the syncing under control, you might have a new customer. By the way, CCs 35, 36, and 99 don't work. 127 did work so I stopped testing at this point. I suspect that Live doesn't send them to the plugin and I don't understand why. Anyway, I'll post the rest on the other thread.
Axl