목록juce (34)
음악, 삶, 개발
Max 에서는 screensize 라는 오브젝트가 있는데, Juce 에서는 Desktop 이라는 클래스를 통해 얻어와야한다. 조금은 복잡하다. const auto userMonitor = juce::Desktop::getInstance().getDisplays().getMainDisplay().totalArea; DBG(userMonitor.getWidth()); // 2560 DBG(userMonitor.getHeight()); // 1600 일단 juce::Desktop::getInstance() 함수로 Desktop instance 를 얻고, 이 instance 에 다시 getDisplays() 를 호출하여 디스플레이"들" 을 얻고, (모니터가 여러대 일수도있으므로) 이중 사용자의 주요 디스플레이를..
VST3 를 컴파일할수있는 가장 기본적인 코드. 이 코드를 기본으로 깔고, 기능을 만들어가면됨. #include class MainProcessor : public juce::AudioProcessor { public: MainProcessor() : AudioProcessor(BusesProperties().withOutput("Output", juce::AudioChannelSet::stereo(), true)) { } ~MainProcessor() override { } bool hasEditor() const override { return true; } juce::AudioProcessorEditor* createEditor() override; const juce::String getName(..
코드 class Arp : public juce::AudioProcessor { public : void prepareToPlay(double sampleRate, int maximumExpectedSamplesPerBlock) override { notes.clear(); // [1]: First, we empty the SortedSet of MIDI note numbers. currentNote = 0; // [2]: The currentNote variable temporarily holds the current index for the SortedSet of notes. lastNoteValue = -1; // [3]: The lastNoteValue variable temporarily hol..
코드 void transposeByInterval(juce::MidiBuffer& midiBuffer, int interval) { juce::MidiBuffer transposedMidi; for (const auto metaData : midiBuffer) { auto midiMessage { metaData.getMessage() }; if (midiMessage.isNoteOnOrOff()) { midiMessage.setNoteNumber(midiMessage.getNoteNumber() + interval); transposedMidi.addEvent(midiMessage, metaData.samplePosition); } } midiBuffer.swapWith(transposedMidi); ..