2

I just got flstudio and I'm new to it, so I started creating music and I experienced very annoying thing. When I place a note in piano roll, or when I move a note from one place to another, a sound (that note) is being played. How to prevent it?

My english is bad, so if it is unclear what I'm talking about, here is screenshots. Here is when I place a note and here is when I move a note. In both cases a sound is played (sound of the note). I don't want to hear a sond when I place or move note. I want sound only to be played when I click "Play" button. How to achieve it?

I searched on the whole internet and I spent more than a week searching in options and setting stc, but nowhere I found answer. Simply, I don't want to hear anything while I'm editing piano roll. I want only to hear song when I press play button, not while I'm editing. How to do that?

This is my temporary solution, which is very bad: I made a program in c++ which mutes all sounds in computer while I'm editing piano roll and when I finish editing piano roll, then I go to my c++ program, enable sounds and then play song. I am sure there is better way and I'm sure there must be an option in fl studio to achieve exactly what I want. I don't want to create external programs just in order to remove annoying sounds from fl studio. I want to do it natively.

So, if anything, absolutely anything, is unclear in my question (due to my bad english), then feel free to ask and I'l explain whatever is not clear. I tried my best to explain as brief as I could, I hope it is clear what I want and what I've tried and what the problem is.

3

There is no native way to achieve it in FL Studio. However, there are other ways to achieve it. Here are some methods that may be helpful.

Method 1 - AutoHotkey

The easiest way to achieve something similar is to use AutoHotkey script. The script is extremely simple:

~SPACE:: SoundSet, +1, , Mute

When you run this script, it will allow you to mute/unmute system sound on Space key press. Good thing is that FL Studio uses space key to play/pause soundtrack or piano roll track, so you can basically edit your piano roll (while the system sound is muted) and then press space, which will unmute the system sound and play the track at the same time. When you press space again, it will stop the sound track and mute system sounds again.

Method 2 - Modify assemblies

While method 1 is very simple and practical, although not exactly what the OP has asked. But, if you want to mute only piano roll sounds on placing a note, then the things becomes very hard. FL Studio didn't provide a way to achieve it, so if you really need exactly it, you'll need to disassemble binaries and modify executable files and dinamic linked library data.

First off, note that disassembling binaries is extremely hard job and even very experienced developers in that field of computer science may spend more than few months on debugging hard coded assembly procedures.

I'm definitely not going to spend time on trying to achieve it, the life is not long enough. If you don't have anything smarter to do in your life, then you should start by reading and understanding the following topics and programs:

  1. I suppose you're on Windows, so you should read this first
  2. Study the Portable Executable File Format Specification Standard
  3. Read about the sections in a PE file
  4. Learn NASM, C, C++
  5. Understand Machine Instructions Format, then Pointers, and Memory Management
  6. Learn how to digitally assign a dll and how to modify assigned dll file (see this)

To start, you'll need to write your own memory inspector tool in C++. Again, I'm assuming that you're on Windows. You can read on MSDN about functions like CreateProcess and similar ones and how to use them to view and modify another process memory regions. If you want to do it from scratch, you'll need to write your own assembler/disassembler and inspect memory regions of FL Studio's spawned process, then find procedures and functions which work with the piano roll, then modify them and replace with your own procedures which do exactly the same things except playing audio. FL Studio must call some Windows native functions from gdi32.dll or user32.dll, or even kernel32.dll in order to play sounds. Find them, create a script which modifies these procedures and attach the script to FL Studio process. Once you modify the procedures, they will not be changed anymore.

How you can find which assembly functions play the sound in the piano roll? There is no universal answer to this question. It is sometimes hard to understand even some high programming language like Python, but in order to understand the lowest possible language (assembly language), you better prepare for a lot of work. It is not impossible, you need to try different approaches, try to modify random procedures to check if the process crash, try to use some stack trace algorithms and inspect which function preceded the current function, etc. These are just some general tips on how to start.

Not related to this question, but I'll suggest you to see this post. There I explained how to modify assembly codes in order to suppress Chrome's warning. I spent more than a month on that project, so I'm pretty sure it will not be easier in FL Studio either.

0

Basically, there seems to be no "simple fix" for this problem of yours. I don't use FL Studio, but I've searched the Reference Manual, help documents and related threads and I can't see an option to disable the preview sound. FL studio seems like it has a lot of confusing settings with little customization options. If there were custom key commands, this would be a lot easier. But we are stuck using the built-in key commands to attempt a workaround.

You would have to try these options out for yourself, because as I said, I don't use FL Studio, so I'm just going by what I've read and what I know from other DAWs.

The first option is to mute the notes before moving them. You can double right-click then hold it and select multiple notes to mute. Or press ctrl + A to select all notes, then T to select the mute tool, and left-click the notes. You would need to also un-mute them when you want to play back. Not my favourite option, but you could attempt to create a macro(??)

Another way is to mute the channel with keys 0-9,0 before you edit the notes, or even solo another channel with ctrl + 1-9,0. This is most probably the simplest option.

Another way is to use a custom control surface (with a mute button) on the channel and keep the window open while you edit the piano roll. You can then mute/un-mute as you need. Video

Another option carries over from the last; only this time, you create a control surface on the master channel. So you can mute all channels when editing the piano roll. This is my favourite option, but it might just be easier to click mute on the master channel.

Another option; You should be able to select the velocity of inputted notes(before inputting). So you could set this to zero and only when you have finished editing and want to play back, select all (ctrl + A) and change the velocity to an appropriate value. All DAWs I have used have this initial velocity option, so I'm sure FL Studio has it too.

Other ways to mute the piano roll, but I couldn't find a shortcut command:
Disable 'master send' on the channel.
Disable the instrument on the channel.
Mute the master channel.

As I say, I am unable to test any of these so I hope they work. I'm sorry I couldn't find a better solution. A software as big and well-known as FL Studio should have more customizable controls, macros and key commands. It's a real shame. But I hope this helps a bit at least.

Good luck.

0

a sound of that not may be playing because you have an instrument in that piano roll's usage. i don't remember how you do it in fl, but in logic you just go to the instrument and select no instrument and you can get an empty midi.

  • Yes but the OP still wants to hear audio after pressing play, just not when moving notes. It would be rather cumbersome to keep removing the MIDI inst from the track every-time the OP wants to move a note, then add the inst back afterwards. – Simon Bosley Nov 9 '17 at 13:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.