Code Monkey home page Code Monkey logo

Comments (18)

theModernSurrealist avatar theModernSurrealist commented on May 12, 2024 1

@izzyreal I am using MSVC and following the instructions in the README (conan install .. --build missing and conan build..) if that is what you mean by process.
I will try vmpc-workspace now and see if that will work.

Thanks for the fast response!

from vmpc-juce.

theModernSurrealist avatar theModernSurrealist commented on May 12, 2024 1

I have sent you an email from [scrambled]@gmail.com to [scrambled].nl. Looking forward to speak with you soon!

from vmpc-juce.

izzyreal avatar izzyreal commented on May 12, 2024

@theModernSurrealist Thanks for reporting this issue. Which process are you using to build?

For what you describe I'd recommend to clone https://github.com/izzyreal/vmpc-workspace and run python build-workspace.py vs2022. Then you get a VS project in the build dir which allows editing of all the source code.

from vmpc-juce.

theModernSurrealist avatar theModernSurrealist commented on May 12, 2024

I also have another question - is there a .jucer file I could use to modify the GUI a bit easier? If so, where can I download it?

from vmpc-juce.

izzyreal avatar izzyreal commented on May 12, 2024

The project is fully CMake-based I'm afraid, i.e. no Projucer involved. But I'd be happy to answer any questions you may have about the GUI code.

from vmpc-juce.

theModernSurrealist avatar theModernSurrealist commented on May 12, 2024

@izzyreal I am working on an audio sampler box based on your software - poor mans MPC.
It needs to run on linux, plus the extra keyboard controls meant that I can essentially recreate the MPC workflow without the limitations it had by emulating keypresses via push buttons.

I wanted to run your software on this device, but I only wanted the screen portion as everything else could be controlled via MIDI or keyboard. Would you have any guidance on achieving this?

from vmpc-juce.

izzyreal avatar izzyreal commented on May 12, 2024

Yes. In fact, the project architecture is designed for such cases. The core of VMPC2000XL is mpc: https://github.com/izzyreal/mpc

It is a static library that does nothing on its own. It needs a GUI or UI implementation. vmpc-juce is one such GUI implementation, but I have already experimented with 2 others: https://github.com/izzyreal/vmpc-unreal-plugin and https://github.com/izzyreal/vmpc

For your purpose, you would probably want to use mpc rather than vmpc-juce. Unfortunately there is no clear API or documentation for how to create your own (G)UI implementation for mpc. So it will take a bit of poking around in vmpc-juce, which can be considered a reference implementation, and maybe you can draw some inspiration from the other GUI implementations (vmpc and vmpc-unreal-plugin).

I'm not sure how much guidance you need, but I'd be happy to have a video call with screen sharing where I walk you through some relevant stuff and answer any questions you have. I think for initial communication that would be the most efficient, and we can switch to email or Discord after.

from vmpc-juce.

izzyreal avatar izzyreal commented on May 12, 2024

I should also mention that depending on your requirements there may be way simpler solutions! But if it's the real MPC2000XL flow and functionality that you need, mpc definitely fits the bill.

from vmpc-juce.

theModernSurrealist avatar theModernSurrealist commented on May 12, 2024

Wow, I really did not expect such an offer!
Of course, any help at all would be extremely appreciated.

I understand what you mean. I am fairly competent in C++, but I am clueless when it comes to JUCE, hence my struggle with vmpc-juce. Ideally I am looking for the MPC workflow because I want to emulate the good times I had with my dad on the old MPC2000XL as well as bring back some of the more hands-on approach of making music, without relying on a computer that takes upwards of 10 minutes to start.

I am planning on running (V)MPC off of a Raspberry Pi 4 with a small 360p display connected to a powerbank as well as an MPD218.
I am a bit confused however on the structure of VMPC2000XL. As far as I am aware:
MPC is the core. It relies on ctoot, moduru and akaifat to run properly. VMPC-JUCE is the GUI portion, and is not necessary for MPC to run.
Would I then have to use something such as Ncurses for CLI interfaces or cairo to create a frontend for the sampler?

