madskjeldgaard / birdhouse Goto Github PK
View Code? Open in Web Editor NEWAn OSC to Midi Bridge. Cross-platform. VST, CLAP, Standalone.
License: Other
An OSC to Midi Bridge. Cross-platform. VST, CLAP, Standalone.
License: Other
A text indicator or level bar should indicate the state of each channel
EAch channnel currently only take one input value. It would be cool to allow several at once.
The standalone mode currently doesn't correctly load state at startup.
Allow choosing between lin/exp/custom warp for input data.
Some osc updates are too frequent, add lag to allow delayng/smoothing them.
The project should work on Arch Linux.
It includes a PKGBUILD at the root right now, which is experimental.
We need to:
birdhouse-git
Juce has nice support for accesibility features. All UI shold be accessible by keyboard, and screen readers. This is a must for any professional application.
https://docs.juce.com/master/group__juce__gui__basics-accessibility.html
Text editor onChange should just filter values.
onReturnKey and onEscapeKey should lose focus.
and OnFocusLost should be used to send the value to the server.
This way values are only updated when editing is finished.
No description provided.
There should be a text label for the connection status
No description provided.
For debugging purposes, an OSC log / console would be nice to figure out what's going on.
The osc handler currently type checks the input to see if it is a float32 type. This should be changed to allow other number types, then static cast them to float for internal calculations.
No description provided.
Add an info box like the activity indicator to show what midi message it is converted to
The window could use a bit of extra padding under the port field.
Text fields currently can contain anything. This should be restricted to only valid numbers and input.
No description provided.
When the midi part of a channel changes, a note off message should be added to the midi stream to make sure that no dangling notes are left behind.
There's an issue with resources being expected when compiling but not being found. I think this is why it currently doesn't work in Ableton.
No description provided.
No description provided.
The point of this plugin is to get rid of middle wares written in SC, Max, Python.
Therefore, to do that, we need to add a way to process data on each OSC Channel.
I call this "OPS".
These may include:
It is too easy to click the help button at the moment and then leave the plugin. This should be hidden.
This plugin currently isn't entirely lock-free.
This could be an issue for performance.
The plugin should be made lock-free.
The difficult thing is where the realtime processing of incoming OSC messages are done and the resulting data is used to create midi buffers. This is where the lock needs to be right now to avoid data-races, but ideally this shouldn't be the case.
The combobox and mute button currently have rounding. Remove this.
Currently the addition of midi messages to the midibuffer in processBlock is not sample accurate, this should be fixed.
No description provided.
Normalized value: 0.912 Value accepted: 1 Raw OSC message: /2/value
Process 98709 stopped
* thread #11, name = 'com.apple.audio.IOThread.client', stop reason = EXC_BAD_ACCESS (code=1, address=
0x12f71752d)
frame #0: 0x00000001006b72e4 BirdHouse`unsigned short juce::readUnaligned<unsigned short>(srcPtr=0
x000000012f71752d) at juce_Memory.h:68:5
65 inline Type readUnaligned (const void* srcPtr) noexcept
66 {
67 Type value;
-> 68 memcpy (&value, srcPtr, sizeof (Type));
69 return value;
70 }
71
Target 0: (BirdHouse) stopped.
(lldb) bt
* thread #11, name = 'com.apple.audio.IOThread.client', stop reason = EXC_BAD_ACCESS (code=1, address=
0x12f71752d)
* frame #0: 0x00000001006b72e4 BirdHouse`unsigned short juce::readUnaligned<unsigned short>(srcPtr=0
x000000012f71752d) at juce_Memory.h:68:5
frame #1: 0x000000010072ee14 BirdHouse`juce::MidiBufferHelpers::getEventDataSize(d=0x000000012f717
529) at juce_MidiBuffer.cpp:35:16
frame #2: 0x000000010072ee80 BirdHouse`juce::MidiBufferIterator::operator*(this=0x00000001702e64d8
) const at juce_MidiBuffer.cpp:99:14
frame #3: 0x000000010072f84c BirdHouse`juce::MidiBuffer::addEvents(this=0x00000001702e6588, otherB
uffer=0x00006000000e82e0, startSample=0, numSamples=-1, sampleDeltaToAdd=0) at juce_MidiBuffer.cpp:160
:31
frame #4: 0x00000001007bdd4c BirdHouse`OSCBridgeChannel::appendMessagesTo(this=0x00006000000e8298,
processBlockBuffer=0x00000001702e6588) at OSCBridgeChannel.h:121:32
frame #5: 0x00000001007bdc94 BirdHouse`PluginProcessor::processBlock(this=0x0000000108704080, buff
er=0x00000001702e6688, midiMessages=0x000000012882b8d8) at PluginProcessor.cpp:194:15
frame #6: 0x00000001007e7ae4 BirdHouse`juce::AudioProcessorPlayer::audioDeviceIOCallbackWithContex
t(this=0x000000012882b5f0, inputChannelData=0x00006000020c0810, numInputChannels=0, outputChannelData=
0x0000600002cfdc60, numOutputChannels=1, numSamples=448, context=0x00000001702e6c18) at juce_AudioProc
essorPlayer.cpp:338:28
frame #7: 0x0000000100011ab8 BirdHouse`juce::StandalonePluginHolder::audioDeviceIOCallbackWithCont
ext(this=0x000000012882b200, inputChannelData=0x00006000020c0810, numInputChannels=0, outputChannelDat
a=0x0000600002cfdc60, numOutputChannels=1, numSamples=448, context=0x00000001702e6c18) at juce_Standal
oneFilterWindow.h:636:16
frame #8: 0x0000000100013254 BirdHouse`juce::StandalonePluginHolder::CallbackMaxSizeEnforcer::audi
oDeviceIOCallbackWithContext(this=0x000000012882bb80, inputChannelData=0x0000000000000000, numInputCha
nnels=0, outputChannelData=0x0000600002ec9380, numOutputChannels=1, numSamples=448, context=0x00000001
702e6c18) at juce_StandaloneFilterWindow.h:490:23
frame #9: 0x00000001008f4d38 BirdHouse`juce::AudioDeviceManager::audioDeviceIOCallbackInt(this=0x0
00000012882b258, inputChannelData=0x0000000000000000, numInputChannels=0, outputChannelData=0x00006000
02ec9380, numOutputChannels=1, numSamples=448, context=0x00000001702e6c18) at juce_AudioDeviceManager.
cpp:1010:37
frame #10: 0x0000000100900bb0 BirdHouse`juce::AudioDeviceManager::CallbackHandler::audioDeviceIOCa
llbackWithContext(this=0x00006000020f69d0, ins=0x0000000000000000, numIns=0, outs=0x0000600002ec9380,
numOuts=1, numSamples=448, context=0x00000001702e6c18) at juce_AudioDeviceManager.cpp:79:15
frame #11: 0x000000010091bbac BirdHouse`juce::CoreAudioClasses::CoreAudioInternal::audioCallback(t
his=0x000000012980d330, inputTimestamp=0x00000001023d00a0, outputTimestamp=0x00000001023d00e0, inInput
Data=0x0000600002cf4470, outOutputData=0x0000600002ef1060) at juce_CoreAudio_mac.cpp:801:23
frame #12: 0x000000010091b5d8 BirdHouse`juce::CoreAudioClasses::CoreAudioInternal::audioIOProc((nu
ll)=90, inNow=0x00000001023d0060, inInputData=0x0000600002cf4470, inInputTime=0x00000001023d00a0, outO
utputData=0x0000600002ef1060, inOutputTime=0x00000001023d00e0, device=0x000000012980d330) at juce_Core
Audio_mac.cpp:1134:51
frame #13: 0x000000018c9e973c CoreAudio`HALC_ProxyIOContext::IOWorkLoop() + 9244
frame #14: 0x000000018c9e6bf0 CoreAudio`invocation function for block in HALC_ProxyIOContext::HALC
_ProxyIOContext(unsigned int, unsigned int) + 108
frame #15: 0x000000018cb65f2c CoreAudio`HALC_IOThread::Entry(void*) + 88
frame #16: 0x000000018a1c6034 libsystem_pthread.dylib`_pthread_start + 136
The ValueTree supports connecting with an undo manager. This should be added.
Pressing mute to set it ON should send note off message as well to make sure of no dangling notes
Sometimes the app crashes because of a bad access inside of the OSC part of things.
The standalone version logo is currently Pamplejuce's, this should be changed to something else.
The code is littered with juce::Logger instances where there should be a DBG instead.
No description provided.
When inputting a periodic signal to a note channel, sometimes it does not pass through the note through the plugin, even though the visualisation indicates the data has been received properly.
The plugin has not been tested in Ableton
When plugin is started, the intial state is not triggering and setting the channels properly
No description provided.
The plugin does not output midi until the gui has been opened at least once.
This repo is set up to use github actions to build binaries.
It is currently disabled, because the macOS build needs an apple developer account which I don't currently have.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.