@@ -341,12 +341,12 @@ Menu *BraidsWidget::createContextMenu() { | |||||
Braids *braids = dynamic_cast<Braids*>(module); | Braids *braids = dynamic_cast<Braids*>(module); | ||||
assert(braids); | assert(braids); | ||||
menu->pushChild(construct<MenuLabel>()); | |||||
menu->pushChild(construct<MenuLabel>(&MenuEntry::text, "Options")); | |||||
menu->pushChild(construct<BraidsSettingItem>(&MenuEntry::text, "META", &BraidsSettingItem::setting, &braids->settings.meta_modulation)); | |||||
menu->pushChild(construct<BraidsSettingItem>(&MenuEntry::text, "DRFT", &BraidsSettingItem::setting, &braids->settings.vco_drift, &BraidsSettingItem::onValue, 4)); | |||||
menu->pushChild(construct<BraidsSettingItem>(&MenuEntry::text, "SIGN", &BraidsSettingItem::setting, &braids->settings.signature, &BraidsSettingItem::onValue, 4)); | |||||
menu->pushChild(construct<BraidsLowCpuItem>(&MenuEntry::text, "Low CPU", &BraidsLowCpuItem::braids, braids)); | |||||
menu->addChild(construct<MenuLabel>()); | |||||
menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Options")); | |||||
menu->addChild(construct<BraidsSettingItem>(&MenuEntry::text, "META", &BraidsSettingItem::setting, &braids->settings.meta_modulation)); | |||||
menu->addChild(construct<BraidsSettingItem>(&MenuEntry::text, "DRFT", &BraidsSettingItem::setting, &braids->settings.vco_drift, &BraidsSettingItem::onValue, 4)); | |||||
menu->addChild(construct<BraidsSettingItem>(&MenuEntry::text, "SIGN", &BraidsSettingItem::setting, &braids->settings.signature, &BraidsSettingItem::onValue, 4)); | |||||
menu->addChild(construct<BraidsLowCpuItem>(&MenuEntry::text, "Low CPU", &BraidsLowCpuItem::braids, braids)); | |||||
return menu; | return menu; | ||||
} | } |
@@ -141,11 +141,11 @@ Menu *BranchesWidget::createContextMenu() { | |||||
Branches *branches = dynamic_cast<Branches*>(module); | Branches *branches = dynamic_cast<Branches*>(module); | ||||
assert(branches); | assert(branches); | ||||
menu->pushChild(construct<MenuLabel>()); | |||||
menu->addChild(construct<MenuLabel>()); | |||||
menu->pushChild(construct<MenuLabel>(&MenuEntry::text, "Channels")); | |||||
menu->pushChild(construct<BranchesModeItem>(&MenuEntry::text, "Channel 1 mode", &BranchesModeItem::branches, branches, &BranchesModeItem::channel, 0)); | |||||
menu->pushChild(construct<BranchesModeItem>(&MenuEntry::text, "Channel 2 mode", &BranchesModeItem::branches, branches, &BranchesModeItem::channel, 1)); | |||||
menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Channels")); | |||||
menu->addChild(construct<BranchesModeItem>(&MenuEntry::text, "Channel 1 mode", &BranchesModeItem::branches, branches, &BranchesModeItem::channel, 0)); | |||||
menu->addChild(construct<BranchesModeItem>(&MenuEntry::text, "Channel 2 mode", &BranchesModeItem::branches, branches, &BranchesModeItem::channel, 1)); | |||||
return menu; | return menu; | ||||
} | } |
@@ -374,26 +374,26 @@ Menu *CloudsWidget::createContextMenu() { | |||||
Menu *menu = ModuleWidget::createContextMenu(); | Menu *menu = ModuleWidget::createContextMenu(); | ||||
Clouds *module = dynamic_cast<Clouds*>(this->module); | Clouds *module = dynamic_cast<Clouds*>(this->module); | ||||
menu->pushChild(construct<MenuLabel>()); | |||||
menu->pushChild(construct<MenuLabel>(&MenuEntry::text, "Blend knob")); | |||||
menu->pushChild(construct<CloudsBlendItem>(&MenuEntry::text, "Wet/dry", &CloudsBlendItem::module, module, &CloudsBlendItem::blendMode, 0)); | |||||
menu->pushChild(construct<CloudsBlendItem>(&MenuEntry::text, "Spread", &CloudsBlendItem::module, module, &CloudsBlendItem::blendMode, 1)); | |||||
menu->pushChild(construct<CloudsBlendItem>(&MenuEntry::text, "Feedback", &CloudsBlendItem::module, module, &CloudsBlendItem::blendMode, 2)); | |||||
menu->pushChild(construct<CloudsBlendItem>(&MenuEntry::text, "Reverb", &CloudsBlendItem::module, module, &CloudsBlendItem::blendMode, 3)); | |||||
menu->pushChild(construct<MenuLabel>()); | |||||
menu->pushChild(construct<MenuLabel>(&MenuEntry::text, "Alternative mode")); | |||||
menu->pushChild(construct<CloudsPlaybackItem>(&MenuEntry::text, "Granular", &CloudsPlaybackItem::module, module, &CloudsPlaybackItem::playback, clouds::PLAYBACK_MODE_GRANULAR)); | |||||
menu->pushChild(construct<CloudsPlaybackItem>(&MenuEntry::text, "Pitch-shifter/time-stretcher", &CloudsPlaybackItem::module, module, &CloudsPlaybackItem::playback, clouds::PLAYBACK_MODE_STRETCH)); | |||||
menu->pushChild(construct<CloudsPlaybackItem>(&MenuEntry::text, "Looping delay", &CloudsPlaybackItem::module, module, &CloudsPlaybackItem::playback, clouds::PLAYBACK_MODE_LOOPING_DELAY)); | |||||
menu->pushChild(construct<CloudsPlaybackItem>(&MenuEntry::text, "Spectral madness", &CloudsPlaybackItem::module, module, &CloudsPlaybackItem::playback, clouds::PLAYBACK_MODE_SPECTRAL)); | |||||
menu->pushChild(construct<MenuLabel>()); | |||||
menu->pushChild(construct<MenuLabel>(&MenuEntry::text, "Quality")); | |||||
menu->pushChild(construct<CloudsQualityItem>(&MenuEntry::text, "1s 32kHz 16-bit stereo", &CloudsQualityItem::module, module, &CloudsQualityItem::quality, 0)); | |||||
menu->pushChild(construct<CloudsQualityItem>(&MenuEntry::text, "2s 32kHz 16-bit mono", &CloudsQualityItem::module, module, &CloudsQualityItem::quality, 1)); | |||||
menu->pushChild(construct<CloudsQualityItem>(&MenuEntry::text, "4s 16kHz 8-bit µ-law stereo", &CloudsQualityItem::module, module, &CloudsQualityItem::quality, 2)); | |||||
menu->pushChild(construct<CloudsQualityItem>(&MenuEntry::text, "8s 16kHz 8-bit µ-law mono", &CloudsQualityItem::module, module, &CloudsQualityItem::quality, 3)); | |||||
menu->addChild(construct<MenuLabel>()); | |||||
menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Blend knob")); | |||||
menu->addChild(construct<CloudsBlendItem>(&MenuEntry::text, "Wet/dry", &CloudsBlendItem::module, module, &CloudsBlendItem::blendMode, 0)); | |||||
menu->addChild(construct<CloudsBlendItem>(&MenuEntry::text, "Spread", &CloudsBlendItem::module, module, &CloudsBlendItem::blendMode, 1)); | |||||
menu->addChild(construct<CloudsBlendItem>(&MenuEntry::text, "Feedback", &CloudsBlendItem::module, module, &CloudsBlendItem::blendMode, 2)); | |||||
menu->addChild(construct<CloudsBlendItem>(&MenuEntry::text, "Reverb", &CloudsBlendItem::module, module, &CloudsBlendItem::blendMode, 3)); | |||||
menu->addChild(construct<MenuLabel>()); | |||||
menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Alternative mode")); | |||||
menu->addChild(construct<CloudsPlaybackItem>(&MenuEntry::text, "Granular", &CloudsPlaybackItem::module, module, &CloudsPlaybackItem::playback, clouds::PLAYBACK_MODE_GRANULAR)); | |||||
menu->addChild(construct<CloudsPlaybackItem>(&MenuEntry::text, "Pitch-shifter/time-stretcher", &CloudsPlaybackItem::module, module, &CloudsPlaybackItem::playback, clouds::PLAYBACK_MODE_STRETCH)); | |||||
menu->addChild(construct<CloudsPlaybackItem>(&MenuEntry::text, "Looping delay", &CloudsPlaybackItem::module, module, &CloudsPlaybackItem::playback, clouds::PLAYBACK_MODE_LOOPING_DELAY)); | |||||
menu->addChild(construct<CloudsPlaybackItem>(&MenuEntry::text, "Spectral madness", &CloudsPlaybackItem::module, module, &CloudsPlaybackItem::playback, clouds::PLAYBACK_MODE_SPECTRAL)); | |||||
menu->addChild(construct<MenuLabel>()); | |||||
menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Quality")); | |||||
menu->addChild(construct<CloudsQualityItem>(&MenuEntry::text, "1s 32kHz 16-bit stereo", &CloudsQualityItem::module, module, &CloudsQualityItem::quality, 0)); | |||||
menu->addChild(construct<CloudsQualityItem>(&MenuEntry::text, "2s 32kHz 16-bit mono", &CloudsQualityItem::module, module, &CloudsQualityItem::quality, 1)); | |||||
menu->addChild(construct<CloudsQualityItem>(&MenuEntry::text, "4s 16kHz 8-bit µ-law stereo", &CloudsQualityItem::module, module, &CloudsQualityItem::quality, 2)); | |||||
menu->addChild(construct<CloudsQualityItem>(&MenuEntry::text, "8s 16kHz 8-bit µ-law mono", &CloudsQualityItem::module, module, &CloudsQualityItem::quality, 3)); | |||||
return menu; | return menu; | ||||
} | } |
@@ -316,11 +316,11 @@ Menu *ElementsWidget::createContextMenu() { | |||||
Elements *elements = dynamic_cast<Elements*>(module); | Elements *elements = dynamic_cast<Elements*>(module); | ||||
assert(elements); | assert(elements); | ||||
menu->pushChild(construct<MenuEntry>()); | |||||
menu->pushChild(construct<MenuLabel>(&MenuEntry::text, "Alternative models")); | |||||
menu->pushChild(construct<ElementsModalItem>(&MenuEntry::text, "Original", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 0)); | |||||
menu->pushChild(construct<ElementsModalItem>(&MenuEntry::text, "Non-linear string", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 1)); | |||||
menu->pushChild(construct<ElementsModalItem>(&MenuEntry::text, "Chords", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 2)); | |||||
menu->addChild(construct<MenuEntry>()); | |||||
menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Alternative models")); | |||||
menu->addChild(construct<ElementsModalItem>(&MenuEntry::text, "Original", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 0)); | |||||
menu->addChild(construct<ElementsModalItem>(&MenuEntry::text, "Non-linear string", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 1)); | |||||
menu->addChild(construct<ElementsModalItem>(&MenuEntry::text, "Chords", &ElementsModalItem::elements, elements, &ElementsModalItem::model, 2)); | |||||
return menu; | return menu; | ||||
} | } |
@@ -376,17 +376,17 @@ struct FramesChannelSettingsItem : MenuItem { | |||||
Menu *menu = new Menu(); | Menu *menu = new Menu(); | ||||
// TODO | // TODO | ||||
menu->pushChild(construct<MenuLabel>(&MenuEntry::text, "Interpolation Curve")); | |||||
menu->pushChild(construct<FramesCurveItem>(&MenuEntry::text, "Step", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_STEP)); | |||||
menu->pushChild(construct<FramesCurveItem>(&MenuEntry::text, "Linear", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_LINEAR)); | |||||
menu->pushChild(construct<FramesCurveItem>(&MenuEntry::text, "Accelerating", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_IN_QUARTIC)); | |||||
menu->pushChild(construct<FramesCurveItem>(&MenuEntry::text, "Decelerating", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_OUT_QUARTIC)); | |||||
menu->pushChild(construct<FramesCurveItem>(&MenuEntry::text, "Smooth Departure/Arrival", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_SINE)); | |||||
menu->pushChild(construct<FramesCurveItem>(&MenuEntry::text, "Bouncing", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_BOUNCE)); | |||||
menu->pushChild(construct<MenuLabel>()); | |||||
menu->pushChild(construct<MenuLabel>(&MenuEntry::text, "Response Curve")); | |||||
menu->pushChild(construct<FramesResponseItem>(&MenuEntry::text, "Linear", &FramesResponseItem::frames, frames, &FramesResponseItem::channel, channel, &FramesResponseItem::response, 0)); | |||||
menu->pushChild(construct<FramesResponseItem>(&MenuEntry::text, "Exponential", &FramesResponseItem::frames, frames, &FramesResponseItem::channel, channel, &FramesResponseItem::response, 255)); | |||||
menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Interpolation Curve")); | |||||
menu->addChild(construct<FramesCurveItem>(&MenuEntry::text, "Step", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_STEP)); | |||||
menu->addChild(construct<FramesCurveItem>(&MenuEntry::text, "Linear", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_LINEAR)); | |||||
menu->addChild(construct<FramesCurveItem>(&MenuEntry::text, "Accelerating", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_IN_QUARTIC)); | |||||
menu->addChild(construct<FramesCurveItem>(&MenuEntry::text, "Decelerating", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_OUT_QUARTIC)); | |||||
menu->addChild(construct<FramesCurveItem>(&MenuEntry::text, "Smooth Departure/Arrival", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_SINE)); | |||||
menu->addChild(construct<FramesCurveItem>(&MenuEntry::text, "Bouncing", &FramesCurveItem::frames, frames, &FramesCurveItem::channel, channel, &FramesCurveItem::curve, frames::EASING_CURVE_BOUNCE)); | |||||
menu->addChild(construct<MenuLabel>()); | |||||
menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Response Curve")); | |||||
menu->addChild(construct<FramesResponseItem>(&MenuEntry::text, "Linear", &FramesResponseItem::frames, frames, &FramesResponseItem::channel, channel, &FramesResponseItem::response, 0)); | |||||
menu->addChild(construct<FramesResponseItem>(&MenuEntry::text, "Exponential", &FramesResponseItem::frames, frames, &FramesResponseItem::channel, channel, &FramesResponseItem::response, 255)); | |||||
return menu; | return menu; | ||||
} | } | ||||
@@ -420,17 +420,17 @@ Menu *FramesWidget::createContextMenu() { | |||||
Frames *frames = dynamic_cast<Frames*>(module); | Frames *frames = dynamic_cast<Frames*>(module); | ||||
assert(frames); | assert(frames); | ||||
menu->pushChild(construct<MenuLabel>()); | |||||
menu->pushChild(construct<MenuLabel>(&MenuEntry::text, "Channel Settings")); | |||||
menu->addChild(construct<MenuLabel>()); | |||||
menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Channel Settings")); | |||||
for (int i = 0; i < 4; i++) { | for (int i = 0; i < 4; i++) { | ||||
menu->pushChild(construct<FramesChannelSettingsItem>(&MenuItem::text, stringf("Channel %d", i + 1), &FramesChannelSettingsItem::frames, frames, &FramesChannelSettingsItem::channel, i)); | |||||
menu->addChild(construct<FramesChannelSettingsItem>(&MenuItem::text, stringf("Channel %d", i + 1), &FramesChannelSettingsItem::frames, frames, &FramesChannelSettingsItem::channel, i)); | |||||
} | } | ||||
menu->pushChild(construct<FramesClearItem>(&MenuItem::text, "Clear Keyframes", &FramesClearItem::frames, frames)); | |||||
menu->addChild(construct<FramesClearItem>(&MenuItem::text, "Clear Keyframes", &FramesClearItem::frames, frames)); | |||||
menu->pushChild(construct<MenuLabel>()); | |||||
menu->pushChild(construct<MenuLabel>(&MenuEntry::text, "Mode")); | |||||
menu->pushChild(construct<FramesModeItem>(&MenuItem::text, "Keyframer", &FramesModeItem::frames, frames, &FramesModeItem::poly_lfo_mode, false)); | |||||
menu->pushChild(construct<FramesModeItem>(&MenuItem::text, "Poly LFO", &FramesModeItem::frames, frames, &FramesModeItem::poly_lfo_mode, true)); | |||||
menu->addChild(construct<MenuLabel>()); | |||||
menu->addChild(construct<MenuLabel>(&MenuEntry::text, "Mode")); | |||||
menu->addChild(construct<FramesModeItem>(&MenuItem::text, "Keyframer", &FramesModeItem::frames, frames, &FramesModeItem::poly_lfo_mode, false)); | |||||
menu->addChild(construct<FramesModeItem>(&MenuItem::text, "Poly LFO", &FramesModeItem::frames, frames, &FramesModeItem::poly_lfo_mode, true)); | |||||
return menu; | return menu; | ||||
} | } |
@@ -327,17 +327,17 @@ Menu *RingsWidget::createContextMenu() { | |||||
Rings *rings = dynamic_cast<Rings*>(module); | Rings *rings = dynamic_cast<Rings*>(module); | ||||
assert(rings); | assert(rings); | ||||
menu->pushChild(construct<MenuEntry>()); | |||||
menu->pushChild(construct<MenuLabel>(&MenuLabel::text, "Resonator")); | |||||
menu->pushChild(construct<RingsModelItem>(&MenuEntry::text, "Modal resonator", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_MODAL)); | |||||
menu->pushChild(construct<RingsModelItem>(&MenuEntry::text, "Sympathetic strings", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_SYMPATHETIC_STRING)); | |||||
menu->pushChild(construct<RingsModelItem>(&MenuEntry::text, "Modulated/inharmonic string", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_STRING)); | |||||
menu->pushChild(construct<RingsModelItem>(&MenuEntry::text, "FM voice", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_FM_VOICE)); | |||||
menu->pushChild(construct<RingsModelItem>(&MenuEntry::text, "Quantized sympathetic strings", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_SYMPATHETIC_STRING_QUANTIZED)); | |||||
menu->pushChild(construct<RingsModelItem>(&MenuEntry::text, "Reverb string", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_STRING_AND_REVERB)); | |||||
menu->pushChild(construct<MenuEntry>()); | |||||
menu->pushChild(construct<RingsEasterEggItem>(&MenuEntry::text, "Disastrous Peace", &RingsEasterEggItem::rings, rings)); | |||||
menu->addChild(construct<MenuEntry>()); | |||||
menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Resonator")); | |||||
menu->addChild(construct<RingsModelItem>(&MenuEntry::text, "Modal resonator", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_MODAL)); | |||||
menu->addChild(construct<RingsModelItem>(&MenuEntry::text, "Sympathetic strings", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_SYMPATHETIC_STRING)); | |||||
menu->addChild(construct<RingsModelItem>(&MenuEntry::text, "Modulated/inharmonic string", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_STRING)); | |||||
menu->addChild(construct<RingsModelItem>(&MenuEntry::text, "FM voice", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_FM_VOICE)); | |||||
menu->addChild(construct<RingsModelItem>(&MenuEntry::text, "Quantized sympathetic strings", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_SYMPATHETIC_STRING_QUANTIZED)); | |||||
menu->addChild(construct<RingsModelItem>(&MenuEntry::text, "Reverb string", &RingsModelItem::rings, rings, &RingsModelItem::model, rings::RESONATOR_MODEL_STRING_AND_REVERB)); | |||||
menu->addChild(construct<MenuEntry>()); | |||||
menu->addChild(construct<RingsEasterEggItem>(&MenuEntry::text, "Disastrous Peace", &RingsEasterEggItem::rings, rings)); | |||||
return menu; | return menu; | ||||
} | } |
@@ -275,8 +275,8 @@ Menu *TidesWidget::createContextMenu() { | |||||
Tides *tides = dynamic_cast<Tides*>(module); | Tides *tides = dynamic_cast<Tides*>(module); | ||||
assert(tides); | assert(tides); | ||||
menu->pushChild(construct<MenuEntry>()); | |||||
menu->pushChild(construct<TidesSheepItem>(&MenuEntry::text, "Sheep", &TidesSheepItem::tides, tides)); | |||||
menu->addChild(construct<MenuEntry>()); | |||||
menu->addChild(construct<TidesSheepItem>(&MenuEntry::text, "Sheep", &TidesSheepItem::tides, tides)); | |||||
return menu; | return menu; | ||||
} | } |