Augustusloop doesn't receive midi

Official support for: expertsleepers.co.uk
Post Reply New Topic
RELATED
PRODUCTS

Post

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

Post

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.)

Post

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.

Post

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.

Post

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.
The info in the example script is more than enough. I'll edit it to fit my needs and send you the result.

I prefer not to dig into the cryptic manual of the FCB unless it's unavoidable. Anyway, scripting is far more flexable.

Post

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.

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 )
Console says the script is loaded and prints the "input level 0". But no reaction to my CC92.

:(

Post

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.

Post

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:

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 )

Post

I'll have to try this script myself, which I can't do until next week. I'll get back to you.

Post

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

Post

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.

Post

os wrote: - use a preset to store the default plug-in parameter values you want.

A Preset! Well, that was obvious, wasn't it? :dog:

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

Post Reply

Return to “Expert Sleepers”