kopia lustrzana https://github.com/jameshball/osci-render
Merge branch 'master' into 3d-audio
commit
d9727d97f2
|
@ -38,6 +38,13 @@ MidiComponent::MidiComponent(OscirenderAudioProcessor& p, OscirenderAudioProcess
|
|||
envelope.addListener(&audioProcessor);
|
||||
envelope.setGrid(EnvelopeComponent::GridBoth, EnvelopeComponent::GridNone, 0.1, 0.25);
|
||||
|
||||
if (juce::JUCEApplicationBase::isStandaloneApp()) {
|
||||
addAndMakeVisible(midiSettingsButton);
|
||||
midiSettingsButton.onClick = [this]() {
|
||||
pluginEditor.openAudioSettings();
|
||||
};
|
||||
}
|
||||
|
||||
audioProcessor.attackTime->addListener(this);
|
||||
audioProcessor.attackLevel->addListener(this);
|
||||
audioProcessor.attackShape->addListener(this);
|
||||
|
@ -105,6 +112,9 @@ void MidiComponent::resized() {
|
|||
midiToggle.setBounds(topRow.removeFromLeft(120));
|
||||
topRow.removeFromLeft(80);
|
||||
voicesSlider.setBounds(topRow.removeFromLeft(250));
|
||||
if (midiSettingsButton.isVisible()) {
|
||||
midiSettingsButton.setBounds(topRow.removeFromRight(160));
|
||||
}
|
||||
area.removeFromTop(5);
|
||||
keyboard.setBounds(area.removeFromBottom(50));
|
||||
envelope.setBounds(area);
|
||||
|
|
|
@ -22,6 +22,7 @@ private:
|
|||
juce::ToggleButton midiToggle{"Enable MIDI"};
|
||||
juce::Slider voicesSlider;
|
||||
juce::Label voicesLabel;
|
||||
juce::TextButton midiSettingsButton{"Audio/MIDI Settings..."};
|
||||
juce::MidiKeyboardComponent keyboard{audioProcessor.keyboardState, juce::MidiKeyboardComponent::horizontalKeyboard};
|
||||
|
||||
EnvelopeContainerComponent envelope;
|
||||
|
|
|
@ -58,7 +58,7 @@ OscirenderAudioProcessorEditor::OscirenderAudioProcessorEditor(OscirenderAudioPr
|
|||
audioProcessor.broadcaster.addChangeListener(this);
|
||||
}
|
||||
|
||||
if (audioProcessor.wrapperType == juce::AudioProcessor::WrapperType::wrapperType_Standalone) {
|
||||
if (juce::JUCEApplicationBase::isStandaloneApp()) {
|
||||
if (juce::TopLevelWindow::getNumTopLevelWindows() == 1) {
|
||||
juce::TopLevelWindow* w = juce::TopLevelWindow::getTopLevelWindow(0);
|
||||
juce::DocumentWindow* dw = dynamic_cast<juce::DocumentWindow*>(w);
|
||||
|
@ -68,6 +68,11 @@ OscirenderAudioProcessorEditor::OscirenderAudioProcessorEditor(OscirenderAudioPr
|
|||
dw->setUsingNativeTitleBar(true);
|
||||
}
|
||||
}
|
||||
|
||||
juce::StandalonePluginHolder* standalone = juce::StandalonePluginHolder::getInstance();
|
||||
if (standalone != nullptr) {
|
||||
standalone->getMuteInputValue().setValue(false);
|
||||
}
|
||||
}
|
||||
|
||||
setSize(1100, 750);
|
||||
|
|
|
@ -156,6 +156,9 @@ void ShapeVoice::renderNextBlock(juce::AudioSampleBuffer& outputBuffer, int star
|
|||
if (!renderingSample && frameDrawn >= drawnFrameLength) {
|
||||
if (sound.load() != nullptr && currentlyPlaying) {
|
||||
frameLength = sound.load()->updateFrame(frame);
|
||||
frameDrawn = 0.0;
|
||||
shapeDrawn = 0.0;
|
||||
currentShape = 0;
|
||||
}
|
||||
frameDrawn = 0.0;
|
||||
shapeDrawn = 0.0;
|
||||
|
|
|
@ -287,10 +287,13 @@ private:
|
|||
| juce::FileBrowserComponent::warnAboutOverwriting,
|
||||
[this](const juce::FileChooser& c) {
|
||||
if (juce::FileInputStream inputStream(lastRecording); inputStream.openedOk()) {
|
||||
if (const auto outputStream = c.getURLResult().getLocalFile().createOutputStream()) {
|
||||
outputStream->setPosition(0);
|
||||
outputStream->truncate();
|
||||
outputStream->writeFromInputStream(inputStream, -1);
|
||||
juce::URL url = c.getURLResult();
|
||||
if (url.isLocalFile()) {
|
||||
if (const auto outputStream = url.getLocalFile().createOutputStream()) {
|
||||
outputStream->setPosition(0);
|
||||
outputStream->truncate();
|
||||
outputStream->writeFromInputStream(inputStream, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -38,9 +38,11 @@ void ObjectServer::run() {
|
|||
std::memcpy(message.get() + i, buffer, bytesRead);
|
||||
i += bytesRead;
|
||||
|
||||
if (message[i] == '\n') {
|
||||
message[i] = '\0';
|
||||
break;
|
||||
for (int j = i - bytesRead; j < i; j++) {
|
||||
if (message[j] == '\n') {
|
||||
message[j] = '\0';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
pluginCharacteristicsValue="pluginProducesMidiOut,pluginWantsMidiIn"
|
||||
pluginManufacturer="jameshball" aaxIdentifier="sh.ball.oscirender"
|
||||
cppLanguageStandard="20" projectLineFeed=" " headerPath="./include"
|
||||
version="2.0.7" companyName="James H Ball" companyWebsite="https://osci-render.com"
|
||||
version="2.0.8" companyName="James H Ball" companyWebsite="https://osci-render.com"
|
||||
companyEmail="james@ball.sh">
|
||||
<MAINGROUP id="j5Ge2T" name="osci-render">
|
||||
<GROUP id="{5ABCED88-0059-A7AF-9596-DBF91DDB0292}" name="Resources">
|
||||
|
|
Ładowanie…
Reference in New Issue