Your offer to help would be greatly appreciated considering that there is no specific documentation for MPC (although the comments in the code greatly help) and it would be great to sort out a video call with screen sharing at some point in the near future.

Just out of interest, what simpler solutions do you have in mind?

Thanks so much!

from vmpc-juce.

theModernSurrealist avatar theModernSurrealist commented on May 12, 2024

Also, to build vmpc, there is a missing conan remote.
In the readme, you've left
What are the missing remotes?

from vmpc-juce.

izzyreal avatar izzyreal commented on May 12, 2024

vmpc is heavily unmaintained I'm afraid. I wouldn't spend too much time on getting it to build. You could browse the code using for example Sublime, or check some of the commit diffs on GitHub directly.

Simpler solutions: Depends on your requirements. From what I hear, I don't think simpler solutions would yield a close match. But if all you need is to trigger some samples, for example based on a text file that lists up to 16 absolute WAV file paths, you could write something from scratch with RtAudio and RtMidi for example.

Let's indeed do a video call then. Reach out to the below
image
and we'll take it from there.

from vmpc-juce.

izzyreal avatar izzyreal commented on May 12, 2024

VMPC-JUCE is the GUI portion, and is not necessary for MPC to run.

True, but mpc does need some (G)UI implementation -- something that instantiates the main entity mpc::Mpc and directs host system user input to it.

The only entry points (executable targets) in the mpc project are its unit tests. There are not many, but it does give some indication of how one would start out writing a (G)UI implementation. See for example https://github.com/izzyreal/mpc/blob/master/src/test/MainTest.cpp

from vmpc-juce.

theModernSurrealist avatar theModernSurrealist commented on May 12, 2024

Again, thanks for the speedy reply.

I understand now - thanks for the clarification.
I will begin to study the unit tests, and work on implementing a GUI.
I will probably do it in Ncurses because it will allow for faster speeds (no window manager), it being written in C++ and ease-of-use seeing as I am only looking to use the screen portion of the VMPC.

Also, how could I go about linking the Mpc.hpp file to the GUI code - would I call the features from that file or from the individual .hpp files in /src/main? Could I take inspiration from how JUCE links to the static library?
Can we discuss this in the future video call?

I will go to sleep soon, but I am happy to arrange a video call soon. I'll drop you an email as soon as I can.

Thanks for the help.

from vmpc-juce.

izzyreal avatar izzyreal commented on May 12, 2024

You're more than welcome! Would love to see this come alive. I think it will be a somewhat bumpy ride, as you are the first besides myself to try this. Since I have intimate knowledge of the code base, I have a pretty clear idea of what code of mpc is meant to interact with its consumer (i.e. a GUI implementation), and what code is for internal use only. But I consider what you want to do a very cool and valid use case of the mpc project, so I'll try to assist where I can. With some patience I think we can make it work, and hopefully I will get a clearer picture of how to extract an API from mpc and I can encapsulate things better for non-vmpc-juce consumers. For example, it's about time mpc gets one of those nice include directories that expose the headers that are meant for external consumption.

from vmpc-juce.

izzyreal avatar izzyreal commented on May 12, 2024

Also, how could I go about linking the Mpc.hpp file to the GUI code - would I call the features from that file or from the individual .hpp files in /src/main?

Indeed most easily discussed in a call, but with a bit of luck I can work alongside your efforts to at least refactor the project into having an include dir meant for external consumption.

from vmpc-juce.

izzyreal avatar izzyreal commented on May 12, 2024

I've scrambled our email addresses, since this is a public thread that scrapers can pick up on. I'll keep an eye out for your message.

from vmpc-juce.

theModernSurrealist avatar theModernSurrealist commented on May 12, 2024

Right! My apologies. Looking forward to speak soon.

from vmpc-juce.

izzyreal avatar izzyreal commented on May 12, 2024

It's all good :) Speak soon.

from vmpc-juce.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.