I been doing an extensive research in the internet because I need a way to generate real bass sound (like an electric bass guitar) from a program. The thing is Ive been looking in MIDI ways to produce that sound, but Im not sure if thats the right thing to do, actually I have little knwoledge about this subject, is my first trying anything related to produce sound from raw coding. I been looking into different APIs to help me, most of them open source to see what are the doing, but I found them very complex and with a really steep learning curve and little documentation. I also been lookin in open source programs like tuxguitar, made in java, which is similar to GuitarPro, so I could see how the produce the bass sound, I still have some code to scann so I can found what I am looking for, but I fear is wont be what I need or able to do. So to wrap all this up, my question is: is there a way to produce a real musical bass sound, either by native code or any API, no necesarily using MIDI or anything like, preferable in c/c++ or java? Thank you very much PS excuse any sintaxis or language error, i am not english speaking native.
How to generate a real bass guitar sound either in C/C++ or Java?
2.2k Views Asked by diego8arock At
2
There are 2 best solutions below
3
huysentruitw
On
You can try to control the built-in synth of the soundcard through midi. But if you want good sound and instrument quality, I would suggest you learn about VST, it's a technology from Steinbergh which includes virtual instrument (VSTi) and effect plugins.
So in essence, you could create or use a VST host application that works with existing commercial and free VSTi and VST plugins. You can then reuse available software synths and instrument emulations which sound amazing. As Brad suggests in his comment, you can then control the host application through midi.
While I only promote VST here, the wikipedia link contains a list of other technologies from different brands that are doing the same thing. But you get the idea.
Related Questions in JAVA
- I need the BIRT.war that is compatible with Java 17 and Tomcat 10
- Creating global Class holder
- No method found for class java.lang.String in Kafka
- Issue edit a jtable with a pictures
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- Does the && (logical AND) operator have a higher precedence than || (logical OR) operator in Java?
- Mixed color rendering in a JTable
- HTTPS configuration in Spring Boot, server returning timeout
- How to use Layout to create textfields which dont increase in size?
- Function for making the code wait in javafx
- How to create beans of the same class for multiple template parameters in Spring
- How could you print a specific String from an array with the values of an array from a double array on the same line, using iteration to print all?
- org.telegram.telegrambots.meta.exceptions.TelegramApiException: Bot token and username can't be empty
- Accessing Secret Variables in Classic Pipelines through Java app in Azure DevOps
- Postgres && statement Error in Mybatis Mapper?
Related Questions in C++
- How to immediately apply DISPLAYCONFIG_SCALING display scaling mode with SetDisplayConfig and DISPLAYCONFIG_PATH_TARGET_INFO
- Why can't I use templates members in its specialization?
- How to fix "Access violation executing location" when using GLFW and GLAD
- Dynamic array of structures in C++/ cannot fill a dynamic array of doubles in structure from dynamic array of structures
- How do I apply the interface concept with the base-class in design?
- File refuses to compile std::erase() even if using -std=g++23
- How can I do a successful map when the number of elements to be mapped is not consistent in Thrust C++
- Can std::bit_cast be applied to an empty object?
- Unexpected inter-thread happens-before relationships from relaxed memory ordering
- How i can move element of dynamic vector in argument of function push_back for dynamic vector
- Brick Breaker Ball Bounce
- Thread-safe lock-free min where both operands can change c++
- Watchdog Timer Reset on ESP32 using Webservers
- How to solve compiler error: no matching function for call to 'dmhFS::dmhFS()' in my case?
- Conda CMAKE CXX Compiler error while compiling Pytorch
Related Questions in AUDIO
- how to play a sounds in c# forms?
- Winsound not working isn't working at all
- Ringing noise overpowering voice / Recording audio with Max 9814 microphone on Raspberry pi pico using ADC Pin / Circuitpython
- How to take first x seconds of Audio from a wav file read from AWS S3 as binary stream using Python?
- gluon attach audio doesn't play any sound on android
- Implementing trim and fade filters with ffmpeg - MP3
- Unable to set device connection state as INPUT device type is none
- Is there a way to differentiate music and talking from a video?
- How to concatenate audio tracks and make them start a certain moment using Python?
- Combine two audio in different languages to one natural sounding
- STM32 - Serial Audio Interface (SAI) - dual data line transmit possible?
- playing mp3 downloaded via curllib gets cut short
- How to stream PCM audio to a speakers both on mac and linux in Node.js?
- Scikit-Maad -From the function rois.find_rois_cwt, I want to get a csv of the outputs so I can do my own analysis on it
- Using MediaPlayer slows down SoundPool sound effect
Related Questions in MIDI
- Mido Library Not Taking Inputs From MIDI Keyboard
- ViewCon USB-Midi device not working in Windows 11
- WinForms App for MIDI output doesn't work with Windows Package Installer
- What is the largest file size possible for a 1 second midi
- fluidsynth on Mac, virtual port
- mapping arbitrary frequency to midi note using audiokit microtonality
- ALSA: How to start Rx for (USB) raw MIDI?
- No output sound using fluidsynth + soundfont-fluid with midi2video
- Generate and record Midi sounds Android Kotlin
- Deadlock in midiInAddBuffer when using a virtual MIDI port
- How to Calculate Duration of a Note in Midi File Using Mido
- How should USB MIDI packets be formatted?
- Using Real-time list of midi messages in this SCAMP script
- How to get the names of the MIDI devices to the comboBox?
- Why mido library gives two different values for 'time' attribute?
Related Questions in BASS
- (ManagedBass, C#) How do I apply a low/band/high-pass filter to my audio stream?
- bass.dll change volume and balance in decoding channel
- Bass Library Error: Device(Illegal Device Number)
- C# ManagedBass Frequency Changes Playback Speed
- How do you play a list of files with bass.dll (libbass.dylib) in a Delphi FMX application?
- Installing the BASS audio library into a Swift Xcode Project (Mac & iOS)
- Problems using ReadDirectoryChanges in Rad Studio
- Audio output latency on BASS un4seen on android
- Managedbass MP3 Play
- AudioKit and Bass MIDI player
- Spotify play from C# using BASS
- BASS library: playing from memory
- MonoGame Window.Handle doesn't return Window or Form
- Bass library: unable to open slave in linux C++
- How can I make the program automatically exit after audio played over
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
MIDI is just a control protocol, and has nothing to do with sound on its own. It's generally used for synthesizer control (note on/off messages and what not), but that's about it.
Most devices have a synthesizer in them that can produce sounds for you while being controlled with MIDI. This is by far the easiest way to get started, but you will find that most stock General MIDI synths don't sound so great.
Now, as far as producing the sounds you are after, you are talking about writing your own synthesizer. There is no magic. There is no shortcut. This is hard work! Generally, synths will use a set of samples, and then manipulate them. For instance, you'll have a sample for a pluck, and then another for the sound of the guitar. This will all be controlled on an ADSR envelope. Even then, it isn't going to sound amazing, since you are only approximating a very small set of characteristics of the instrument.