mirror of
https://codeberg.org/armin/monoslicer.git
synced 2026-09-01 04:10:45 +02:00
rename MonoSlicer to Monoslicer (lower-case s)
This commit is contained in:
parent
ac6f17d9ae
commit
9b7c973622
8 changed files with 78 additions and 58 deletions
|
|
@ -1,7 +1,7 @@
|
|||
#include "PluginProcessor.h"
|
||||
#include "PluginEditor.h"
|
||||
|
||||
MonoSlicerProcessor::MonoSlicerProcessor()
|
||||
MonoslicerProcessor::MonoslicerProcessor()
|
||||
: AudioProcessor(BusesProperties()
|
||||
.withInput("Input", juce::AudioChannelSet::stereo(), true)
|
||||
.withOutput("Output", juce::AudioChannelSet::stereo(), true)),
|
||||
|
|
@ -10,9 +10,9 @@ MonoSlicerProcessor::MonoSlicerProcessor()
|
|||
formatManager.registerBasicFormats();
|
||||
}
|
||||
|
||||
MonoSlicerProcessor::~MonoSlicerProcessor() {}
|
||||
MonoslicerProcessor::~MonoslicerProcessor() {}
|
||||
|
||||
juce::AudioProcessorValueTreeState::ParameterLayout MonoSlicerProcessor::createParameterLayout()
|
||||
juce::AudioProcessorValueTreeState::ParameterLayout MonoslicerProcessor::createParameterLayout()
|
||||
{
|
||||
juce::AudioProcessorValueTreeState::ParameterLayout layout;
|
||||
|
||||
|
|
@ -88,15 +88,15 @@ juce::AudioProcessorValueTreeState::ParameterLayout MonoSlicerProcessor::createP
|
|||
return layout;
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::prepareToPlay(double sampleRate, int samplesPerBlock)
|
||||
void MonoslicerProcessor::prepareToPlay(double sampleRate, int samplesPerBlock)
|
||||
{
|
||||
currentSampleRate = sampleRate;
|
||||
juce::ignoreUnused(samplesPerBlock);
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::releaseResources() {}
|
||||
void MonoslicerProcessor::releaseResources() {}
|
||||
|
||||
void MonoSlicerProcessor::computeBiquadCoeffs(FilterType type, float cutoff, float resonance,
|
||||
void MonoslicerProcessor::computeBiquadCoeffs(FilterType type, float cutoff, float resonance,
|
||||
float sampleRate, float& b0, float& b1, float& b2,
|
||||
float& a1, float& a2)
|
||||
{
|
||||
|
|
@ -163,7 +163,7 @@ void MonoSlicerProcessor::computeBiquadCoeffs(FilterType type, float cutoff, flo
|
|||
}
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::advanceAmpEnvelope(Voice& voice, int samples)
|
||||
void MonoslicerProcessor::advanceAmpEnvelope(Voice& voice, int samples)
|
||||
{
|
||||
float attack = apvts.getRawParameterValue("ampAttack")->load();
|
||||
float decay = apvts.getRawParameterValue("ampDecay")->load();
|
||||
|
|
@ -221,7 +221,7 @@ void MonoSlicerProcessor::advanceAmpEnvelope(Voice& voice, int samples)
|
|||
}
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::advanceFilterEnvelope(Voice& voice, int samples)
|
||||
void MonoslicerProcessor::advanceFilterEnvelope(Voice& voice, int samples)
|
||||
{
|
||||
float attack = apvts.getRawParameterValue("filterAttack")->load();
|
||||
float decay = apvts.getRawParameterValue("filterDecay")->load();
|
||||
|
|
@ -273,7 +273,7 @@ void MonoSlicerProcessor::advanceFilterEnvelope(Voice& voice, int samples)
|
|||
}
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::processBlock(juce::AudioBuffer<float>& buffer, juce::MidiBuffer& midiMessages)
|
||||
void MonoslicerProcessor::processBlock(juce::AudioBuffer<float>& buffer, juce::MidiBuffer& midiMessages)
|
||||
{
|
||||
juce::ScopedNoDenormals noDenormals;
|
||||
buffer.clear();
|
||||
|
|
@ -446,7 +446,7 @@ void MonoSlicerProcessor::processBlock(juce::AudioBuffer<float>& buffer, juce::M
|
|||
currentPlaybackSample.store(-1);
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::handleNoteOn(int noteNumber, float velocity)
|
||||
void MonoslicerProcessor::handleNoteOn(int noteNumber, float velocity)
|
||||
{
|
||||
int offset = static_cast<int>(apvts.getRawParameterValue("octaveOffset")->load()) * 12;
|
||||
int sliceIdx = noteNumber - 60 + offset;
|
||||
|
|
@ -479,7 +479,7 @@ void MonoSlicerProcessor::handleNoteOn(int noteNumber, float velocity)
|
|||
}
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::handleNoteOff()
|
||||
void MonoslicerProcessor::handleNoteOff()
|
||||
{
|
||||
for (auto& voice : voices)
|
||||
{
|
||||
|
|
@ -491,7 +491,7 @@ void MonoSlicerProcessor::handleNoteOff()
|
|||
}
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::loadAudioFile(const juce::File& file)
|
||||
void MonoslicerProcessor::loadAudioFile(const juce::File& file)
|
||||
{
|
||||
std::unique_ptr<juce::AudioFormatReader> reader(formatManager.createReaderFor(file));
|
||||
if (reader)
|
||||
|
|
@ -507,7 +507,17 @@ void MonoSlicerProcessor::loadAudioFile(const juce::File& file)
|
|||
}
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::refreshFolderList()
|
||||
void MonoslicerProcessor::clearSample()
|
||||
{
|
||||
sampleBuffer.setSize(0, 0);
|
||||
currentFile = juce::File{};
|
||||
folderFiles.clear();
|
||||
currentFileIndex = -1;
|
||||
sliceManager.setSampleBuffer(&sampleBuffer, loadedSampleRate);
|
||||
selectedSlice.store(-1);
|
||||
}
|
||||
|
||||
void MonoslicerProcessor::refreshFolderList()
|
||||
{
|
||||
folderFiles.clear();
|
||||
currentFileIndex = -1;
|
||||
|
|
@ -527,37 +537,37 @@ void MonoSlicerProcessor::refreshFolderList()
|
|||
}
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::loadNextSample()
|
||||
void MonoslicerProcessor::loadNextSample()
|
||||
{
|
||||
if (folderFiles.isEmpty()) return;
|
||||
int nextIdx = (currentFileIndex + 1) % folderFiles.size();
|
||||
loadAudioFile(folderFiles[nextIdx]);
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::loadPreviousSample()
|
||||
void MonoslicerProcessor::loadPreviousSample()
|
||||
{
|
||||
if (folderFiles.isEmpty()) return;
|
||||
int prevIdx = (currentFileIndex - 1 + folderFiles.size()) % folderFiles.size();
|
||||
loadAudioFile(folderFiles[prevIdx]);
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::triggerSlice(int sliceIndex, float velocity)
|
||||
void MonoslicerProcessor::triggerSlice(int sliceIndex, float velocity)
|
||||
{
|
||||
int noteNumber = sliceIndex + 60;
|
||||
handleNoteOn(noteNumber, velocity);
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::releaseSlice()
|
||||
void MonoslicerProcessor::releaseSlice()
|
||||
{
|
||||
handleNoteOff();
|
||||
}
|
||||
|
||||
juce::AudioProcessorEditor* MonoSlicerProcessor::createEditor()
|
||||
juce::AudioProcessorEditor* MonoslicerProcessor::createEditor()
|
||||
{
|
||||
return new MonoSlicerEditor(*this);
|
||||
return new MonoslicerEditor(*this);
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::getStateInformation(juce::MemoryBlock& destData)
|
||||
void MonoslicerProcessor::getStateInformation(juce::MemoryBlock& destData)
|
||||
{
|
||||
auto state = apvts.copyState();
|
||||
|
||||
|
|
@ -592,7 +602,7 @@ void MonoSlicerProcessor::getStateInformation(juce::MemoryBlock& destData)
|
|||
}
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::setStateInformation(const void* data, int sizeInBytes)
|
||||
void MonoslicerProcessor::setStateInformation(const void* data, int sizeInBytes)
|
||||
{
|
||||
auto stream = juce::MemoryInputStream(data, static_cast<size_t>(sizeInBytes), false);
|
||||
auto state = juce::ValueTree::readFromStream(stream);
|
||||
|
|
@ -661,10 +671,10 @@ void MonoSlicerProcessor::setStateInformation(const void* data, int sizeInBytes)
|
|||
|
||||
juce::AudioProcessor* JUCE_CALLTYPE createPluginFilter()
|
||||
{
|
||||
return new MonoSlicerProcessor();
|
||||
return new MonoslicerProcessor();
|
||||
}
|
||||
|
||||
void MonoSlicerProcessor::stretchToBeats(int numBeats, float bpm)
|
||||
void MonoslicerProcessor::stretchToBeats(int numBeats, float bpm)
|
||||
{
|
||||
if (sampleBuffer.getNumSamples() == 0 || bpm <= 0.0f || numBeats <= 0) return;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue