////////////////////////////////////////////////////////////////////////////////
// Copyright 2012 Michael Schmalle - Teoti Graphix, LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License
//
// Author: Michael Schmalle, Principal Architect
// mschmalle at teotigraphix dot com
////////////////////////////////////////////////////////////////////////////////
package com.teotigraphix.caustk.core.osc;
import com.teotigraphix.caustk.tone.components.beatbox.WavSamplerChannel;
import com.teotigraphix.caustk.tone.components.beatbox.WavSamplerComponent;
/**
* The {@link BeatboxMessage} holds all OSC messages associated with the
* {@link WavSamplerComponent} API.
*
* @author Michael Schmalle
* @copyright Teoti Graphix, LLC
* @since 1.0
*/
public class BeatboxMessage extends CausticMessage {
/**
* Message:
* <code>/caustic/[machine_index]/channel/[channel_num]/load [path]</code>
* <p>
* <strong>Default</strong>: <code>N/A</code>
* <p>
* <strong>Parameters</strong>:
* <ul>
* <li><strong>machine_index</strong>: The machine index.</li>
* <li><strong>channel_num</strong>: The channel number in the beatbox.</li>
* <li><strong>path</strong>: The absolute path to the WAV sample file.</li>
* </ul>
* <p>
* <strong>Returns</strong>: <code>N/A</code>
*
* @see WavSamplerComponent#loadChannel(int, String)
*/
public static final BeatboxMessage CHANNEL_LOAD = new BeatboxMessage(
"/caustic/${0}/channel/${1}/load ${2}");
/**
* Message:
* <code>/caustic/[machine_index]/channel/[channel_num]/tune [value]</code>
* <p>
* <strong>Default</strong>: <code>0.0</code>
* <p>
* <strong>Parameters</strong>:
* <ul>
* <li><strong>machine_index</strong>: The machine index.</li>
* <li><strong>channel_num</strong>: The channel number in the beatbox.</li>
* <li><strong>value</strong>: (-6..6)</li>
* </ul>
* <p>
* <strong>Returns</strong>: <code>float</code>
*
* @see WavSamplerChannel#getTune()
* @see WavSamplerChannel#setTune(float)
*/
public static final BeatboxMessage CHANNEL_TUNE = new BeatboxMessage(
"/caustic/${0}/channel/${1}/tune ${2}");
/**
* Message:
* <code>/caustic/[machine_index]/channel/[channel_num]/mute [value]</code>
* <p>
* <strong>Default</strong>: <code>0</code>
* <p>
* <strong>Parameters</strong>:
* <ul>
* <li><strong>machine_index</strong>: The machine index.</li>
* <li><strong>channel_num</strong>: The channel number in the beatbox.</li>
* <li><strong>value</strong>: (0,1)</li>
* </ul>
* <p>
* <strong>Returns</strong>: <code>int</code>
*
* @see WavSamplerChannel#isMute()
* @see WavSamplerChannel#setMute(boolean)
*/
public static final BeatboxMessage CHANNEL_MUTE = new BeatboxMessage(
"/caustic/${0}/channel/${1}/mute ${2}");
/**
* Message:
* <code>/caustic/[machine_index]/channel/[channel_num]/solo [value]</code>
* <p>
* <strong>Default</strong>: <code>0</code>
* <p>
* <strong>Parameters</strong>:
* <ul>
* <li><strong>machine_index</strong>: The machine index.</li>
* <li><strong>channel_num</strong>: The channel number in the beatbox.</li>
* <li><strong>value</strong>: (0,1)</li>
* </ul>
* <p>
* <strong>Returns</strong>: <code>int</code>
*
* @see WavSamplerChannel#isSolo()
* @see WavSamplerChannel#setSolo(boolean)
*/
public static final BeatboxMessage CHANNEL_SOLO = new BeatboxMessage(
"/caustic/${0}/channel/${1}/solo ${2}");
/**
* Message:
* <code>/caustic/[machine_index]/channel/[channel_num]/punch [value]</code>
* <p>
* <strong>Default</strong>: <code>1.0</code>
* <p>
* <strong>Parameters</strong>:
* <ul>
* <li><strong>machine_index</strong>: The machine index.</li>
* <li><strong>channel_num</strong>: The channel number in the beatbox.</li>
* <li><strong>value</strong>: (0.0..1.0)</li>
* </ul>
* <p>
* <strong>Returns</strong>: <code>float</code>
*
* @see WavSamplerChannel#getPunch()
* @see WavSamplerChannel#setPunch(float)
*/
public static final BeatboxMessage CHANNEL_PUNCH = new BeatboxMessage(
"/caustic/${0}/channel/${1}/punch ${2}");
/**
* Message:
* <code>/caustic/[machine_index]/channel/[channel_num]/decay [value]</code>
* <p>
* <strong>Default</strong>: <code>1.0</code>
* <p>
* <strong>Parameters</strong>:
* <ul>
* <li><strong>machine_index</strong>: The machine index.</li>
* <li><strong>channel_num</strong>: The channel number in the beatbox.</li>
* <li><strong>value</strong>: (0.0..1.0)</li>
* </ul>
* <p>
* <strong>Returns</strong>: <code>float</code>
*
* @see WavSamplerChannel#getDecay()
* @see WavSamplerChannel#setDecay(float)
*/
public static final BeatboxMessage CHANNEL_DECAY = new BeatboxMessage(
"/caustic/${0}/channel/${1}/decay ${2}");
/**
* Message:
* <code>/caustic/[machine_index]/channel/[channel_num]/pan [value]</code>
* <p>
* <strong>Default</strong>: <code>0.0</code>
* <p>
* <strong>Parameters</strong>:
* <ul>
* <li><strong>machine_index</strong>: The machine index.</li>
* <li><strong>channel_num</strong>: The channel number in the beatbox.</li>
* <li><strong>value</strong>: (-1.0..1.0)</li>
* </ul>
* <p>
* <strong>Returns</strong>: <code>float</code>
*
* @see WavSamplerChannel#getPan()
* @see WavSamplerChannel#setPan(float)
*/
public static final BeatboxMessage CHANNEL_PAN = new BeatboxMessage(
"/caustic/${0}/channel/${1}/pan ${2}");
/**
* Message:
* <code>/caustic/[machine_index]/channel/[channel_num]/volume [value]</code>
* <p>
* <strong>Default</strong>: <code>1.0</code>
* <p>
* <strong>Parameters</strong>:
* <ul>
* <li><strong>machine_index</strong>: The machine index.</li>
* <li><strong>channel_num</strong>: The channel number in the beatbox.</li>
* <li><strong>value</strong>: (0.0..2.0)</li>
* </ul>
* <p>
* <strong>Returns</strong>: <code>float</code>
*
* @see WavSamplerChannel#getPan()
* @see WavSamplerChannel#setPan(float)
*/
public static final BeatboxMessage CHANNEL_VOLUME = new BeatboxMessage(
"/caustic/${0}/channel/${1}/volume ${2}");
/**
* Query:
* <code>/caustic/[machine_index]/channel/[channel_num]/sample_name</code>
* <p>
* <strong>Default</strong>: <code>N/A</code>
* <p>
* <strong>Parameters</strong>:
* <ul>
* <li><strong>machine_index</strong>: The machine index.</li>
* <li><strong>channel_num</strong>: The channel number in the beatbox.</li>
* </ul>
* <p>
* <strong>Returns</strong>: <code>String</code> The name of the sample
* located at the channel number, <code>""</code> if a sample has not been
* assigned.
*
* @see WavSamplerChannel#getName()
*/
public static final BeatboxMessage QUERY_CHANNEL_SAMPLE_NAME = new BeatboxMessage(
"/caustic/${0}/channel/${1}/sample_name");
BeatboxMessage(String message) {
super(message);
}
}