Posts: 529
Threads: 67
Joined: Apr 2022
Reputation:
11
07-28-2022, 01:29 PM
(This post was last modified: 07-28-2022, 01:34 PM by madscijr.)
I'm interested in creating a simple MIDI sequencer
and/or a 2 (or 3 or 4) track digital audio recorder
that lets you record while listening to the other track(s) play back.
Has anyone made (or seen) any simple QB64 programs that do either of these things?
(Simple being the operative word, here! )
Much appreciated...
Posts: 38
Threads: 3
Joined: Apr 2022
Reputation:
3
Posts: 2,700
Threads: 124
Joined: Apr 2022
Reputation:
134
Wow nice lookup @euklides thumbs up!
b = b + ...
Posts: 1,510
Threads: 53
Joined: Jul 2022
Reputation:
47
MIDI is crazy hard to get right, even on faster computers than what faced programmers in decade-2000, while multimedia was beginning to be prioritized in Windows, and Sonic Foundry ACID Music and Cakewalk Professional software were considered "magical". A few years ago on 32-bit Ubuntu Studio from one music app I triggered via JACK and MIDI the standalone Qsynth (SF2 player). Trying to do drum beats at fast tempos sucked because synchronization was bad. While playing pads and other slow long notes it wasn't noticed as well.
Recording MIDI on the fly and constraining note events to beats or the like, is even harder because some people actually prefer "humanization" of rhythms but one is often turned off with how a music app handles his/her own computations with an external MIDI keyboard. Take for instance, a drummer beginning to play a bit slower than the "project" tempo and very slowly but steadily speeds up to where he/she should be and the rest of the band goes along with him/her. That's why some people have foolishly dismissed some music applications very good at MIDI but not as good as certain "dongleware" with handling audio. They were never interested in triggering synthesizers or into sound design for film composing or doing anything else with MIDI if they could only treat any computer as high-quality multitrack recorder.
To do audio recording as well as playback, and the chance to do both at the same time, might have to interface with Portaudio or such other third-party library. It's the only way to go cross-platform about it.
Posts: 529
Threads: 67
Joined: Apr 2022
Reputation:
11
(07-28-2022, 10:56 PM)mnrvovrfc Wrote: MIDI is crazy hard to get right, even on faster computers than what faced programmers in decade-2000, while multimedia was beginning to be prioritized in Windows, and Sonic Foundry ACID Music and Cakewalk Professional software were considered "magical". A few years ago on 32-bit Ubuntu Studio from one music app I triggered via JACK and MIDI the standalone Qsynth (SF2 player). Trying to do drum beats at fast tempos sucked because synchronization was bad. While playing pads and other slow long notes it wasn't noticed as well.
Recording MIDI on the fly and constraining note events to beats or the like, is even harder because some people actually prefer "humanization" of rhythms but one is often turned off with how a music app handles his/her own computations with an external MIDI keyboard. Take for instance, a drummer beginning to play a bit slower than the "project" tempo and very slowly but steadily speeds up to where he/she should be and the rest of the band goes along with him/her. That's why some people have foolishly dismissed some music applications very good at MIDI but not as good as certain "dongleware" with handling audio. They were never interested in triggering synthesizers or into sound design for film composing or doing anything else with MIDI if they could only treat any computer as high-quality multitrack recorder.
To do audio recording as well as playback, and the chance to do both at the same time, might have to interface with Portaudio or such other third-party library. It's the only way to go cross-platform about it.
Thanks for your reply.
I'm not looking to make a SONAR or Cubase killer, or even a Garage Band, just a simple tracker that lets you edit MIDI events for 2 or 3 channels and place them on a timeline, and save to a standard MIDI file. I don't even need it to _play_ the file (though I have seen a bunch of MIDI players for QB so I can eventually look at those). Just an editor that can save to the MIDI format.
For digital audio, I'd be happy with a simple 2-track recorder that lets you record track 2 from whatever audio interface, while track 1 plays back, and vice-versa.
I still need to check out the links @euklides posted (was busy with this menu code, multitasking!)
and will give those links a look when back at PC later...
Thanks again.
Posts: 1,510
Threads: 53
Joined: Jul 2022
Reputation:
47
(07-28-2022, 11:22 PM)madscijr Wrote: :
For digital audio, I'd be happy with a simple 2-track recorder that lets you record track 2 from whatever audio interface, while track 1 plays back, and vice-versa.
:
https://staging.qb64phoenix.com/showthread.php?tid=333
This is a program that I liked a lot, with brilliant execution. Maybe you would like to study it. However it's impossible to get more than one event on the same exact step. One of the songs demonstrates "flamming" when two tones try to sound at the same time. Nevertheless, this is a good example of recording and playing back sounds in polyphony. It demonstrates that timing is crucial.
This is best demonstrated by this gem:
https://github.com/a740g/QB64-MOD-Player
Getting that to create a MOD and to record in it would add a new layer of complication.
Oh OK it's not an example of recording MIDI nor audio but it's what could be achieved in QB64. What you would like such as "simple" duplex sound card stuff might be possible only by connecting with Portaudio, programming with threads and stuff like that. LOL @ "Sonar or Cubase killer", but this is just for "simple" stuff.
Posts: 1,510
Threads: 53
Joined: Jul 2022
Reputation:
47
https://qb64forum.alephc.xyz/index.php?t...#msg139250
This is the last link posted by euklides above. It's a solution that would work on Linux but not on Windows, unless you're willing to go through the pain of Cygwin. Trust me that you don't if you don't care about Linux.
Posts: 2,700
Threads: 124
Joined: Apr 2022
Reputation:
134
07-29-2022, 01:27 PM
(This post was last modified: 07-29-2022, 01:31 PM by bplus.)
Quote:https://staging.qb64phoenix.com/showthread.php?tid=333
This is a program that I liked a lot, with brilliant execution. Maybe you would like to study it. However it's impossible to get more than one event on the same exact step. One of the songs demonstrates "flamming" when two tones try to sound at the same time. Nevertheless, this is a good example of recording and playing back sounds in polyphony. It demonstrates that timing is crucial.
+1 Talking about playing different tracks of sound, this is my fav also by Dav:
https://staging.qb64phoenix.com/showthread.php?tid=423
MasterGy posted something truly amazing at old forum, but removed it before I had chance to get copy. He was doing computer generated music that sounded to me like professional New Age stuff. I hope he finds it and brings it back here.
b = b + ...
Posts: 300
Threads: 57
Joined: Apr 2022
Reputation:
56
(07-29-2022, 01:13 PM)mnrvovrfc Wrote: https://staging.qb64phoenix.com/showthread.php?tid=333
This is a program that I liked a lot, with brilliant execution. Maybe you would like to study it. However it's impossible to get more than one event on the same exact step. One of the songs demonstrates "flamming" when two tones try to sound at the same time. Nevertheless, this is a good example of recording and playing back sounds in polyphony. It demonstrates that timing is crucial.
Yeah that bothers me about it too. Same problem exists in the Keys48 program. Fixing that is at the top of the list for the next update. Going to allow for groups of notes to be saved and played back.
Thanks for trying out my programs!
- Dav
Posts: 529
Threads: 67
Joined: Apr 2022
Reputation:
11
(07-28-2022, 10:56 PM)mnrvovrfc Wrote: MIDI is crazy hard to get right, even on faster computers than what faced programmers in decade-2000, while multimedia was beginning to be prioritized in Windows, and Sonic Foundry ACID Music and Cakewalk Professional software were considered "magical". A few years ago on 32-bit Ubuntu Studio from one music app I triggered via JACK and MIDI the standalone Qsynth (SF2 player). Trying to do drum beats at fast tempos sucked because synchronization was bad. While playing pads and other slow long notes it wasn't noticed as well.
Recording MIDI on the fly and constraining note events to beats or the like, is even harder because some people actually prefer "humanization" of rhythms but one is often turned off with how a music app handles his/her own computations with an external MIDI keyboard. Take for instance, a drummer beginning to play a bit slower than the "project" tempo and very slowly but steadily speeds up to where he/she should be and the rest of the band goes along with him/her. That's why some people have foolishly dismissed some music applications very good at MIDI but not as good as certain "dongleware" with handling audio. They were never interested in triggering synthesizers or into sound design for film composing or doing anything else with MIDI if they could only treat any computer as high-quality multitrack recorder.
To do audio recording as well as playback, and the chance to do both at the same time, might have to interface with Portaudio or such other third-party library. It's the only way to go cross-platform about it.
How about QB64 extended with the hard parts done in straight C?
Check this out...
https://github.com/a740g/QB64-MIDI-Player
|